Class: Infold::Views::FormGenerator

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

Instance Method Summary collapse

Instance Method Details

#association_form_fileObject



40
41
42
43
44
45
46
47
48
# File 'lib/generators/infold/views/form_generator.rb', line 40

def association_form_file
  @writer.form_fields.each do |field|
    if field.association&.has_many? || field.association&.has_one?
      @association_field = field
      template "views/_form_association.haml",
               Rails.root.join("app/views/admin/#{name.underscore.pluralize}/_form_#{field.name(:single)}.html.haml"), force: true
    end
  end
end

#edit_fileObject



25
26
27
28
# File 'lib/generators/infold/views/form_generator.rb', line 25

def edit_file
  template "views/edit.html+turbo_frame.haml",
           Rails.root.join("app/views/admin/#{name.underscore.pluralize}/edit.html+turbo_frame.haml"), force: true
end

#form_fileObject



30
31
32
33
# File 'lib/generators/infold/views/form_generator.rb', line 30

def form_file
  template "views/_form.haml",
           Rails.root.join("app/views/admin/#{name.underscore.pluralize}/_form.html.haml"), force: true
end

#form_turbo_stream_fileObject



35
36
37
38
# File 'lib/generators/infold/views/form_generator.rb', line 35

def form_turbo_stream_file
  template "views/form.turbo_stream.haml",
           Rails.root.join("app/views/admin/#{name.underscore.pluralize}/form.turbo_stream.haml"), force: true
end

#new_fileObject



20
21
22
23
# File 'lib/generators/infold/views/form_generator.rb', line 20

def new_file
  template "views/new.html+turbo_frame.haml",
           Rails.root.join("app/views/admin/#{name.underscore.pluralize}/new.html+turbo_frame.haml"), force: true
end

#setupObject



12
13
14
15
16
17
18
# File 'lib/generators/infold/views/form_generator.rb', line 12

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)
  @writer = FormWriter.new(resource)
end