class Mongify::Mongoid::Printer

Class that writes the models to individule mongoid model files

Constants

TEMPLATE_FILE

Template file location

Attributes

models[RW]
output_directory[RW]

Public Class Methods

new(models, output_directory) click to toggle source
# File lib/mongify/mongoid/printer.rb, line 12
def initialize(models, output_directory)
  @models = models
  @output_directory = output_directory
end

Public Instance Methods

write() click to toggle source

Writes models to given output directory @return [nil]

# File lib/mongify/mongoid/printer.rb, line 19
def write
  models.each do |key, model|
    write_file(model)
  end
  nil
end

Private Instance Methods

render_file(model) click to toggle source

Renders ERB template for given model @return [String] rendered template string

# File lib/mongify/mongoid/printer.rb, line 47
def render_file model
  ERB.new(template, nil, '-').result(model.get_binding)
end
save_file(output, file_name) click to toggle source

Saveds text output into a file (output_directory/model_name.rb) @return [File] saved file

# File lib/mongify/mongoid/printer.rb, line 53
def save_file output, file_name
  File.open(File.join(output_directory, "#{file_name.downcase}.rb"), 'w') {|f| f.write(output) }
end
template() click to toggle source

Returns ERB template file @return [String] Template file content

# File lib/mongify/mongoid/printer.rb, line 32
def template
  @template ||= File.read(TEMPLATE_FILE)
end
write_file(model) click to toggle source

Writes given model to output file @param [Model] model Model @return [String] The written output

# File lib/mongify/mongoid/printer.rb, line 39
def write_file model
  output = render_file model
  save_file output, model.name.underscore
  output
end