ultra_config 0.9.0 → 0.9.1

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: 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