class Ratbug::Generators::JbuilderGenerator
Public Class Methods
new(table, options)
click to toggle source
# File lib/ratbug/generators/jbuilder_generator.rb, line 6 def initialize(table, options) @table = table @options = options end
Public Instance Methods
generate()
click to toggle source
# File lib/ratbug/generators/jbuilder_generator.rb, line 11 def generate singular = @table.name.singularize output = "" output << "json.#{singular} do\n" columns.values.sort_by(&:name).each do |column| output << column_row(column, singular) end output << "end" dirname = File.dirname(output_path) unless File.directory?(dirname) FileUtils.mkdir_p(dirname) end File.open(output_path, "w") do |f| f.puts(output) end puts "generated: #{output_path}" end
Private Instance Methods
column_row(column, receiver_name)
click to toggle source
# File lib/ratbug/generators/jbuilder_generator.rb, line 41 def column_row(column, receiver_name) " json.#{column.name} #{receiver_name}.#{column.name}#{column_value_modifier(column)}\n" end
column_value_modifier(column)
click to toggle source
# File lib/ratbug/generators/jbuilder_generator.rb, line 45 def column_value_modifier(column) if column.enum.present? return '' end operator = column.nullable ? '&' : '' case column.type when :date, :datetime, :time then return "#{operator}.iso8601" else return '' end end
columns()
click to toggle source
# File lib/ratbug/generators/jbuilder_generator.rb, line 33 def columns if @options[:omit_timestamps] @table.columns.except(:created_at, :updated_at) else @table.columns end end
output_path()
click to toggle source
# File lib/ratbug/generators/jbuilder_generator.rb, line 60 def output_path @options[:output_dir].join("_#{@table.name.singularize}.jbuilder") end