class SmartSettings::SettingGenerator

Public Instance Methods

create_migration_file() click to toggle source
# File lib/generators/smart_settings/setting_generator.rb, line 11
def create_migration_file
  template 'setting.rb', "app/settings/#{setting_file}.rb"
end

Private Instance Methods

setting_class() click to toggle source
# File lib/generators/smart_settings/setting_generator.rb, line 17
def setting_class
  name.camelize
end
setting_fields() click to toggle source
# File lib/generators/smart_settings/setting_generator.rb, line 25
def setting_fields
  args.map do |arg|
    field, cast_type, default, group = arg.split(':')

    items  = [":#{field.to_sym}", ":#{cast_type.to_sym}"]
    items << ["default: #{value_type_cast(cast_type.to_sym, default)}"] if default.present?
    items << ["group: :#{group.to_sym}"] if group.present?

    items.join(', ')
  end
end
setting_file() click to toggle source
# File lib/generators/smart_settings/setting_generator.rb, line 21
def setting_file
  "#{name.downcase.underscore}_settings"
end
value_type_cast(cast_type, value) click to toggle source
# File lib/generators/smart_settings/setting_generator.rb, line 37
def value_type_cast(cast_type, value)
  strings = [:string, :date, :datetime, :time]
  cast_type.in?(strings) ? "'#{value}'" : value
end