rails_admin_settings 0.5.0 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,50 +1,50 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- # this tests check how well rails_admin_settings handles settings disappearing from DB during execution
6
- # real usage: app specs with database_cleaner enabled
7
- describe Settings do
8
-
9
- it "should handle settings disappearing from DB" do
10
- email = "my@mail.ru"
11
- email2 = "my2@mail.ru"
12
- Settings.email = email
13
- Settings.email.should == email
14
- RailsAdminSettings::Setting.destroy_all
15
- # settings are still cached
16
- Settings.email.should == email
17
-
18
- Settings.email = email2
19
- Settings.email.should == email2
20
- end
21
-
22
- it "should handle settings appearing from DB" do
23
- Settings.tst2.should == ''
24
- RailsAdminSettings::Setting.create(key: 'tst', raw: 'tst')
25
- # settings are still cached, but when we try to create a setting it sees updated value in DB
26
- Settings.tst.should == 'tst'
27
- end
28
-
29
- it "should handle settings appearing in DB" do
30
- RailsAdminSettings::Setting.create(key: 'tst', raw: 'tst')
31
-
32
- Settings.tst = 'str'
33
- Settings.tst.should == 'str'
34
- end
35
-
36
- it "#destroy_all!" do
37
- Settings.tst = 'str'
38
- expect { Settings.destroy_all }.to raise_exception
39
- Settings.destroy_all!
40
- Settings.tst.should == ''
41
- end
42
- it "#destroy!" do
43
- Settings.tst = 'str'
44
- Settings.tst2 = 'str2'
45
- expect { Settings.destroy(:tst) }.to raise_exception
46
- Settings.destroy!(:tst)
47
- Settings.tst.should == ''
48
- Settings.tst2.should == 'str2'
49
- end
50
- end
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ # this tests check how well rails_admin_settings handles settings disappearing from DB during execution
6
+ # real usage: app specs with database_cleaner enabled
7
+ describe Settings do
8
+
9
+ it "should handle settings disappearing from DB" do
10
+ email = "my@mail.ru"
11
+ email2 = "my2@mail.ru"
12
+ Settings.email = email
13
+ Settings.email.should == email
14
+ RailsAdminSettings::Setting.destroy_all
15
+ # settings are still cached
16
+ Settings.email.should == email
17
+
18
+ Settings.email = email2
19
+ Settings.email.should == email2
20
+ end
21
+
22
+ it "should handle settings appearing from DB" do
23
+ Settings.tst2.should == ''
24
+ RailsAdminSettings::Setting.create(key: 'tst', raw: 'tst')
25
+ # settings are still cached, but when we try to create a setting it sees updated value in DB
26
+ Settings.tst.should == 'tst'
27
+ end
28
+
29
+ it "should handle settings appearing in DB" do
30
+ RailsAdminSettings::Setting.create(key: 'tst', raw: 'tst')
31
+
32
+ Settings.tst = 'str'
33
+ Settings.tst.should == 'str'
34
+ end
35
+
36
+ it "#destroy_all!" do
37
+ Settings.tst = 'str'
38
+ expect { Settings.destroy_all }.to raise_exception
39
+ Settings.destroy_all!
40
+ Settings.tst.should == ''
41
+ end
42
+ it "#destroy!" do
43
+ Settings.tst = 'str'
44
+ Settings.tst2 = 'str2'
45
+ expect { Settings.destroy(:tst) }.to raise_exception
46
+ Settings.destroy!(:tst)
47
+ Settings.tst.should == ''
48
+ Settings.tst2.should == 'str2'
49
+ end
50
+ end
@@ -1,8 +1,8 @@
1
- # coding: utf-8
2
-
3
- FactoryGirl.define do
4
- factory :setting, class: RailsAdminSettings::Setting do
5
- sequence(:key){|n| "setting_#{n}" }
6
- raw "Контент 1"
7
- end
8
- end
1
+ # coding: utf-8
2
+
3
+ FactoryGirl.define do
4
+ factory :setting, class: RailsAdminSettings::Setting do
5
+ sequence(:key){|n| "setting_#{n}" }
6
+ raw "Контент 1"
7
+ end
8
+ end
data/spec/model_spec.rb CHANGED
@@ -1,45 +1,45 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RailsAdminSettings::Setting do
6
- it { should have_fields(:enabled, :key, :type, :raw) }
7
-
8
- it "correctly return content when enabled" do
9
- setting = FactoryGirl.create(:setting)
10
- setting.to_s.should eq "Контент 1"
11
- end
12
-
13
- it "return empty string when disabled" do
14
- setting = FactoryGirl.create(:setting, enabled: false)
15
- setting.to_s.should eq ""
16
- end
17
-
18
- it "correctly process {{year}}" do
19
- setting = FactoryGirl.create(:setting, raw: '© {{year}} company')
20
- setting.val.should eq "© #{Time.now.strftime('%Y')} company"
21
- end
22
-
23
- it "correctly process {{year|2010}}" do
24
- setting = FactoryGirl.create(:setting, raw: '© {{year|2010}} company')
25
- setting.val.should eq "© 2010-#{Time.now.strftime('%Y')} company"
26
- end
27
-
28
- it "correctly process {{year|current_year}}" do
29
- setting = FactoryGirl.create(:setting, raw: '© {{year|' + Time.now.strftime('%Y') + '}} company')
30
- setting.val.should eq "© #{Time.now.strftime('%Y')} company"
31
- setting.val.class.name.should_not eq "ActiveSupport::SafeBuffer"
32
- end
33
-
34
- it 'return html_safe string when in html mode' do
35
- setting = FactoryGirl.create(:setting, raw: '© {{year}} company', type: 'html')
36
- setting.val.should eq "© #{Time.now.strftime('%Y')} company"
37
- setting.val.class.name.should eq "ActiveSupport::SafeBuffer"
38
- end
39
-
40
- it 'sanitize html when in sanitized mode' do
41
- setting = FactoryGirl.create(:setting, raw: '&copy; {{year}} company <a href="javascript:alert()">test</a>', type: 'sanitized')
42
- setting.val.should eq "© #{Time.now.strftime('%Y')} company <a>test</a>"
43
- setting.val.class.name.should eq "ActiveSupport::SafeBuffer"
44
- end
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe RailsAdminSettings::Setting do
6
+ it { should have_fields(:enabled, :key, :type, :raw) }
7
+
8
+ it "correctly return content when enabled" do
9
+ setting = FactoryGirl.create(:setting)
10
+ setting.to_s.should eq "Контент 1"
11
+ end
12
+
13
+ it "return empty string when disabled" do
14
+ setting = FactoryGirl.create(:setting, enabled: false)
15
+ setting.to_s.should eq ""
16
+ end
17
+
18
+ it "correctly process {{year}}" do
19
+ setting = FactoryGirl.create(:setting, raw: '&copy; {{year}} company')
20
+ setting.val.should eq "&copy; #{Time.now.strftime('%Y')} company"
21
+ end
22
+
23
+ it "correctly process {{year|2010}}" do
24
+ setting = FactoryGirl.create(:setting, raw: '&copy; {{year|2010}} company')
25
+ setting.val.should eq "&copy; 2010-#{Time.now.strftime('%Y')} company"
26
+ end
27
+
28
+ it "correctly process {{year|current_year}}" do
29
+ setting = FactoryGirl.create(:setting, raw: '&copy; {{year|' + Time.now.strftime('%Y') + '}} company')
30
+ setting.val.should eq "&copy; #{Time.now.strftime('%Y')} company"
31
+ setting.val.class.name.should_not eq "ActiveSupport::SafeBuffer"
32
+ end
33
+
34
+ it 'return html_safe string when in html mode' do
35
+ setting = FactoryGirl.create(:setting, raw: '&copy; {{year}} company', type: 'html')
36
+ setting.val.should eq "&copy; #{Time.now.strftime('%Y')} company"
37
+ setting.val.class.name.should eq "ActiveSupport::SafeBuffer"
38
+ end
39
+
40
+ it 'sanitize html when in sanitized mode' do
41
+ setting = FactoryGirl.create(:setting, raw: '&copy; {{year}} company <a href="javascript:alert()">test</a>', type: 'sanitized')
42
+ setting.val.should eq "© #{Time.now.strftime('%Y')} company <a>test</a>"
43
+ setting.val.class.name.should eq "ActiveSupport::SafeBuffer"
44
+ end
45
45
  end
