settingify 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d60134a199d33fe55c04d10031746387559577d2
4
- data.tar.gz: c0fccd95aa5921ad05350e1f53427131eec5f17a
3
+ metadata.gz: 94d92a3f44c051e69e85ffaec7d69028ec7ed1f8
4
+ data.tar.gz: 0ef9c8d16d8c5fc549fc30ac0867db0b4f6f3339
5
5
  SHA512:
6
- metadata.gz: 17d4af4daf3e64d3e3f0dd0c0cc5abfe9c095213b3aade574fa968805d3c23ce3b0ab1cdd32d6b7133b6e1ad6bdd5dfbe76e3ac13c76b4a77ab779dbbc89ee26
7
- data.tar.gz: 10fd93b652403f8a60ffafa6b14d856369928696fbddad7f7e3177dcd47320b39d39ab224ea420e04f9ef095875791e4761fe89116d5b5ec9204554a770d381f
6
+ metadata.gz: 59aae6e64a0de758d4c6b9ce48793ee44ff16bbea0e79fe422c68d310c540f2517ba5202ec331410178d90d2e91bab3e7f6123134e07ba412d1f0fd2482f2a31
7
+ data.tar.gz: 266e0dde7325e20dc718b49107048e86e3cca96201a51d38c8613d7c410bd88e74273777e7766bc765b362e829555d56e003a6face19b9b0fa4eb83b46a5407f
data/README.md CHANGED
@@ -16,7 +16,7 @@ rails g active_admin:resource Settingify::Setting
16
16
 
17
17
  Add this line to your application's Gemfile:
18
18
 
19
- gem 'settingify', '0.0.2'
19
+ gem 'settingify', '0.0.4'
20
20
 
21
21
  And then execute:
22
22
 
@@ -24,7 +24,7 @@ And then execute:
24
24
 
25
25
  Or install it yourself as:
26
26
 
27
- $ gem install settingify -v 0.0.2
27
+ $ gem install settingify -v 0.0.4
28
28
 
29
29
  ### Post installation
30
30
 
@@ -96,6 +96,43 @@ the DB manually or run built-in rake task:
96
96
  bundle exec rake settingify:sync
97
97
  ```
98
98
 
99
+ ### Identifiing settings
100
+
101
+ For some reason, e.g. in admin panel, you need to list all available
102
+ settings. Also you want to provide humanized title and description for
103
+ each setting separately. So for this from now `#title` and `#description`
104
+ on `Settingify::Setting` exists. They provide localized values which can
105
+ be defined using following key structure:
106
+
107
+ ```
108
+ settingify.settings.{KEY}.{title/description}
109
+ ```
110
+
111
+ ### Grouping settings
112
+
113
+ From _v0.0.4_ you can grouping settings. This feature does not affected
114
+ on API for reading setting, so you must to define uniq setting names
115
+ even in different groups. Grouping is a quite simple:
116
+
117
+ ```ruby
118
+ Settingify.prepare_settings do
119
+ group :amazon_ses do
120
+ setting :amazon_ses_client_id
121
+ end
122
+ end
123
+ ```
124
+
125
+ By calling `Settingify.groups` you can get all defined groups. For each
126
+ group you can get it's `#title` and defined `#settings` in concrete
127
+ group. Title is localized and key has the following structure:
128
+
129
+ ```
130
+ settingify.groups.{KEY}.title
131
+ ```
132
+
133
+ Grouping was coming mainly for to be able to more clear render settings
134
+ in admin panel but also with keeping in mind about next enhancements.
135
+
99
136
  ## Contributing
100
137
 
