Class: TranslatableAr::Setup
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- TranslatableAr::Setup
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/railtie.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.next_migration_number(dirname) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/railtie.rb', line 20 def self.next_migration_number(dirname) if ActiveRecord::Base. Time.now.utc.strftime("%Y%m%d%H%M%S") else "%.3d" % (current_migration_number(dirname) + 1) end end |
.source_root ⇒ Object
16 17 18 |
# File 'lib/railtie.rb', line 16 def self.source_root @source_root ||= File.join(File.dirname(__FILE__), 'templates') end |
Instance Method Details
#attributes ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/railtie.rb', line 43 def attributes attributes = [] attribute_struct = Struct.new(:name, :model) TranslatableAR.models.each do |model| model.translatable_ar_attributes.each do |attribute| if model.columns_hash["#{attribute}_i18n"].nil? attributes << attribute_struct.new(attribute, model) end end end attributes end |
#create_migration_file ⇒ Object
28 29 30 31 32 33 |
# File 'lib/railtie.rb', line 28 def create_migration_file Rails.application.eager_load! # trigger translates method call in models time = Time.now.utc.strftime("%Y%m%d%H%M%S") migration_template 'setup.rb', "db/migrate/setup_translatable_ar_#{time}.rb" end |
#models ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/railtie.rb', line 35 def models TranslatableAR.models.select do |model| model.translatable_ar_attributes.any? do |attribute| model.columns_hash["#{attribute}_i18n"].nil? end end end |