data/spec/types_spec.rb CHANGED
@@ -1,63 +1,63 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe 'Settings advanced usage' do
6
- it 'support html type' do
7
- Settings.get(:email, type: 'html', default: 'test@example.com').to_s.should eq 'test@example.com'
8
- end
9
-
10
- it 'support integer type' do
11
- Settings.get(:testint, type: 'integer').value.should eq 0
12
- Settings.get(:testint, default: 5, type: 'integer').value.should eq 0
13
- Settings.get(:testint2, default: 5, type: 'integer').value.should eq 5
14
- Settings.testint2.should eq 5
15
- end
16
-
17
- it 'supports yaml type' do
18
- Settings.set(:data, '[one, two, three]', type: 'yaml')
19
- Settings.get(:data).raw.should eq '[one, two, three]'
20
- Settings.data.should eq ['one', 'two', 'three']
21
- end
22
-
23
- it 'supports phone type' do
24
- Settings.set(:tphone, '906 111 11 11', type: 'phone')
25
- Settings.get(:tphone).val.class.name.should eq 'RussianPhone::Number'
26
- Settings.tphone.class.name.should eq 'RussianPhone::Number'
27
- Settings.tphone.should eq '906 111 11 11'
28
- Settings.get(:tphone).phone_type?.should be_true
29
- Settings.get(:tphone).val.city.should eq '906'
30
- Settings.get(:tphone).val.formatted_subscriber.should eq '111-11-11'
31
- end
32
-
33
- it 'sets defaults for phone type' do
34
- Settings.dphone(type: 'phone')
35
- Settings.get(:dphone).phone_type?.should be_true
36
- Settings.dphone.formatted_area.should eq ''
37
- Settings.dphone.formatted_subscriber.should eq ''
38
- end
39
-
40
- it 'validates emails with email type' do
41
- Settings.eml(type: 'email')
42
- Settings.get(:eml).email_type?.should be_true
43
- expect { Settings.eml = '1' }.to raise_error
44
- Settings.eml = 'test@example.com'
45
- Settings.eml.should eq 'test@example.com'
46
- end
47
-
48
- it 'processes urls with url type' do
49
- Settings.url(type: 'url')
50
- Settings.get(:url).url_type?.should be_true
51
- Settings.get(:url).color_type?.should be_false
52
- Settings.url = 'test.ru'
53
- Settings.url.should eq 'http://test.ru'
54
- end
55
-
56
- it 'supports color type' do
57
- Settings.col(type: 'color')
58
- Settings.get(:col).color_type?.should be_true
59
- expect { Settings.col = 'test'}.to raise_error
60
- Settings.col = 'ffffff'
61
- Settings.col.should eq 'ffffff'
62
- end
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'Settings advanced usage' do
6
+ it 'support html type' do
7
+ Settings.get(:email, type: 'html', default: 'test@example.com').to_s.should eq 'test@example.com'
8
+ end
9
+
10
+ it 'support integer type' do
11
+ Settings.get(:testint, type: 'integer').value.should eq 0
12
+ Settings.get(:testint, default: 5, type: 'integer').value.should eq 0
13
+ Settings.get(:testint2, default: 5, type: 'integer').value.should eq 5
14
+ Settings.testint2.should eq 5
15
+ end
16
+
17
+ it 'supports yaml type' do
18
+ Settings.set(:data, '[one, two, three]', type: 'yaml')
19
+ Settings.get(:data).raw.should eq '[one, two, three]'
20
+ Settings.data.should eq ['one', 'two', 'three']
21
+ end
22
+
23
+ it 'supports phone type' do
24
+ Settings.set(:tphone, '906 111 11 11', type: 'phone')
25
+ Settings.get(:tphone).val.class.name.should eq 'RussianPhone::Number'
26
+ Settings.tphone.class.name.should eq 'RussianPhone::Number'
27
+ Settings.tphone.should eq '906 111 11 11'
28
+ Settings.get(:tphone).phone_type?.should be_true
29
+ Settings.get(:tphone).val.city.should eq '906'
30
+ Settings.get(:tphone).val.formatted_subscriber.should eq '111-11-11'
31
+ end
32
+
33
+ it 'sets defaults for phone type' do
34
+ Settings.dphone(type: 'phone')
35
+ Settings.get(:dphone).phone_type?.should be_true
36
+ Settings.dphone.formatted_area.should eq ''
37
+ Settings.dphone.formatted_subscriber.should eq ''
38
+ end
39
+
40
+ it 'validates emails with email type' do
41
+ Settings.eml(type: 'email')
42
+ Settings.get(:eml).email_type?.should be_true
43
+ expect { Settings.eml = '1' }.to raise_error
44
+ Settings.eml = 'test@example.com'
45
+ Settings.eml.should eq 'test@example.com'
46
+ end
47
+
48
+ it 'processes urls with url type' do
49
+ Settings.url(type: 'url')
50
+ Settings.get(:url).url_type?.should be_true
51
+ Settings.get(:url).color_type?.should be_false
52
+ Settings.url = 'test.ru'
53
+ Settings.url.should eq 'http://test.ru'
54
+ end
55
+
56
+ it 'supports color type' do
57
+ Settings.col(type: 'color')
58
+ Settings.get(:col).color_type?.should be_true
59
+ expect { Settings.col = 'test'}.to raise_error
60
+ Settings.col = 'ffffff'
61
+ Settings.col.should eq 'ffffff'
62
+ end
63
63
  end