101
138
  1. Fork it ( https://github.com/alterego-labs/settingify/fork )
@@ -0,0 +1,37 @@
1
+ module Settingify
2
+ module Builders
3
+ class Group < Struct.new(:name, :block)
4
+ include SettingsPreparable
5
+
6
+ def self.call(*opts, &block)
7
+ new(*opts).call(&block)
8
+ end
9
+
10
+ def call(&block)
11
+ self.prepare_settings(&block)
12
+ end
13
+
14
+ def setting(name, type: String, default: '')
15
+ attach_to_group(name)
16
+ super
17
+ end
18
+
19
+ private
20
+
21
+ def attach_to_group(setting_key)
22
+ group = fetch_group
23
+ group.add setting_key
24
+ end
25
+
26
+ def fetch_group
27
+ Settingify.groups.find { |g| g.key == self.name } || define_new_group
28
+ end
29
+
30
+ def define_new_group
31
+ group = Settingify::Group.new(name)
32
+ Settingify.groups << group
33
+ group
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,31 @@
1
+ module Settingify
2
+ module DSL
3
+ def setting(name, type: String, default: '')
4
+ setting_item = build_setting_item(name, type, default)
5
+ register_setting setting_item
6
+ define_setting setting_item
7
+ end
8
+
9
+ def group(name, &block)
10
+ Builders::Group.call(name, &block)
11
+ end
12
+
13
+ private
14
+
15
+ def build_setting_item(name, type, default)
16
+ RepoItem.new(name, type, default)
17
+ end
18
+
19
+ def define_setting(setting_item)
20
+ Settingify.singleton_class.instance_eval do
21
+ define_method setting_item.name do
22
+ Reader.new(setting_item).call
23
+ end
24
+ end
25
+ end
26
+
27
+ def register_setting(setting_item)
28
+ Settingify::Repos::Settings.instance.add setting_item
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,3 @@
1
+ module Settingify
2
+ PrepareSettingsWithoutBlockError = Class.new(StandardError)
3
+ end
@@ -0,0 +1,25 @@
1
+ module Settingify
2
+ class Group
3
+ attr_reader :key, :setting_keys
4
+
5
+ def initialize(key)
6
+ @setting_keys = []
7
+ @key = key
8
+ end
9
+
10
+ def add(setting_key)
11
+ @setting_keys = @setting_keys
12
+ .insert(-1, setting_key.to_sym)
13
+ .uniq
14
+ self
15
+ end
16
+
17
+ def title
18
+ I18n.t("settingify.groups.#{key}.title", self.key.to_s.humanize)
19
+ end
20
+
21
+ def settings
22
+ ::Settingify::Setting.where(key: setting_keys)
23
+ end
24
+ end
25
+ end
@@ -1,5 +1,7 @@
1
1
  module Settingify
2
- class Reader < Struct.new(:key, :type, :default)
2
+ class Reader < Struct.new(:setting_item)
3
+ delegate :name, :type, :default, to: :setting_item
4
+
3
5
  def call
4
6
  return default unless table_exists?
5
7
  Caster.new(type, db_value).call
@@ -12,7 +14,7 @@ module Settingify
12
14
  end
13
15
 
14
16
  def db_setting
15
- DbReader.new(key, default).call
17
+ DbReader.new(name, default).call
16
18
  end
17
19
 
18
20
  def db_value
@@ -0,0 +1,4 @@
1
+ module Settingify
2
+ class RepoItem < Struct.new(:name, :type, :default)
3
+ end
4
+ end
@@ -0,0 +1,29 @@
1
+ require 'singleton'
2
+
3
+ module Settingify
4
+ module Repos
5
+ class Settings
6
+ include Singleton
7
+
8
+ def list
9
+ @settings_list ||= []
10
+ @settings_list
11
+ end
12
+
13
+ def add(item)
14
+ list << item
15
+ end
16
+
17
+ def clear!
18
+ list.each(&method(:undef_method_for))
19
+ list.clear
20
+ end
21
+
22
+ private
23
+
24
+ def undef_method_for(item)
25
+ Settingify.singleton_class.send :remove_method, item.name
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,5 +1,13 @@
1
1
  module Settingify
2
2
  class Setting < ActiveRecord::Base
3
3
  self.table_name_prefix = 'settingify_'
4
+
5
+ def title
6
+ I18n.t("settingify.settings.#{self.key}.title", self.key.to_s.humanize)
7
+ end
8
+
9
+ def description
10
+ I18n.t("settingify.settings.#{self.key}.description", "Description for #{self.key} setting...")
11
+ end
4
12
  end
5
13
  end
@@ -0,0 +1,10 @@
1
+ module Settingify
2
+ module SettingsPreparable
3
+ include DSL
4
+
5
+ def prepare_settings(&block)
6
+ raise Settingify::PrepareSettingsWithoutBlockError, 'Block must be passed!' unless block_given?
7
+ instance_eval(&block)
8
+ end
9
+ end
10
+ end
@@ -1,3 +1,3 @@
1
1
  module Settingify
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/settingify.rb CHANGED
@@ -5,33 +5,46 @@ require 'active_support/core_ext/module'
5
5
  require "settingify/version"
6
6
 
7
7
  require 'settingify/railtie' if defined?(Rails)
8
+ require 'settingify/errors'
8
9
 
9
10
  module Settingify
10
11
  extend ActiveSupport::Autoload
11
12
 
12
13
  autoload :ContractExt
13
14
  autoload :Setting
14
- autoload :SettingBuilder
15
- autoload :SettingsList
15
+ autoload :DSL
16
16
  autoload :Reader
17
17
  autoload :Caster
18
18
  autoload :DbReader
19
19
  autoload :ActiveRecordHelpers
20
20
  autoload :Constants
21
21
  autoload :Repo
22
+ autoload :RepoItem
22
23
  autoload :DbSyncer
24
+ autoload :SettingsPreparable
25
+ autoload :Group
23
26
 
24
- extend SettingBuilder
25
- extend SettingsList
27
+ module Builders
28
+ extend ActiveSupport::Autoload
26
29
 
27
- include Constants
30
+ autoload :Group
31
+ end
28
32
 
29
- def self.prepare_settings(&block)
30
- raise 'Block must be passed!' unless block_given?
31
- instance_eval(&block)
33
+ module Repos
34
+ extend ActiveSupport::Autoload
35
+
36
+ autoload :Settings
32
37
  end
33
38
 
39
+ extend SettingsPreparable
40
+
41
+ include Constants
42
+
34
43
  def self.registered_settings
35
- Repo.instance.list
44
+ Repos::Settings.instance.list
45
+ end
46
+
47
+ def self.groups
48
+ @_groups ||= []
36
49
  end
37
50
  end
data/settingify.gemspec CHANGED
@@ -25,8 +25,9 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_development_dependency "bundler", "~> 1.6"
27
27
  spec.add_development_dependency "rake"
28
- spec.add_development_dependency "rspec", "~> 3.0.0.beta"
29
- spec.add_development_dependency "rspec-its", "1.0.1"
28
+ spec.add_development_dependency "rspec", "~> 3.4.0"
29
+ spec.add_development_dependency "rspec-its", "1.2.0"
30
30
  spec.add_development_dependency "pry-nav", "0.2.3"
31
31
  spec.add_development_dependency 'sqlite3'
32
+ spec.add_development_dependency 'json', '1.8.3'
32
33
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module SomeBuilder
4
- extend Settingify::SettingBuilder
4
+ extend Settingify::DSL
5
5
  end
6
6
 
7
7
  describe Settingify::DbSyncer do
@@ -9,12 +9,12 @@ describe Settingify::DbSyncer do
9
9
 
10
10
  before do
11
11
  Settingify::Setting.delete_all
12
- Settingify::Repo.instance.clear!
12
+ Settingify::Repos::Settings.instance.clear!
13
13
  SomeBuilder.setting :setting1, default: 'value1'
14
14
  end
15
15
 
16
16
  after do
17
- Settingify::Repo.instance.clear!
17
+ Settingify::Repos::Settings.instance.clear!
18
18
  end
19
19
 
20
20
  context 'when setting does not exists in db' do
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Settingify::Group do
4
+ subject(:group) { described_class.new(:test_group) }
5
+
6
+ describe '#title' do
7
+ it 'provides localized title' do
8
+ expect(I18n).to receive(:t)
9
+ group.title
10
+ end
11
+ end
12
+
13
+ describe '#add' do
14
+ it 'adds setting by key into group' do
15
+ group.add :grouped_setting
16
+ setting_keys = group.instance_variable_get("@setting_keys")
17
+ expect(setting_keys).to include(:grouped_setting)
18
+ end
19
+ end
20
+ end
@@ -1,13 +1,20 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Settingify::Reader do
4
+ subject(:reader) { described_class.new(setting_item) }
5
+
6
+ let(:setting_item) { Settingify::RepoItem.new(key, type, default) }
7
+
4
8
  let(:key) { 'reader_setting' }
5
9
  let(:type) { String }
6
10
  let(:default) { 'reader_value' }
7
11
 
8
- subject(:reader) { described_class.new(key, type, default) }
9
12
 
10
13
  context 'when table does not exists' do
14
+ before do
15
+ expect(reader).to receive(:table_exists?).and_return false
16
+ end
17
+
11
18
  it 'returns default value' do
12
19
  expect(reader.call).to eq default
13
20
  end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Settingify::RepoItem do
4
+ it { is_expected.to respond_to :name }
5
+ it { is_expected.to respond_to :type }
6
+ it { is_expected.to respond_to :default }
7
+ end
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module SomeBuilder
4
- extend Settingify::SettingBuilder
4
+ extend Settingify::DSL
5
5
  end
6
6
 
7
- describe Settingify::Repo do
7
+ describe Settingify::Repos::Settings do
8
8
  subject(:repo) { described_class.send :new }
9
9
 
10
10
  describe '#list' do
@@ -33,7 +33,7 @@ describe Settingify::Repo do
33
33
  end
34
34
  end
35
35
 
36
- describe '#clear' do
36
+ describe '#clear!' do
37
37
  before do
38
38
  SomeBuilder.setting(:for_clear_setting)
39
39
  end
@@ -41,7 +41,7 @@ describe Settingify::Repo do
41
41
  it 'removes all settings' do
42
42
  expect(Settingify).to respond_to :for_clear_setting
43
43
  expect(Settingify.registered_settings).to_not be_empty
44
- Settingify::Repo.instance.clear!
44
+ Settingify::Repos::Settings.instance.clear!
45
45
  expect(Settingify).to_not respond_to :for_clear_setting
46
46
  expect(Settingify.registered_settings).to be_empty
47
47
  end
@@ -1,21 +1,33 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module SomeBuilder
4
- extend Settingify::SettingBuilder
4
+ extend Settingify::DSL
5
5
  end
6
6
 
7
- describe Settingify::SettingBuilder do
8
- describe 'defining settings' do
9
- it 'successfully' do
10
- SomeBuilder.setting(:some_setting)
11
- expect(Settingify.some_setting).to eq ''
12
- end
7
+ describe Settingify::DSL do
8
+ describe '#setting' do
9
+ describe 'defining settings' do
10
+ it 'successfully' do
11
+ SomeBuilder.setting(:some_setting)
12
+ expect(Settingify.some_setting).to eq ''
13
+ end
13
14
 
14
- context 'when default is Integer' do
15
- it 'returns integer value' do
16
- SomeBuilder.setting :some_int_value, type: :integer, default: 12
17
- expect(Settingify.some_int_value).to eq 12
15
+ context 'when default is Integer' do
16
+ it 'returns integer value' do
17
+ SomeBuilder.setting :some_int_value, type: :integer, default: 12
18
+ expect(Settingify.some_int_value).to eq 12
19
+ end
18
20
  end
19
21
  end
20
22
  end
23
+
24
+ describe '#group' do
25
+ let(:block) { ->{ } }
26
+
27
+ it 'calls group builder properly' do
28
+ expect(Settingify::Builders::Group).to receive(:call).with(:another_group)
29
+
30
+ SomeBuilder.group :another_group, &block
31
+ end
32
+ end
21
33
  end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe Settingify::Setting do
4
+ subject(:setting) { described_class.new(key: :cool_setting) }
5
+
6
+ describe '#title' do
7
+ it 'returns setting title' do
8
+ expect(setting.title).to_not be_blank
9
+ end
10
+ end
11
+
12
+ describe '#description' do
13
+ it 'returns setting description' do
14
+ expect(setting.description).to_not be_blank
15
+ end
16
+ end
17
+ end
@@ -6,7 +6,7 @@ describe Settingify do
6
6
  it 'raises exception' do
7
7
  expect{
8
8
  Settingify.prepare_settings
9
- }.to raise_exception
9
+ }.to raise_error(Settingify::PrepareSettingsWithoutBlockError)
10
10
  end
