config_context 0.3.5 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,7 +4,7 @@ require 'yaml'
4
4
  module ConfigContext
5
5
  extend self
6
6
 
7
- @config = Hash.new
7
+ @config = {}
8
8
 
9
9
  class Error < StandardError; end
10
10
 
@@ -18,17 +18,25 @@ module ConfigContext
18
18
  def _property?( method )
19
19
 
20
20
  property_key = method.to_s.delete( '?' ).to_sym
21
-
22
21
  @config.keys.include?( property_key )
23
22
  end
24
23
 
25
24
  def _get_property( method )
26
-
27
25
  @config[method]
28
26
  end
27
+
28
+ def configure_from_yaml( config_file )
29
+
30
+ YAML.load_file( config_file ).each do |key,value|
31
+
32
+ @config[key] = value
33
+ end
34
+ rescue Exception => e
35
+ raise ConfigContext::Error.new( e.message )
36
+ end
29
37
 
30
38
 
31
- public
39
+ public
32
40
  def method_missing( method, *arguments, &block )
33
41
 
34
42
  if( method.to_s =~ /(.+)=$/ )
@@ -39,22 +47,22 @@ module ConfigContext
39
47
  _get_property( method )
40
48
  end
41
49
  end
42
-
43
- def load( config_file )
44
-
45
- YAML.load_file( config_file ).each do |key,value|
46
-
47
- @config[key] = value
48
- end
49
- rescue Exception => e
50
- raise ConfigContext::Error.new( e.message )
51
- end
52
-
53
- def configure()
54
- yield self
50
+
51
+ def configure( *arguments, &block )
52
+
53
+ configuration = case arguments[0]
54
+ when /\.(yml|yaml)/i
55
+ configure_from_yaml( arguments[0] )
56
+ else
57
+ yield self if block_given?
58
+ end
55
59
  end
56
60
 
57
- def all()
61
+ def to_hash()
58
62
  @config
59
63
  end
64
+
65
+ # Backward compat with older versions
66
+ alias :load :configure
67
+ alias :all :to_hash
60
68
  end
@@ -1,8 +1,8 @@
1
1
  module Version
2
2
  INFO = {
3
3
  :major =>0,
4
- :minor =>3,
5
- :patch =>5
4
+ :minor =>4,
5
+ :patch =>0
6
6
  }
7
7
 
8
8
  NAME = 'config_context'
@@ -42,7 +42,7 @@ class TestConfigContext < Test::Unit::TestCase
42
42
 
43
43
  should "retrive all properties" do
44
44
 
45
- assert_equal( ConfigContext.all, {
45
+ assert_equal( ConfigContext.to_hash, {
46
46
  :mysymbol =>TEST_SYMBOL,
47
47
  :mylist =>TEST_LIST,
48
48
  :myhash =>TEST_HASH
@@ -53,14 +53,14 @@ class TestConfigContext < Test::Unit::TestCase
53
53
 
54
54
  [ :mysymbol, :mylist, :myhash ].each do |key|
55
55
 
56
- assert( ConfigContext.all.keys.include?( key ) )
56
+ assert( ConfigContext.to_hash.keys.include?( key ) )
57
57
  end
58
58
  end
59
59
 
60
60
  should "load a Yaml file" do
61
61
 
62
62
  assert_raises( ConfigContext::Error ) { ConfigContext.load( "very_bad_file.yml" ) }
63
- ConfigContext.load( File.join( File.dirname( __FILE__ ), %w[ .. fixtures test.yml] ) )
63
+ ConfigContext.configure( File.join( File.dirname( __FILE__ ), %w[ .. fixtures test.yml] ) )
64
64
  assert_equal( ConfigContext.all, {
65
65
  :mysymbol =>TEST_SYMBOL,
66
66
  :mylist =>TEST_LIST,
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: config_context
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 3
9
- - 5
10
- version: 0.3.5
8
+ - 4
9
+ - 0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Javier Juarez
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-29 00:00:00 +02:00
18
+ date: 2011-05-19 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -79,5 +79,5 @@ rubygems_version: 1.6.2
79
79
  signing_key:
80
80
  specification_version: 3
81
81
  summary: A Config Context for little applications
82
- test_files:
83
- - test/unit/test_config_context.rb
82
+ test_files: []
83
+