configatron 1.2.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/README +61 -34
  2. data/doc/classes/Configatron.html +241 -0
  3. data/doc/classes/Configatron/ProtectedParameter.html +146 -0
  4. data/doc/classes/Configatron/Store.html +241 -121
  5. data/doc/classes/Kernel.html +13 -20
  6. data/doc/created.rid +1 -1
  7. data/doc/files/README.html +85 -43
  8. data/doc/files/lib/configatron/{configuration_rb.html → configatron_rb.html} +11 -4
  9. data/doc/files/lib/configatron/{helpers_rb.html → errors_rb.html} +4 -4
  10. data/doc/files/lib/configatron/kernel_rb.html +1 -1
  11. data/doc/files/lib/configatron/store_rb.html +1 -1
  12. data/doc/files/lib/configatron_rb.html +1 -2
  13. data/doc/fr_class_index.html +2 -4
  14. data/doc/fr_file_index.html +2 -3
  15. data/doc/fr_method_index.html +15 -21
  16. data/lib/configatron.rb +5 -44
  17. data/lib/configatron/configatron.rb +44 -0
  18. data/lib/configatron/errors.rb +7 -0
  19. data/lib/configatron/kernel.rb +3 -9
  20. data/lib/configatron/store.rb +148 -56
  21. data/spec/lib/configatron_spec.rb +293 -0
  22. data/spec/lib/futurama.yml +6 -0
  23. data/spec/spec_helper.rb +3 -2
  24. metadata +11 -18
  25. data/doc/classes/Configatron/Configuration.html +0 -402
  26. data/doc/classes/Configatron/Helpers.html +0 -174
  27. data/doc/classes/Configatron/YamlStore.html +0 -203
  28. data/doc/classes/Hash.html +0 -193
  29. data/doc/files/lib/configatron/yaml_store_rb.html +0 -101
  30. data/lib/configatron/configuration.rb +0 -112
  31. data/lib/configatron/helpers.rb +0 -27
  32. data/lib/configatron/yaml_store.rb +0 -33
  33. data/spec/unit/configuration_spec.rb +0 -299
  34. data/spec/unit/family_guy.yml +0 -2
  35. data/spec/unit/helpers_spec.rb +0 -115
  36. data/spec/unit/kernel_spec.rb +0 -48
  37. data/spec/unit/store_spec.rb +0 -91