11
11
  end
12
12
 
@@ -22,8 +22,37 @@ describe Settingify do
22
22
 
23
23
  describe '.registered_settings' do
24
24
  it 'calls list on repo' do
25
- expect(Settingify::Repo).to receive_message_chain(:instance, :list)
25
+ expect(Settingify::Repos::Settings).to receive_message_chain(:instance, :list)
26
26
  Settingify.registered_settings
27
27
  end
28
28
  end
29
+
30
+ context 'real testing' do
31
+ before(:each) do
32
+ Settingify::Repos::Settings.instance.clear!
33
+ end
34
+
35
+ describe 'grouped settings' do
36
+ before(:each) do
37
+ Settingify.prepare_settings do
38
+ setting :ungrouped_setting
39
+
40
+ group :group1 do
41
+ setting :grouped_setting, default: :grouped_value
42
+ end
43
+ end
44
+ end
45
+
46
+ it 'defines grouped setting as well as ungrouped one' do
47
+ expect(Settingify).to respond_to(:ungrouped_setting)
48
+ expect(Settingify).to respond_to(:grouped_setting)
49
+ end
50
+
51
+ it 'defines new group' do
52
+ expect(Settingify.groups.count).to eq 1
53
+ group = Settingify.groups.first
54
+ expect(group.key).to eq :group1
55
+ end
56
+ end
57
+ end
29
58
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: settingify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Gernyak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-30 00:00:00.000000000 Z
11
+ date: 2016-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -100,28 +100,28 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 3.0.0.beta
103
+ version: 3.4.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 3.0.0.beta
110
+ version: 3.4.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rspec-its
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 1.0.1
117
+ version: 1.2.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: 1.0.1
124
+ version: 1.2.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: pry-nav
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: json
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 1.8.3
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '='
165
+ - !ruby/object:Gem::Version
166
+ version: 1.8.3
153
167
  description: System for managing global settings trough database
