class UserTimeZones::Generators::InstallGenerator
Public Class Methods
new(*)
click to toggle source
Calls superclass method
# File lib/generators/user_time_zones/install/install_generator.rb, line 25 def initialize(*) super assign_names!(model_class_name) end
Private Class Methods
next_migration_number(dir)
click to toggle source
for generating a timestamp when using `create_migration`
# File lib/generators/user_time_zones/install/install_generator.rb, line 81 def self.next_migration_number(dir) ActiveRecord::Generators::Base.next_migration_number(dir) end
Public Instance Methods
copy_migration_files()
click to toggle source
# File lib/generators/user_time_zones/install/install_generator.rb, line 37 def copy_migration_files copy_migration 'add_time_zone_to_users.rb' end
inject_into_application_controller()
click to toggle source
# File lib/generators/user_time_zones/install/install_generator.rb, line 47 def inject_into_application_controller inject_into_class( 'app/controllers/application_controller.rb', ApplicationController, " include UserTimeZones::Controller\n" ) end
inject_into_user_model()
click to toggle source
# File lib/generators/user_time_zones/install/install_generator.rb, line 41 def inject_into_user_model if File.exist? model_path inject_into_class(model_path, model_class_name, " include UserTimeZones::User\n") end end
inject_javascript()
click to toggle source
# File lib/generators/user_time_zones/install/install_generator.rb, line 55 def inject_javascript append_to_file 'app/assets/javascripts/application.js', "//= require user_time_zones\n" end
verify()
click to toggle source
# File lib/generators/user_time_zones/install/install_generator.rb, line 30 def verify if options[:model] && !File.exist?(model_path) puts "Exiting: the model class you specified, #{options[:model]}, is not found." exit 1 end end
Private Instance Methods
copy_migration(migration_name, config = {})
click to toggle source
# File lib/generators/user_time_zones/install/install_generator.rb, line 62 def copy_migration(migration_name, config = {}) # puts "migration_version: #{migration_version}" unless migration_exists?(migration_name) migration_template( "db/migrate/#{migration_name}", "db/migrate/#{migration_name}", config.merge(migration_version: migration_version) ) end end
existing_migrations()
click to toggle source
# File lib/generators/user_time_zones/install/install_generator.rb, line 89 def existing_migrations @existing_migrations ||= Dir.glob('db/migrate/*.rb').map do |file| migration_name_without_timestamp(file) end end
migration_exists?(name)
click to toggle source
# File lib/generators/user_time_zones/install/install_generator.rb, line 85 def migration_exists?(name) existing_migrations.include?(name) end
migration_name_without_timestamp(file)
click to toggle source
# File lib/generators/user_time_zones/install/install_generator.rb, line 95 def migration_name_without_timestamp(file) file.sub(%r{^.*(db/migrate/)(?:\d+_)?}, '') end
migration_version()
click to toggle source
If Rails 5, then include the migration version. Rails 4, no version.
# File lib/generators/user_time_zones/install/install_generator.rb, line 74 def migration_version if Rails.version >= '5.0.0' "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]" end end