ultra_config 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ffa45a0f3ecf8a2044f7f1f57b610a4c147b0776
4
- data.tar.gz: 4d5c393e0d79e7883ce03e0186d9a9ce23fda894
3
+ metadata.gz: d923904e21359dbeee843bde20f65baffb470190
4
+ data.tar.gz: 69da171b1598677a0209e0b0e7bfb7641073a6fc
5
5
  SHA512:
6
- metadata.gz: 746e79bd77da3732f5ee3c60fcdb3b22cee05b9dadce62b7112e0af86d10c3854bcc560ef397a8f092ecdc90d7179ff2a0224895fcbad8855d470a91836be351
7
- data.tar.gz: 40ed4c03ad3d9565e0764e14018198ca4c6389f1e33830af93e965e7864ee5647e7c25dada02a271f583807b55d5ad80c534991cd67a0a47232de1db758a5bd8
6
+ metadata.gz: ce11dc29cbf49c94df57ba3a552d44d2dfe7233d66963778ac42d8a992eb932cfafd6de3bd432d9618755dc14be9ba0fffaf033e3d6be28cef8148efdbc9cbd8
7
+ data.tar.gz: e98cc94d35466365c3d42221c9d32c9a894438aa2945668d174ad9deaf9b17bbdfd577c7be90137c2419492b562300ac9d10276e8c1d59ba7b7f0b3344cd45ce
@@ -2,6 +2,8 @@ require_relative 'config'
2
2
 
3
3
  module UltraConfig
4
4
  class Namespace
5
+ class ObjectNotFoundError < StandardError; end
6
+
5
7
  def initialize(&block)
6
8
  @configuration = [block]
7
9
  reset
@@ -18,24 +20,19 @@ module UltraConfig
18
20
 
19
21
  def namespace(name, &block)
20
22
  @objects[name] = Namespace.new(&block)
23
+ define_singleton_method(name) { @objects[name] }
21
24
  end
22
25
 
23
26
  def config(name, default = nil, options = {}, &block)
24
27
  @objects[name] = Config.new(default, options, &block)
28
+ define_singleton_method("#{name}=") { |value| @objects[name].value = value }
29
+ define_singleton_method(name) { @objects[name].value }
25
30
  end
26
31
 
27
32
  def helper(name, &block)
28
33
  define_singleton_method(name, &block)
29
34
  end
30
35
 
31
- def method_missing(m, *args)
32
- if m.to_s.end_with?('=')
33
- @objects[m.to_s[0...-1].to_sym].value=(args[0])
34
- else
35
- @objects[m].is_a?(Config) ? @objects[m].value : @objects[m]
36
- end
37
- end
38
-
39
36
  def reset
40
37
  @objects = {}
41
38
  @configuration.each { |config| self.instance_eval(&config) }
@@ -62,5 +59,9 @@ module UltraConfig
62
59
 
63
60
  hash
64
61
  end
62
+
63
+ def method_missing(m)
64
+ raise ObjectNotFoundError
65
+ end
65
66
  end
66
67
  end
data/ultra_config.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'ultra_config'
7
- spec.version = '0.9.0'
7
+ spec.version = '0.9.1'
8
8
  spec.authors = ['Gregory Kuruc']
9
9
  spec.email = ['gjk910327@gmail.com']
10
10
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ultra_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregory Kuruc
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-21 00:00:00.000000000 Z
11
+ date: 2018-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler