Skip to content

Releases: huacnlee/rails-settings-cached

v2.3.3

08 Jul 07:23
Compare
Choose a tag to compare
  • Allows use setting, that if table was not ready (before migrate), print a warning and returns default value.

v2.3.2

08 Jul 07:23
Compare
Choose a tag to compare
  • Fix hash type with indifferent access.
Setting.smtp_settings = { foo: 1, bar: 2 }
Setting.smtp_settings[:foo]
=> 1
Setting.smtp_settings["foo"]
=> 1

v2.3.1

08 Jul 07:23
Compare
Choose a tag to compare
  • Add get_field method to get field option.
class Setting
  field :admin_emails, type: :array, default: "huacnlee"
end

Setting.get_field(:admin_emails)
=> { key: "admin_emails", type: :array, default: "[email protected]", readonly: false }
  • Add editable_keys to get keys that allow to modify.
  • Add readonly_keys to get readonly keys.

v2.2.1

08 Jul 07:23
Compare
Choose a tag to compare
  • Fix generator module name Settings conflict issue. #172

v2.2.0

08 Jul 07:23
Compare
Choose a tag to compare
  • Improve setting to support Float and BigDecimal.
  • Add Setting.keys methods to get all keys.

v2.1.0

08 Jul 07:24
Compare
Choose a tag to compare
  • Fix default array separator, remove "space", now only: \n and ,.

  • Add separator option for speical the separator for Array type.

    For example:

    class Setting < RailsSettings::Base
      field :tips, type: :array, separator: /[\n]+/
      field :keywords, type: :array, separator: ","
    end

v2.0.4

08 Jul 07:24
Compare
Choose a tag to compare
  • Fix #166 avoid define method to super class.

v2.0.0

08 Jul 07:24
Compare
Choose a tag to compare

🚨 BREAK CHANGES WARNING:
rails-settings-cached 2.x has redesign the API, the new version will compatible with the stored setting values by older version.
But you must read the README.md again, and follow guides to change your Setting model.

  • New design release.

  • No more scope support (RailsSettings::Extend has removed);

  • No more YAML file.

  • Requuire Ruby 2.5+, Rails 5.0+

  • You must use field method to statement the setting keys before use.

    For example:

    class Setting < RailsSettings::Base
      field :host, default: "http://example.com"
      field :readonly_item, type: :integer, default: 100, readonly: true
      field :user_limits, type: :integer, default: 1
      field :admin_emails, type: :array, default: %w[[email protected]]
      field :captcha_enable, type: :boolean, default: 1
      field :smtp_settings, type: :hash, default: {
        host: "foo.com",
        username: "[email protected]",
        password: "123456"
      }
    end
  • One SQL or Cache hit in each request, even you has multiple of keys call in a page.

NOTE: This design will load all settings from db/cache in memory, so I recommend that you do not design a lot of Setting keys (below 1000 keys), and do not store large value。