class Abyme::Generators::ViewGenerator

Public Instance Methods

create_partial_file() click to toggle source

:nocov:

# File lib/generators/abyme/view/view_generator.rb, line 12
def create_partial_file
  create_file partial_file_path
  if defined?(SimpleForm)
    insert_fields(:simple_form)
  else
    insert_fields
  end
end

Private Instance Methods

default_keys() click to toggle source
# File lib/generators/abyme/view/view_generator.rb, line 61
      def default_keys
        %(
<%= f.hidden_field :_destroy %>
<%= remove_associated_record content: "Remove #{association.downcase.singularize}" %>
        )
      end
header() click to toggle source
# File lib/generators/abyme/view/view_generator.rb, line 57
def header
  "<%# Partial for #{association.downcase.singularize} fields %>\n"
end
insert_fields(builder = nil) click to toggle source

:nocov:

# File lib/generators/abyme/view/view_generator.rb, line 29
def insert_fields(builder = nil)
  return unless File.exist? partial_file_path
  if builder == :simple_form
    insert_into_file(partial_file_path, simple_form_fields)
  else
    insert_into_file(partial_file_path, "<%# Insert #{association.downcase} fields below %>\n" << default_keys)
  end
end
partial_file_path() click to toggle source

:nocov:

# File lib/generators/abyme/view/view_generator.rb, line 24
def partial_file_path
  Rails.root.join("app", "views", "abyme", "_#{association.downcase.singularize}_fields.html.erb")
end
rejected_keys(keys) click to toggle source
# File lib/generators/abyme/view/view_generator.rb, line 53
def rejected_keys(keys)
  keys.reject { |key| ["id", "created_at", "updated_at"].include?(key) || key.match(/_id/) }
end
simple_form_fields() click to toggle source

:nocov:

# File lib/generators/abyme/view/view_generator.rb, line 39
def simple_form_fields
  inputs = if attributes.include?("all_attributes")
    rejected_keys(association.classify.constantize.new.attributes.keys).map do |key|
      "<%= f.input :#{key} %>"
    end
  else
    attributes.map do |key|
      "<%= f.input :#{key} %>"
    end
  end
  inputs.prepend(header)
  inputs.push(default_keys).join("\n")
end