config_context 0.4.1 → 0.5.0

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.
@@ -1,6 +1,7 @@
1
1
  = Config Context:
2
2
 
3
- Your DSL config context...
3
+ Your minimal and DSL config context...
4
+
4
5
 
5
6
  == Installing
6
7
 
@@ -8,7 +9,8 @@ The latest stable version is published in gemcutter.
8
9
 
9
10
  gem install config_context
10
11
 
11
- == How to use
12
+
13
+ == How to use, some useful examples
12
14
 
13
15
  require 'rubygems'
14
16
  require 'config_context'
@@ -45,11 +47,16 @@ The latest stable version is published in gemcutter.
45
47
  end
46
48
 
47
49
  puts ConfigContext.a if( ConfigContext.a? )
48
- puts ConfigContext.all.inspect
50
+ puts ConfigContext.to_hash.inspect
51
+
52
+
53
+ ##
54
+ #
55
+ #
49
56
 
50
57
  == TODO
51
58
 
52
- * Document all this stuff in english... I promise
59
+ * ???
53
60
 
54
61
 
55
62
  == License
@@ -4,35 +4,48 @@ require 'yaml'
4
4
  module ConfigContext
5
5
  extend self
6
6
 
7
- @config = {}
7
+ @config = { }
8
8
 
9
9
  class Error < StandardError; end
10
10
 
11
+
11
12
  private
13
+
14
+
15
+ def _method_to_key( method )
16
+ method.to_s.delete( '=?!' ).to_sym
17
+ end
18
+
12
19
  def _add_property( method, *arguments )
13
-
14
- property_key = method.to_s.delete( '=' ).to_sym
15
- @config[property_key] = arguments.length == 1 ? arguments[0] : arguments
20
+ @config[_method_to_key( method )] = arguments.length == 1 ? arguments[0] : arguments
16
21
  end
17
22
 
18
23
  def _property?( method )
19
-
20
- property_key = method.to_s.delete( '?' ).to_sym
21
- @config.keys.include?( property_key )
24
+ @config.keys.include?( _method_to_key( method ) )
22
25
  end
23
26
 
24
27
  def _get_property( method )
25
28
  @config[method]
26
29
  end
27
30
 
28
- def configure_from_yaml( config_file )
31
+ def configure_from_hash( hash )
32
+ @config.merge!( hash )
33
+ end
34
+
35
+ def configure_from_yaml( config_file )
29
36
 
30
- YAML.load_file( config_file ).each do |key,value|
31
-
32
- @config[key] = value
33
- end
37
+ YAML.load_file( config_file ).each { |k, v| @config[k] = v }
34
38
  rescue Exception => e
35
39
  raise ConfigContext::Error.new( e.message )
40
+ end
41
+
42
+ def self.deprecate( old_method, new_method )
43
+
44
+ define_method( old_method ) do |*arguments, &block|
45
+
46
+ warn( "Warning: #{old_method}() is deprecated. Use #{new_method}() instead." )
47
+ send( new_method, *arguments, &block )
48
+ end
36
49
  end
37
50
 
38
51
 
@@ -50,9 +63,11 @@ module ConfigContext
50
63
 
51
64
  def configure( *arguments, &block )
52
65
 
53
- configuration = case arguments[0]
66
+ case arguments[0]
54
67
  when /\.(yml|yaml)/i
55
68
  configure_from_yaml( arguments[0] )
69
+ when Hash
70
+ configure_from_hash( arguments[0] )
56
71
  else
57
72
  yield self if block_given?
58
73
  end
@@ -61,8 +76,7 @@ module ConfigContext
61
76
  def to_hash()
62
77
  @config
63
78
  end
64
-
65
- # Backward compat with older versions
66
- alias :load :configure
67
- alias :all :to_hash
79
+
80
+ deprecate :load, :configure
81
+ deprecate :all, :to_hash
68
82
  end
@@ -1,8 +1,8 @@
1
1
  module Version
2
2
  INFO = {
3
3
  :major =>0,
4
- :minor =>4,
5
- :patch =>1
4
+ :minor =>5,
5
+ :patch =>0
6
6
  }
7
7
 
8
8
  NAME = 'config_context'
@@ -18,6 +18,7 @@ class TestConfigContext < Test::Unit::TestCase
18
18
  setup do
19
19
 
20
20
  ConfigContext.configure do |config|
21
+
21
22
  config.mysymbol = TEST_SYMBOL
22
23
  config.mylist = TEST_LIST
23
24
  config.myhash = TEST_HASH
@@ -57,16 +58,29 @@ class TestConfigContext < Test::Unit::TestCase
57
58
  end
58
59
  end
59
60
 
60
- should "load a Yaml file" do
61
+ should "configure from a Yaml file" do
61
62
 
62
- assert_raises( ConfigContext::Error ) { ConfigContext.load( "very_bad_file.yml" ) }
63
+ assert_raises( ConfigContext::Error ) { ConfigContext.configure( "very_bad_file.yml" ) }
64
+
63
65
  ConfigContext.configure( File.join( File.dirname( __FILE__ ), %w[ .. fixtures test.yml] ) )
64
- assert_equal( ConfigContext.all, {
66
+ assert_equal( ConfigContext.to_hash, {
65
67
  :mysymbol =>TEST_SYMBOL,
66
68
  :mylist =>TEST_LIST,
67
69
  :myhash =>TEST_HASH
68
70
  } )
69
71
  end
72
+
73
+ should "configurre from a Hash" do
74
+
75
+ config_hash = {
76
+ :mysymbol =>TEST_SYMBOL,
77
+ :mylist =>TEST_LIST,
78
+ :myhash =>TEST_HASH
79
+ }
80
+
81
+ ConfigContext.configure( config_hash )
82
+ assert_equal( ConfigContext.to_hash, config_hash )
83
+ end
70
84
 
71
85
  should "update properties" do
72
86
 
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: 13
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 4
9
- - 1
10
- version: 0.4.1
8
+ - 5
9
+ - 0
10
+ version: 0.5.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-05-19 00:00:00 +02:00
18
+ date: 2011-05-20 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency