Class: CustomAttributes::Generators::InitializeGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- CustomAttributes::Generators::InitializeGenerator
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/generators/custom_attributes/initialize_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #copy_inline_editing_js_file ⇒ Object
- #create_base_models ⇒ Object
- #create_controllers ⇒ Object
- #create_custom_attribute_concern ⇒ Object
- #create_derived_custom_attribute_values ⇒ Object
- #create_migrations ⇒ Object
- #create_views_and_helpers ⇒ Object
- #include_concern_in_model ⇒ Object
- #sub_class ⇒ Object
Class Method Details
.next_migration_number(path) ⇒ Object
11 12 13 14 15 16 17 18 |
# 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 |
Instance Method Details
#copy_inline_editing_js_file ⇒ Object
45 46 47 |
# 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 ⇒ Object
28 29 30 31 |
# 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 ⇒ Object
33 34 35 36 |
# 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 ⇒ Object
53 54 55 |
# 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 ⇒ Object
38 39 40 41 42 43 |
# 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 ⇒ Object
49 50 51 |
# 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 ⇒ Object
20 21 22 23 24 25 26 |
# 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 ⇒ Object
57 58 59 60 61 62 63 |
# 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 ⇒ Object
65 66 67 |
# File 'lib/generators/custom_attributes/initialize_generator.rb', line 65 def sub_class @sub_class end |