Method: Mdwa::Generators::CodeGenerator#entites_specifications

Defined in:
lib/generators/mdwa/code/code_generator.rb

#entites_specificationsObject

Generate code for entities specify. Generate unit testing code for models.



241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
# File 'lib/generators/mdwa/code/code_generator.rb', line 241

def entites_specifications

  @all_entities.each do |entity|
    # next iteration if entity doesn't have specifications
    next if entity.specifications.count.zero?
    
    model = entity.generator_model
    
    path_to_spec = "spec/models/#{model.space}/#{model.singular_name}_spec.rb"
    insert_into_file path_to_spec, :after => "describe #{model.klass} do" do
      specs = []
      file_string = File.read("#{Rails.root}/#{path_to_spec}")
      entity.specifications.each do |specification|
        unless file_string.include? specification.description
          specs << "\n\n\tdescribe '#{specification.description}' do"
          specification.details.each do |detail|
            unless file_string.include? detail
              specs << "\t\tit '#{detail}' do"
              specs << "\t\tend"
            end
          end
          specs << "\tend"
        end
      end
      specs.join("\n")
    end
    
  end

end