@@ -8,28 +8,32 @@ class Dummy
88 it "should define single key" do
99 Configuration . new ( Dummy , :dashboard )
1010
11- expect ( Dummy . default_settings ) . to eq ( { :dashboard => { } } )
12- expect ( Dummy . setting_object_class_name ) . to eq ( 'RailsSettings::SettingObject' )
11+ expect ( Dummy . setting_keys [ :dashboard ] [ :default_value ] ) . to eq ( { } )
12+ expect ( Dummy . setting_keys [ :dashboard ] [ :class_name ] ) . to eq ( 'RailsSettings::SettingObject' )
1313 end
1414
1515 it "should define multiple keys" do
1616 Configuration . new ( Dummy , :dashboard , :calendar )
1717
18- expect ( Dummy . default_settings ) . to eq ( { :dashboard => { } , :calendar => { } } )
19- expect ( Dummy . setting_object_class_name ) . to eq ( 'RailsSettings::SettingObject' )
18+ expect ( Dummy . setting_keys [ :dashboard ] [ :default_value ] ) . to eq ( { } )
19+ expect ( Dummy . setting_keys [ :calendar ] [ :default_value ] ) . to eq ( { } )
20+ expect ( Dummy . setting_keys [ :dashboard ] [ :class_name ] ) . to eq ( 'RailsSettings::SettingObject' )
21+ expect ( Dummy . setting_keys [ :calendar ] [ :class_name ] ) . to eq ( 'RailsSettings::SettingObject' )
2022 end
2123
2224 it "should define single key with class_name" do
23- Configuration . new ( Dummy , :dashboard , :class_name => 'MyClass ' )
24- expect ( Dummy . default_settings ) . to eq ( { :dashboard => { } } )
25- expect ( Dummy . setting_object_class_name ) . to eq ( 'MyClass ' )
25+ Configuration . new ( Dummy , :dashboard , :class_name => 'ProjectSettingObject ' )
26+ expect ( Dummy . setting_keys [ :dashboard ] [ :default_value ] ) . to eq ( { } )
27+ expect ( Dummy . setting_keys [ :dashboard ] [ :class_name ] ) . to eq ( 'ProjectSettingObject ' )
2628 end
2729
2830 it "should define multiple keys with class_name" do
29- Configuration . new ( Dummy , :dashboard , :calendar , :class_name => 'MyClass ' )
31+ Configuration . new ( Dummy , :dashboard , :calendar , :class_name => 'ProjectSettingObject ' )
3032
31- expect ( Dummy . default_settings ) . to eq ( { :dashboard => { } , :calendar => { } } )
32- expect ( Dummy . setting_object_class_name ) . to eq ( 'MyClass' )
33+ expect ( Dummy . setting_keys [ :dashboard ] [ :default_value ] ) . to eq ( { } )
34+ expect ( Dummy . setting_keys [ :calendar ] [ :default_value ] ) . to eq ( { } )
35+ expect ( Dummy . setting_keys [ :dashboard ] [ :class_name ] ) . to eq ( 'ProjectSettingObject' )
36+ expect ( Dummy . setting_keys [ :calendar ] [ :class_name ] ) . to eq ( 'ProjectSettingObject' )
3337 end
3438
3539 it "should define using block" do
@@ -38,8 +42,10 @@ class Dummy
3842 c . key :calendar
3943 end
4044
41- expect ( Dummy . default_settings ) . to eq ( { :dashboard => { } , :calendar => { } } )
42- expect ( Dummy . setting_object_class_name ) . to eq ( 'RailsSettings::SettingObject' )
45+ expect ( Dummy . setting_keys [ :dashboard ] [ :default_value ] ) . to eq ( { } )
46+ expect ( Dummy . setting_keys [ :calendar ] [ :default_value ] ) . to eq ( { } )
47+ expect ( Dummy . setting_keys [ :dashboard ] [ :class_name ] ) . to eq ( 'RailsSettings::SettingObject' )
48+ expect ( Dummy . setting_keys [ :calendar ] [ :class_name ] ) . to eq ( 'RailsSettings::SettingObject' )
4349 end
4450
4551 it "should define using block with defaults" do
@@ -48,18 +54,22 @@ class Dummy
4854 c . key :calendar , :defaults => { :scope => 'all' }
4955 end
5056
51- expect ( Dummy . default_settings ) . to eq ( { :dashboard => { 'theme' => 'red' } , :calendar => { 'scope' => 'all' } } )
52- expect ( Dummy . setting_object_class_name ) . to eq ( 'RailsSettings::SettingObject' )
57+ expect ( Dummy . setting_keys [ :dashboard ] [ :default_value ] ) . to eq ( { 'theme' => 'red' } )
58+ expect ( Dummy . setting_keys [ :calendar ] [ :default_value ] ) . to eq ( { 'scope' => 'all' } )
59+ expect ( Dummy . setting_keys [ :dashboard ] [ :class_name ] ) . to eq ( 'RailsSettings::SettingObject' )
60+ expect ( Dummy . setting_keys [ :calendar ] [ :class_name ] ) . to eq ( 'RailsSettings::SettingObject' )
5361 end
5462
5563 it "should define using block and class_name" do
56- Configuration . new ( Dummy , :class_name => 'MyClass ' ) do |c |
64+ Configuration . new ( Dummy , :class_name => 'ProjectSettingObject ' ) do |c |
5765 c . key :dashboard
5866 c . key :calendar
5967 end
6068
61- expect ( Dummy . default_settings ) . to eq ( { :dashboard => { } , :calendar => { } } )
62- expect ( Dummy . setting_object_class_name ) . to eq ( 'MyClass' )
69+ expect ( Dummy . setting_keys [ :dashboard ] [ :default_value ] ) . to eq ( { } )
70+ expect ( Dummy . setting_keys [ :calendar ] [ :default_value ] ) . to eq ( { } )
71+ expect ( Dummy . setting_keys [ :dashboard ] [ :class_name ] ) . to eq ( 'ProjectSettingObject' )
72+ expect ( Dummy . setting_keys [ :calendar ] [ :class_name ] ) . to eq ( 'ProjectSettingObject' )
6373 end
6474 end
6575
@@ -104,5 +114,13 @@ class Dummy
104114 end
105115 } . to raise_error ( ArgumentError )
106116 end
117+
118+ it "should fail with an invalid settings object" do
119+ expect {
120+ Configuration . new ( Dummy ) do |c |
121+ c . key :dashboard , :class_name => "InvalidSettingObject"
122+ end
123+ } . to raise_error ( ArgumentError )
124+ end
107125 end
108126end
0 commit comments