@@ -1,2 +0,0 @@
1
- family_guy: Peter Griffin
2
- lois: Lois Griffin
@@ -1,115 +0,0 @@
1
- require 'pathname'
2
- require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
3
-
4
- describe Configatron::Helpers do
5
-
6
- before :each do
7
- configatron.reset!
8
- end
9
-
10
- describe "exists?" do
11
-
12
- it "should return true or false if the configuration parameter exists" do
13
-
14
- configatron.exists?(:foo).should == false
15
- configatron.exists?(:email).should == false
16
-
17
- configatron do |config|
18
- config.foo = :bar
19
- config.namespace(:email) do |email|
20
- email.address = "mark@mackframework.com"
21
- end
22
- end
23
-
24
- configatron.exists?(:foo).should == true
25
- configatron.exists?(:email).should == true
26
- configatron.email.exists?(:address).should == true
27
- configatron.email.exists?(:server).should == false
28
-
29
- end
30
-
31
- end
32
-
33
- describe "retrieve" do
34
-
35
- before :each do
36
- configatron do |config|
37
- config.foo = :bar
38
- config.namespace(:email) do |email|
39
- email.address = "mark@mackframework.com"
40
- end
41
- end
42
- end
43
-
44
- it "should return a valid parameter" do
45
- configatron.retrieve(:foo).should == :bar
46
- configatron.email.retrieve(:address).should == "mark@mackframework.com"
47
- end
48
-
49
- it "should return a default value if one is specified" do
50
- configatron.retrieve(:name, "mark").should == "mark"
51
- configatron.email.retrieve(:server, "pop3.example.com").should == "pop3.example.com"
52
- end
53
-
54
- it "should behave like a standard missing parameter if no default value is specified" do
55
- lambda{configatron.retrieve(:name)}.should raise_error(NoMethodError)
56
- lambda{configatron.email.retrieve(:name)}.should raise_error(NoMethodError)
57
- end
58
-
59
- it "should return nil if the default value is nil" do
60
- configatron.retrieve(:name, nil).should == nil
61
- end
62
-
63
- it "should work!" do
64
- require 'logger'
65
- configatron do |config|
66
- config.namespace(:mack) do |mack|
67
- mack.render_url_timeout = 5
68
- mack.cache_classes = true
69
- mack.use_lint = true
70
- mack.show_exceptions = true
71
- mack.session_id = "_mack_session_id"
72
- mack.cookie_values = {
73
- "path" => "/"
74
- }
75
- mack.site_domain = "http://localhost:3000"
76
- mack.use_distributed_routes = false
77
- mack.distributed_app_name = nil
78
- mack.drb_timeout = 1
79
- mack.default_respository_name = "default"
80
- end
81
- config.namespace(:cachetastic_default_options) do |cache|
82
- cache.debug = false
83
- cache.adapter = :local_memory
84
- logger = ::Logger.new(STDOUT)
85
- logger.level = ::Logger::INFO
86
- cache.logger = logger
87
- end
88
- config.namespace(:log) do |log|
89
- log.detailed_requests = true
90
- log.level = :info
91
- log.console = false
92
- log.file = true
93
- log.console_format = "%l:\t[%d]\t%M"
94
- log.file_format = "%l:\t[%d]\t%M"
95
- end
96
- end
97
- configatron do |config|
98
- config.namespace(:mack) do |mack|
99
- mack.drb_timeout = 0
100
- mack.cookie_values = {}
101
- end
102
- config.namespace(:log) do |log|
103
- log.level = :error
104
- end
105
- config.run_remote_tests = true
106
- end
107
-
108
- configatron.log.retrieve(:file, false).should == true
109
- configatron.log.file.should == true
110
-
111
- end
112
-
113
- end
114
-
115
- end
@@ -1,48 +0,0 @@
1
- require 'pathname'
2
- require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
3
-
4
- describe Kernel do
5
-
6
- it "should have a configatron method" do
7
- configatron
8
- end
9
-
10
- describe "configatron" do
11
-
12
- before :each do
13
- configatron.reset!
14
- end
15
-
16
- it "should raise NoMethodError if the parameter doesn't exist" do
17
- lambda{configatron.i_dont_exist}.should raise_error(NoMethodError)
18
- end
19
-
20
- it "should return nil if nil_for_missing is set to true" do
21
- configatron.nil_for_missing = true
22
- configatron.i_dont_exist.should == nil
23
- end
24
-
25
- it "should take a block that allows for the configuration of the configatron system" do
26
- lambda{configatron.foo}.should raise_error(NoMethodError)
27
- configatron do |config|
28
- config.foo = :bar
29
- config.say_hello = "Hello World"
30
- end
31
- configatron.foo.should == :bar
32
- configatron.say_hello == "Hello World"
33
- end
34
-
35
- it "should allow previously defined parameters to be redefined" do
36
- configatron do |config|
37
- config.foo = :bar
38
- end
39
- configatron.foo.should == :bar
40
- configatron do |config|
41
- config.foo = "fubar"
42
- end
43
- configatron.foo.should == "fubar"
44
- end
45
-
46
- end
47
-
48
- end
@@ -1,91 +0,0 @@
1
- require 'pathname'
2
- require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
3
-
4
- describe Configatron::Store do
5
-
6
- before :each do
7
- configatron.reset!
8
- end
9
-
10
- describe "namespace" do
11
-
12
- it "should let you 'namespace' a set of configuration parameters" do
13
- lambda{configatron.foo}.should raise_error(NoMethodError)
14
- configatron do |config|
15
- config.namespace(:foo) do |foo|
16
- foo.bar = :bar
17
- end
18
- end
19
- configatron.foo.bar.should == :bar
20
- end
21
-
22
- it "should raise NoMethodError if nil_for_missing is set to false" do
23
- lambda{configatron.foo}.should raise_error(NoMethodError)
24
- configatron do |config|
25
- config.namespace(:foo) do |foo|
26
- foo.bar = :bar
27
- end
28
- end
29
- lambda{configatron.foo.say_hello}.should raise_error(NoMethodError)
30
- end
31
-
32
- it "should allow for unlimited nested namespaces" do
33
- configatron do |config|
34
- config.namespace(:foo) do |foo|
35
- foo.bar = :bar
36
- foo.namespace(:apples) do |apps|
37
- apps.granny_smith = "Granny Smith"
38
- apps.red = "Red"
39
- end
40
- end
41
- end
42
- configatron.foo.bar.should == :bar
43
- configatron.foo.apples.granny_smith.should == "Granny Smith"
44
- end
45
-
46
- it "should not override all parameters when you namespace" do
47
- configatron do |config|
48
- config.namespace(:foo) do |foo|
49
- foo.bar = :bar
50
- foo.name = "mark"
51
- end
52
- end
53
- configatron.foo.bar.should == :bar
54
- configatron.foo.name.should == "mark"
55
-
56
- configatron do |config|
57
- config.namespace(:foo) do |foo|
58
- foo.name = "mark bates"
59
- end
60
- end
61
-
62
- configatron.foo.bar.should == :bar
63
- configatron.foo.name.should == "mark bates"
64
- end
65
- end
66
-
67
- describe 'to_hash' do
68
- it "should convert the store to a hash" do
69
- configatron do |config|
70
- config.namespace :baz do |baz|
71
- baz.foo = 'bar'
72
- end
73
- end
74
-
75
- configatron.baz.to_hash.should == {:foo => 'bar'}
76
- end
77
-
78
- it 'should support multiple nesting levels in the store' do
79
- configatron do |config|
80
- config.namespace :baz do |baz|
81
- baz.foo = 'bar'
82
- baz.namespace :quux do |quux|
83
- quux.foob = 'barbaz'
84
- end
85
- end
86
- end
87
-
88
- configatron.baz.to_hash.should == {:foo => 'bar', :quux => {:foob => 'barbaz'}}
89
- end
90
- end
91
- end