154
168
  email:
155
169
  - sergeg1990@gmail.com
@@ -167,25 +181,32 @@ files:
167
181
  - lib/generators/settingify/install/templates/settingify.rb
168
182
  - lib/settingify.rb
169
183
  - lib/settingify/active_record_helpers.rb
184
+ - lib/settingify/builders/group.rb
170
185
  - lib/settingify/caster.rb
171
186
  - lib/settingify/constants.rb
172
187
  - lib/settingify/contract_ext.rb
173
188
  - lib/settingify/db_reader.rb
174
189
  - lib/settingify/db_syncer.rb
190
+ - lib/settingify/dsl.rb
191
+ - lib/settingify/errors.rb
192
+ - lib/settingify/group.rb
175
193
  - lib/settingify/railtie.rb
176
194
  - lib/settingify/reader.rb
177
- - lib/settingify/repo.rb
195
+ - lib/settingify/repo_item.rb
196
+ - lib/settingify/repos/settings.rb
178
197
  - lib/settingify/setting.rb
179
- - lib/settingify/setting_builder.rb
180
- - lib/settingify/settings_list.rb
198
+ - lib/settingify/settings_preparable.rb
181
199
  - lib/settingify/tasks/settingify.rake
182
200
  - lib/settingify/version.rb
183
201
  - settingify.gemspec
