class CustomAttributes::Generators::InitializeGenerator
Public Class Methods
next_migration_number(path)
click to toggle source
# File lib/generators/custom_attributes/initialize_generator.rb, line 11 def self.next_migration_number(path) unless @prev_migration_nr @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i else @prev_migration_nr += 1 end @prev_migration_nr.to_s end
Public Instance Methods
copy_inline_editing_js_file()
click to toggle source
# File lib/generators/custom_attributes/initialize_generator.rb, line 45 def copy_inline_editing_js_file template "custom_attributes_inline_editing.js.erb", "public/javascripts/vendors/custom_attributes/inline_editing.js" end
create_base_models()
click to toggle source
# File lib/generators/custom_attributes/initialize_generator.rb, line 28 def create_base_models template "custom_attribute_definition_model.rb", "app/models/#{file_name}_custom_attribute_definition.rb" template "custom_attribute_value_model.rb", "app/models/#{file_name}_custom_attribute_value.rb" end
create_controllers()
click to toggle source
# File lib/generators/custom_attributes/initialize_generator.rb, line 33 def create_controllers template "custom_attribute_definitions_controller.rb", "app/controllers/#{file_name}_custom_attribute_definitions_controller.rb" template "custom_attribute_values_controller.rb", "app/controllers/#{file_name}_custom_attribute_values_controller.rb" end
create_custom_attribute_concern()
click to toggle source
# File lib/generators/custom_attributes/initialize_generator.rb, line 53 def create_custom_attribute_concern template "custom_attributes_concern.rb", "app/models/concerns/#{file_name}_custom_attributes.rb" end
create_derived_custom_attribute_values()
click to toggle source
# File lib/generators/custom_attributes/initialize_generator.rb, line 38 def create_derived_custom_attribute_values create_custom_attribute_value_sub_class("String") create_custom_attribute_value_sub_class("Integer") create_custom_attribute_value_sub_class("Double") create_custom_attribute_value_sub_class("DateTime") end
create_migrations()
click to toggle source
# File lib/generators/custom_attributes/initialize_generator.rb, line 49 def create_migrations migration_template "migration.rb", "db/migrate/create_custom_attributes_for_#{file_name}.rb" end
create_views_and_helpers()
click to toggle source
# File lib/generators/custom_attributes/initialize_generator.rb, line 20 def create_views_and_helpers #TODO: verify if all views are being copied template "view.html.erb", "app/views/#{file_name}_custom_attribute_values/_#{file_name}_custom_attribute.html.erb" #TODO: there should be a way that does NOT require copying the helper template "application_helper.rb", "app/helpers/custom_attributes/custom_attributes_helper.rb" end
include_concern_in_model()
click to toggle source
# File lib/generators/custom_attributes/initialize_generator.rb, line 57 def include_concern_in_model #TODO: Is this fool-proof? inject_into_file "app/models/#{file_name}.rb", after: "ActiveRecord::Base\n" do <<-BLOCK.gsub(/^ {4}/, '') include #{name}CustomAttributes BLOCK end end
sub_class()
click to toggle source
# File lib/generators/custom_attributes/initialize_generator.rb, line 65 def sub_class @sub_class end
Private Instance Methods
create_custom_attribute_value_sub_class(sub_class)
click to toggle source
# File lib/generators/custom_attributes/initialize_generator.rb, line 70 def create_custom_attribute_value_sub_class (sub_class) @sub_class = sub_class template "custom_attribute_value_sub_class_model.rb", "app/models/#{file_name}_custom_attribute_#{sub_class.underscore}_value.rb" template "custom_attribute_value_sub_class.html.erb", "app/views/#{file_name}_custom_attribute_#{sub_class.underscore}_values/_#{file_name}_custom_attribute_#{sub_class.underscore}_value.html.erb" end