korben 0.0.2 → 0.0.3

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.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Korben
2
2
 
3
- TODO: Write a gem description
3
+ A really simple configuration tool
4
4
 
5
5
  ## Installation
6
6
 
@@ -18,9 +18,9 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- Add configuration to initializers files kc_config.rb
21
+ Add configuration to initializers files k_config.rb
22
22
 
23
- KcConfig.setup do |config|
23
+ KConfig.setup do |config|
24
24
  config.const_name = "MyConf"
25
25
  end
26
26
  MyConf.load!( { foo: 'bar' } )
@@ -1,2 +1,2 @@
1
1
  require "korben/version"
2
- require "korben/kc_config"
2
+ require "korben/k_config"
@@ -0,0 +1,61 @@
1
+ require 'active_support/core_ext/module/attribute_accessors'
2
+
3
+ module KConfig
4
+ # ensures the setup only gets run once
5
+ @@_ran_once = false
6
+
7
+ mattr_accessor :const_name
8
+ @@const_name = "KSettings"
9
+
10
+ class << self
11
+
12
+ def setup
13
+ yield self if @@_ran_once == false
14
+ @@_ran_once = true
15
+ end
16
+
17
+ def load!(settings = {})
18
+ Kernel.send(:remove_const, KConfig.const_name) if Kernel.const_defined?(KConfig.const_name)
19
+ k_wrapper = KConfig::KWrapper.new
20
+ k_wrapper.load!(settings)
21
+ Kernel.const_set(KConfig.const_name, k_wrapper)
22
+ end
23
+ end
24
+
25
+ class KWrapper
26
+
27
+ def initialize
28
+ @settings = {}
29
+ end
30
+
31
+ def load!(settings = {})
32
+ settings.each { |key, value| set(key, value) }
33
+ end
34
+
35
+ def set(key, value)
36
+ define_accessor(key) { value }
37
+ @settings[key] = value
38
+ end
39
+
40
+ def exist?(key)
41
+ @settings.key?(key)
42
+ end
43
+
44
+ def get(key)
45
+ @settings[key]
46
+ end
47
+
48
+ private
49
+
50
+ def define_accessor(name, &block)
51
+ singleton_class.class_eval { define_method(name, &block) } if !respond_to?(name) || exist?(name)
52
+ end
53
+
54
+ def singleton_class
55
+ class << self
56
+ self
57
+ end
58
+ end
59
+ end
60
+
61
+ end
@@ -1,3 +1,3 @@
1
1
  module Korben
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe KConfig do
4
+
5
+ context "Simple Configuration" do
6
+ before { KConfig.load!( { foo: 'bar' } ) }
7
+ it { KSettings.get(:foo).should eql 'bar' }
8
+ it { KSettings.foo.should eql 'bar' }
9
+ end
10
+
11
+ context "Custom Configuration" do
12
+ it "should have the default settings constant as 'KSettings'" do
13
+ KConfig.const_name.should eql "KSettings"
14
+ end
15
+
16
+ it "should be able to assign a different settings constant" do
17
+ KConfig.setup { |config| config.const_name = "AnotherSettingConstantName" }
18
+ KConfig.const_name.should == "AnotherSettingConstantName"
19
+ end
20
+ end
21
+
22
+ context "KConfig::KWrapper" do
23
+ let(:wrapper) { KConfig::KWrapper.new }
24
+ before { wrapper.set(:key, 'value') }
25
+ subject { wrapper.get(:key) }
26
+
27
+ it "should have the value" do
28
+ should eql 'value'
29
+ end
30
+
31
+ context "have method" do
32
+ subject { wrapper }
33
+ its(:key) { should eql 'value' }
34
+ end
35
+ end
36
+
37
+ end
38
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: korben
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-02 00:00:00.000000000 Z
12
+ date: 2012-07-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -92,9 +92,9 @@ files:
92
92
  - init.rb
93
93
  - korben.gemspec
94
94
  - lib/korben.rb
95
- - lib/korben/kc_config.rb
95
+ - lib/korben/k_config.rb
96
96
  - lib/korben/version.rb
97
- - spec/korben/kc_config_spec.rb
97
+ - spec/korben/k_config_spec.rb
98
98
  - spec/spec_helper.rb
99
99
  homepage: https://github.com/joel/korben
100
100
  licenses: []
@@ -121,5 +121,5 @@ signing_key:
121
121
  specification_version: 3
122
122
  summary: Simple helper for Rails App configuration
123
123
  test_files:
124
- - spec/korben/kc_config_spec.rb
124
+ - spec/korben/k_config_spec.rb
125
125
  - spec/spec_helper.rb
@@ -1,60 +0,0 @@
1
- require 'active_support/core_ext/module/attribute_accessors'
2
-
3
- module KcConfig
4
- # ensures the setup only gets run once
5
- @@_ran_once = false
6
-
7
- mattr_accessor :const_name
8
- @@const_name = "KcSettings"
9
-
10
- class << self
11
-
12
- def setup
13
- yield self if @@_ran_once == false
14
- @@_ran_once = true
15
- end
16
-
17
- def load!(settings = {})
18
- Kernel.send(:remove_const, KcConfig.const_name) if Kernel.const_defined?(KcConfig.const_name)
19
- kc_wrapper = KcWrapper.new
20
- kc_wrapper.load!(settings)
21
- Kernel.const_set(KcConfig.const_name, kc_wrapper)
22
- end
23
- end
24
- end
25
-
26
- class KcWrapper
27
-
28
- def initialize
29
- @settings = {}
30
- end
31
-
32
- def load!(settings = {})
33
- settings.each { |key, value| set(key, value) }
34
- end
35
-
36
- def set(key, value)
37
- define_accessor(key) { value }
38
- @settings[key] = value
39
- end
40
-
41
- def exist?(key)
42
- @settings.key?(key)
43
- end
44
-
45
- def get(key)
46
- @settings[key]
47
- end
48
-
49
- private
50
-
51
- def define_accessor(name, &block)
52
- singleton_class.class_eval { define_method(name, &block) } if !respond_to?(name) || exist?(name)
53
- end
54
-
55
- def singleton_class
56
- class << self
57
- self
58
- end
59
- end
60
- end
@@ -1,38 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe KcConfig do
4
-
5
- context "Simple Configuration" do
6
- before { KcConfig.load!( { foo: 'bar' } ) }
7
- it { KcSettings.get(:foo).should eql 'bar' }
8
- it { KcSettings.foo.should eql 'bar' }
9
- end
10
-
11
- context "Custom Configuration" do
12
- it "should have the default settings constant as 'KcSettings'" do
13
- KcConfig.const_name.should eql "KcSettings"
14
- end
15
-
16
- it "should be able to assign a different settings constant" do
17
- KcConfig.setup { |config| config.const_name = "AnotherSettingConstantName" }
18
- KcConfig.const_name.should == "AnotherSettingConstantName"
19
- end
20
- end
21
-
22
- context "KcWrapper" do
23
- let(:wrapper) { KcWrapper.new }
24
- before { wrapper.set(:key, 'value') }
25
- subject { wrapper.get(:key) }
26
-
27
- it "should have the value" do
28
- should eql 'value'
29
- end
30
-
31
- context "have method" do
32
- subject { wrapper }
33
- its(:key) { should eql 'value' }
34
- end
35
- end
36
-
37
- end
38
-