metadata CHANGED
@@ -1,52 +1,46 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_admin_settings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
5
- prerelease:
4
+ version: 0.5.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Gleb Tv
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-03 00:00:00.000000000 Z
11
+ date: 2013-07-20 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: mongoid
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.1'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '3.1'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: bundler
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: mongoid-rspec
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: simplecov
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: database_cleaner
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ~>
124
109
  - !ruby/object:Gem::Version
@@ -126,7 +111,6 @@ dependencies:
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: factory_girl
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ~>
132
116
  - !ruby/object:Gem::Version
@@ -134,7 +118,6 @@ dependencies:
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - ~>
140
123
  - !ruby/object:Gem::Version
@@ -142,7 +125,6 @@ dependencies:
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: safe_yaml
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
129
  - - ~>
148
130
  - !ruby/object:Gem::Version
@@ -150,7 +132,6 @@ dependencies:
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
136
  - - ~>
156
137
  - !ruby/object:Gem::Version
@@ -158,7 +139,6 @@ dependencies:
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: russian_phone
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
143
  - - ~>
164
144
  - !ruby/object:Gem::Version
@@ -166,7 +146,6 @@ dependencies:
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
150
  - - ~>
172
151
  - !ruby/object:Gem::Version
@@ -174,7 +153,6 @@ dependencies:
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: sanitize
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
157
  - - ~>
