class Pendulum::DSL::Converter
Public Class Methods
new(schedules)
click to toggle source
# File lib/pendulum/dsl/converter.rb, line 5 def initialize(schedules) @schedules = schedules end
Public Instance Methods
convert()
click to toggle source
# File lib/pendulum/dsl/converter.rb, line 9 def convert result = {} result[:schedule] = @schedules.map do |schedule| to_dsl(schedule) end.join("\n") result[:queries] = @schedules.map do |schedule| to_query(schedule) end.compact result end
Private Instance Methods
to_dsl(schedule)
click to toggle source
# File lib/pendulum/dsl/converter.rb, line 24 def to_dsl(schedule) ERB.new(<<-EOS, nil, '-').result(binding) schedule '<%= schedule.name %>' do database '<%= schedule.database %>' <% if schedule.query -%> query_file 'queries/<%= schedule.name %>.hql' # type :hive # FIXME: Treasure Data schedule api dosen't contain type result. retry_limit <%= schedule.retry_limit %> priority <%= schedule.priority %> <% end -%> <% if schedule.cron -%> cron '<%= schedule.cron %>' timezone '<%= schedule.timezone %>' delay <%= schedule.delay %> <% end -%> <% if schedule.result_url != '' -%> result_url '<%= schedule.result_url %>' <% end -%> end EOS end
to_query(schedule)
click to toggle source
# File lib/pendulum/dsl/converter.rb, line 46 def to_query(schedule) return nil unless schedule.query {name: "#{schedule.name}.hql", query: schedule.query} end