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