180
158
  - !ruby/object:Gem::Version
@@ -182,7 +160,6 @@ dependencies:
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
164
  - - ~>
188
165
  - !ruby/object:Gem::Version
@@ -190,7 +167,6 @@ dependencies:
190
167
  - !ruby/object:Gem::Dependency
191
168
  name: validates_email_format_of
192
169
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
170
  requirements:
195
171
  - - ~>
196
172
  - !ruby/object:Gem::Version
@@ -198,7 +174,6 @@ dependencies:
198
174
  type: :development
199
175
  prerelease: false
200
176
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
177
  requirements:
203
178
  - - ~>
204
179
  - !ruby/object:Gem::Version
@@ -206,7 +181,6 @@ dependencies:
206
181
  - !ruby/object:Gem::Dependency
207
182
  name: geocoder
208
183
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
184
  requirements:
211
185
  - - ~>
212
186
  - !ruby/object:Gem::Version
@@ -214,7 +188,6 @@ dependencies:
214
188
  type: :development
215
189
  prerelease: false
216
190
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
191
  requirements:
219
192
  - - ~>
220
193
  - !ruby/object:Gem::Version
@@ -222,7 +195,6 @@ dependencies:
222
195
  - !ruby/object:Gem::Dependency
223
196
  name: addressable
224
197
  requirement: !ruby/object:Gem::Requirement
225
- none: false
226
198
  requirements:
227
199
  - - ~>
228
200
  - !ruby/object:Gem::Version
@@ -230,7 +202,6 @@ dependencies:
230
202
  type: :development
231
203
  prerelease: false
232
204
  version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
205
  requirements:
235
206
  - - ~>
236
207
  - !ruby/object:Gem::Version
@@ -282,33 +253,26 @@ files:
282
253
  homepage: https://github.com/rs-pro/rails_admin_settings
283
254
  licenses:
284
255
  - MIT
256
+ metadata: {}
285
257
  post_install_message:
286
258
  rdoc_options: []
287
259
  require_paths:
288
260
  - lib
289
261
  required_ruby_version: !ruby/object:Gem::Requirement
290
- none: false
291
262
  requirements:
292
- - - ! '>='
263
+ - - '>='
293
264
  - !ruby/object:Gem::Version
294
265
  version: '0'
295
- segments:
296
- - 0
297
- hash: 1108480110300401227
298
266
  required_rubygems_version: !ruby/object:Gem::Requirement
299
- none: false
300
267
  requirements:
301
- - - ! '>='
268
+ - - '>='
302
269
  - !ruby/object:Gem::Version
303
270
  version: '0'
304
- segments:
305
- - 0
306
- hash: 1108480110300401227
307
271
  requirements: []
308
272
  rubyforge_project:
309
- rubygems_version: 1.8.25
273
+ rubygems_version: 2.0.3
310
274
  signing_key:
311
- specification_version: 3
275
+ specification_version: 4
312
276
  summary: Setting for Rails app with mongoid and RailsAdmin
313
277
  test_files:
314
278
  - spec/advanced_usage_spec.rb