184
202
  - spec/db/schema.rb
185
203
  - spec/lib/settingify/db_syncer_spec.rb
204
+ - spec/lib/settingify/group_spec.rb
186
205
  - spec/lib/settingify/reader_spec.rb
187
- - spec/lib/settingify/repo_spec.rb
206
+ - spec/lib/settingify/repo_item_spec.rb
207
+ - spec/lib/settingify/repos/settings_spec.rb
188
208
  - spec/lib/settingify/setting_builder_spec.rb
209
+ - spec/lib/settingify/setting_spec.rb
189
210
  - spec/lib/settingify_spec.rb
190
211
  - spec/spec_helper.rb
191
212
  homepage: https://github.com/alterego-labs/settingify
@@ -208,15 +229,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
229
  version: '0'
209
230
  requirements: []
210
231
  rubyforge_project:
211
- rubygems_version: 2.4.4
232
+ rubygems_version: 2.4.8
212
233
  signing_key:
213
234
  specification_version: 4
214
235
  summary: Global setting system for Rails
215
236
  test_files:
216
237
  - spec/db/schema.rb
217
238
  - spec/lib/settingify/db_syncer_spec.rb
239
+ - spec/lib/settingify/group_spec.rb
218
240
  - spec/lib/settingify/reader_spec.rb
219
- - spec/lib/settingify/repo_spec.rb
241
+ - spec/lib/settingify/repo_item_spec.rb
242
+ - spec/lib/settingify/repos/settings_spec.rb
220
243
  - spec/lib/settingify/setting_builder_spec.rb
244
+ - spec/lib/settingify/setting_spec.rb
221
245
  - spec/lib/settingify_spec.rb
222
246
  - spec/spec_helper.rb
@@ -1,27 +0,0 @@
1
- require 'singleton'
2
-
3
- module Settingify
4
- class Repo
5
- include Singleton
6
-
7
- def list
8
- @settings_list ||= []
9
- @settings_list
10
- end
11
-
12
- def add(item)
13
- list << item
14
- end
15
-
16
- def clear!
17
- list.each(&method(:undef_method_for))
18
- list.clear
19
- end
20
-
21
- private
22
-
23
- def undef_method_for(item)
24
- Settingify::SettingsList.send :remove_method, item.name
25
- end
26
- end
27
- end
@@ -1,20 +0,0 @@
1
- module Settingify
2
- module SettingBuilder
3
- def setting(name, type: String, default: '')
4
- register_setting name, type, default
5
- define_setting name, type, default
6
- end
7
-
8
- private
9
-
10
- def define_setting(name, type, default)
11
- SettingsList.send :define_method, name do
12
- Reader.new(name, type, default).call
13
- end
14
- end
15
-
16
- def register_setting(name, type, default)
17
- Settingify::Repo.instance.add OpenStruct.new(name: name, type: type, default: default)
18
- end
19
- end
20
- end
@@ -1,4 +0,0 @@
1
- module Settingify
2
- module SettingsList
3
- end
4
- end