Class: Infold::ModelGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/infold/model_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_association_model_fileObject



23
24
25
26
27
28
29
# File 'lib/generators/infold/model_generator.rb', line 23

def create_association_model_file
  @resource.associations&.
    select { |as| !as.belongs_to? && as.field_group.has_association_model? }&.each do |association|
    @writer = ModelWriter.new(association)
    template "model.rb", Rails.root.join("app/models/admin", "#{association.model_name(:snake)}.rb"), force: true
  end
end

#create_model_fileObject



18
19
20
21
# File 'lib/generators/infold/model_generator.rb', line 18

def create_model_file
  @writer = ModelWriter.new(@resource)
  template "model.rb", Rails.root.join("app/models/admin", "#{name.underscore.singularize}.rb"), force: true
end

#setupObject



11
12
13
14
15
16
# File 'lib/generators/infold/model_generator.rb', line 11

def setup
  resource_name = name.camelize.singularize
  db_schema = DbSchema.new(File.read(Rails.root.join('db/schema.rb')))
  yaml = YAML.load_file(Rails.root.join("config/infold/#{resource_name.underscore}.yml"))
  @resource = YamlReader.generate_resource(resource_name, yaml, db_schema)
end