https://github.com/rnd-soft/groupped_settings
[MIRROR] Groupped::Settings is a plugin that manage groupped settings for Rails :)
https://github.com/rnd-soft/groupped_settings
gem rails ruby ruby-on-rails
Last synced: 9 months ago
JSON representation
[MIRROR] Groupped::Settings is a plugin that manage groupped settings for Rails :)
- Host: GitHub
- URL: https://github.com/rnd-soft/groupped_settings
- Owner: RND-SOFT
- License: mit
- Created: 2019-11-06T13:39:33.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-12-14T12:03:37.000Z (over 2 years ago)
- Last Synced: 2025-10-07T19:21:39.128Z (9 months ago)
- Topics: gem, rails, ruby, ruby-on-rails
- Language: Ruby
- Homepage: https://br.rnds.pro/ruby/groupped_settings
- Size: 38.1 KB
- Stars: 4
- Watchers: 4
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
# Yet another Settings Plugin for Rails
[](https://rubygems.org/gems/groupped_settings)
[](https://rubygems.org/gems/groupped_settings/versions)
[](http://www.rubydoc.info/gems/groupped_settings)
[](https://lysander.x.rnds.pro/api/v1/badges/gs_coverage.html)
[](https://lysander.x.rnds.pro/api/v1/badges/gs_quality.html)
[](https://lysander.x.rnds.pro/api/v1/badges/gs_outdated.html)
[](https://lysander.x.rnds.pro/api/v1/badges/gs_vulnerable.html)
Groupped::Settings is a plugin that manage groupped settings for Rails :) Settings stored in own database table as json(b) field. Splitted by groups and can have polymorphyc referece to other models.
## Setup
`rails g rake groupped_settings:install`
`rails g rake groupped:settings:migration`
Now update your database with:
`rake db:migrate`
## Usage
Define settings group class.
```ruby
class GeneralSettings < Groupped::Settings::Group
self.group_name = 'general'
attribute :identifier, :string, default: 'application'
attribute :secret, :string
validates :identifier, presence: true
validates :secret, length: { minimum: 16 }
end
```
Using global settings:
```ruby
s = GeneralSettings.load
s.identifier = '123123123'
s.save!
s = Groupped::Settings[:general, GeneralSettings]
s.secret = '12345678987654321'
s.save!
```
Using settings fot some model:
```ruby
s = GeneralSettings.load(target: User.first)
s.identifier = '123123123'
s.save!
s = Groupped::Settings[:general, User.first]
s.secret = '12345678987654321'
s.save!
```
Include Settingsable concern:
```ruby
class User
include Groupped::Settings::Settingsable
end
s = User.first.settings_group(:general, GeneralSettings)
```