class SettingsonGenerator

Public Class Methods

next_migration_number(dirname) click to toggle source
# File lib/generators/settingson/settingson_generator.rb, line 25
def self.next_migration_number dirname
  ActiveRecord::Generators::Base.next_migration_number dirname
end

Public Instance Methods

settingson_migration() click to toggle source
# File lib/generators/settingson/settingson_generator.rb, line 8
def settingson_migration
  klass = name.camelize
  say "Searching for #{klass} class"
  if Object.const_defined?(klass)

    settingson_inject_lines(name)

    if klass.constantize.column_names.include?('name')
      migration_template 'migrations/rename_name_to_key_on_settings.rb', 'db/migrate/rename_name_to_key_on_settings.rb'
    end

  else
    generate(:model, "#{klass} key:string:uniq value:text --force-plural")
    settingson_inject_lines(name)
  end
end

Private Instance Methods

settingson_inject_lines(name) click to toggle source
# File lib/generators/settingson/settingson_generator.rb, line 30
def settingson_inject_lines(name)
  file = Rails.root.join("app/models/#{name.downcase}.rb")
  if File.readlines(file).grep(/\A\s*include Settingson::Base\z/).blank?
    inject_into_class file, name.camelize, "\tinclude Settingson::Base\n"
  end
end