rails_admin_settings 0.6.3 → 0.6.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 23f4a6d638790edb61cd1358853722b1eb789075
4
- data.tar.gz: 4b8a2fafd0001aa1650d717928881ea9a42925af
3
+ metadata.gz: 5ea98edd6e8bad6c86e500d5dffd7fb55588fcd4
4
+ data.tar.gz: a5b9d884b4d4b5f7deeac4f3e46dc135e521721e
5
5
  SHA512:
6
- metadata.gz: 9588e91ced7869531182fe9d538e2503e72c8caa04cc9840a074bef36459d4e3affb2beca44b16329d4ebb534abb870ef15ea6264db3e0e14645658605f0fd0d
7
- data.tar.gz: 155e36af8661493120d3ed439f4c35129733cf69faaf7017832395bb5d7f4b25605094d2323837753b96de06e06177514a89a77cfe8d97e59d352cc784da5a5f
6
+ metadata.gz: 6e4348c966b49d6252543f12d00090bafcf302a98b8a456aa4776c6dc401aed384dcc93b9f5be4a47c67a01d18b0eeb22597142b6b7d54731ab2dffa44c3548c
7
+ data.tar.gz: 378f2c80f910a6a73f25a4e70aebee49a4a812a5f315dfd20cb68003c8cd03ed1960c4aff8c82006b8b4bc22ae2849d1cad83ad2e8ae404b394468a5a8f1a148
data/.travis.yml CHANGED
@@ -8,7 +8,6 @@ rvm:
8
8
  - 1.9.3
9
9
  - 2.0.0
10
10
  - 2.1.0
11
- - jruby-19mode
12
11
  - jruby-20mode
13
12
 
14
13
  env:
@@ -16,6 +15,5 @@ env:
16
15
  - "UPLOADS=carrierwave"
17
16
 
18
17
  gemfile:
19
- - Gemfile
20
18
  - gemfiles/mongoid-3.1.gemfile
21
19
  - gemfiles/mongoid-4.0.gemfile
@@ -2,7 +2,7 @@
2
2
  = form.text_field :raw, :value => field.value
3
3
  - if @object.type == 'color'
4
4
  = form.text_field :raw, :value => field.value, 'data-color' => true, style: "background-color: ##{field.value}"
5
- - elsif @object.type == 'text' || @object.type == 'yaml'
5
+ - elsif %w(text yaml phones).include?( @object.type )
6
6
  = form.text_area :raw, :value => field.value, :rows => 10, :cols => 80
7
7
  - elsif @object.type == 'html'
8
8
  - if form.respond_to?(:cktext_area)
@@ -4,6 +4,7 @@ en:
4
4
  label: 'Settings'
5
5
  no_ckeditor_detected: CKEditor not found — showing as text input
6
6
  phone_invalid: Incorrect phone
7
+ phones_invalid: "Incorrect phone: %{phones}"
7
8
  email_invalid: Incorrect email
8
9
  yaml_invalid: Incorrect YAML
9
10
  color_invalid: Incorrect color
@@ -4,6 +4,7 @@ ru:
4
4
  label: 'Настройки'
5
5
  no_ckeditor_detected: CKEditor не обнаружен — отображаю настройку как текстовое поле
6
6
  phone_invalid: Неверный телефонный номер
7
+ phones_invalid: "Неверный телефонный номер: %{phones}"
7
8
  email_invalid: Неверный email
8
9
  yaml_invalid: Неверный синтаксис YAML
9
10
  color_invalid: Неверный цвет
@@ -7,7 +7,7 @@ module RailsAdminSettings
7
7
  end
8
8
 
9
9
  def text_type?
10
- (RailsAdminSettings.types - ['phone', 'integer', 'yaml']).include? type
10
+ (RailsAdminSettings.types - ['phone', 'phones', 'integer', 'yaml']).include? type
11
11
  end
12
12
 
13
13
  def upload_type?
@@ -71,11 +71,21 @@ module RailsAdminSettings
71
71
  require_russian_phone do
72
72
  RussianPhone::Number.new('')
73
73
  end
74
+ elsif phones_type?
75
+ []
74
76
  else
75
77
  nil
76
78
  end
77
79
  end
78
80
 
81
+ def default_serializable_value
82
+ if phones_type?
83
+ ''
84
+ else
85
+ default_value
86
+ end
87
+ end
88
+
79
89
  def process_text
80
90
  text = raw.dup
81
91
  text.gsub!('{{year}}', Time.now.strftime('%Y'))
@@ -96,6 +106,12 @@ module RailsAdminSettings
96
106
  end
97
107
  end
98
108
 
109
+ def load_phones
110
+ require_russian_phone do
111
+ raw.gsub("\r", '').split("\n").map{|i| RussianPhone::Number.new(i)}
112
+ end
113
+ end
114
+
99
115
  def load_yaml
100
116
  require_safe_yaml do
101
117
  YAML.safe_load(raw)
@@ -111,6 +127,8 @@ module RailsAdminSettings
111
127
  load_yaml
112
128
  elsif phone_type?
113
129
  load_phone
130
+ elsif phones_type?
131
+ load_phones
114
132
  elsif file_type?
115
133
  file.url
116
134
  else
@@ -7,6 +7,7 @@ module RailsAdminSettings
7
7
  'sanitized',
8
8
  'yaml',
9
9
  'phone',
10
+ 'phones',
10
11
  'email',
11
12
  'address',
12
13
  'file',
@@ -2,7 +2,7 @@ module RailsAdminSettings
2
2
  module Validation
3
3
  def self.included(base)
4
4
  base.before_validation do
5
- self.raw = default_value if raw.blank?
5
+ self.raw = default_serializable_value if raw.blank?
6
6
  end
7
7
  base.before_validation :sanitize_value, if: :sanitized_type?
8
8
  base.validates_uniqueness_of :key, scope: :ns
@@ -15,6 +15,18 @@ module RailsAdminSettings
15
15
  end
16
16
  end
17
17
 
18
+ base.validate if: :phones_type? do
19
+ require_russian_phone do
20
+ unless raw.blank?
21
+ invalid_phones = raw.gsub("\r", '').split("\n").inject([]) do |memo, value|
22
+ memo << value unless RussianPhone::Number.new(value).valid?
23
+ memo
24
+ end
25
+ errors.add(:raw, I18n.t('admin.settings.phones_invalid', phones: invalid_phones * ', ')) unless invalid_phones.empty?
26
+ end
27
+ end
28
+ end
29
+
18
30
  base.validate if: :email_type? do
19
31
  require_validates_email_format_of do
20
32
  errors.add(:raw, I18n.t('admin.settings.email_invalid')) unless raw.blank? || ValidatesEmailFormatOf.validate_email_format(raw).nil?
@@ -1,3 +1,3 @@
1
1
  module RailsAdminSettings
2
- VERSION = "0.6.3"
2
+ VERSION = "0.6.4"
3
3
  end
data/spec/types_spec.rb CHANGED
@@ -30,6 +30,19 @@ describe 'Settings types' do
30
30
  Settings.get(:tphone).val.formatted_subscriber.should eq '111-11-11'
31
31
  end
32
32
 
33
+ it 'supports phones type' do
34
+ Settings.set(:tphone, ['906 111 11 11', '907 111 11 11'] * "\n", type: 'phones')
35
+ Settings.get(:tphone).val.class.name.should eq 'Array'
36
+ Settings.tphone.class.name.should eq 'Array'
37
+ Settings.get(:tphone).val.first.class.name.should eq 'RussianPhone::Number'
38
+ Settings.tphone.first.class.name.should eq 'RussianPhone::Number'
39
+ Settings.tphone.first.should eq '906 111 11 11'
40
+ Settings.get(:tphone).phones_type?.should be_true
41
+ Settings.get(:tphone).val.first.city.should eq '906'
42
+ Settings.get(:tphone).val.last.city.should eq '907'
43
+ Settings.get(:tphone).val.first.formatted_subscriber.should eq '111-11-11'
44
+ end
45
+
33
46
  it 'defaults for phone' do
34
47
  Settings.dphone(type: 'phone')
35
48
  Settings.get(:dphone).phone_type?.should be_true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_admin_settings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gleb Tv
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-10 00:00:00.000000000 Z
11
+ date: 2014-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mongoid
@@ -271,7 +271,6 @@ files:
271
271
  - config/locales/ru.yml
272
272
  - gemfiles/mongoid-3.1.gemfile
273
273
  - gemfiles/mongoid-4.0.gemfile
274
- - gemfiles/mongoid-4.0.gemfile.lock
275
274
  - lib/rails_admin_settings.rb
276
275
  - lib/rails_admin_settings/dumper.rb
277
276
  - lib/rails_admin_settings/engine.rb
@@ -1,130 +0,0 @@
1
- GIT
2
- remote: git://github.com/mongoid/mongoid.git
3
- revision: 151e2a937f08a3f2a45082bf0d84e4ba2ddaf2be
4
- branch: master
5
- specs:
6
- mongoid (4.0.0.alpha2)
7
- activemodel (>= 4.0.0)
8
- moped (~> 2.0.beta5)
9
- origin (~> 2.1)
10
- tzinfo (>= 0.3.37)
11
-
12
- PATH
13
- remote: /data/rails_admin_settings
14
- specs:
15
- rails_admin_settings (0.6.1)
16
- mongoid (>= 3.1)
17
-
18
- GEM
19
- remote: https://rubygems.org/
20
- specs:
21
- activemodel (4.0.2)
22
- activesupport (= 4.0.2)
23
- builder (~> 3.1.0)
24
- activesupport (4.0.2)
25
- i18n (~> 0.6, >= 0.6.4)
26
- minitest (~> 4.2)
27
- multi_json (~> 1.3)
28
- thread_safe (~> 0.1)
29
- tzinfo (~> 0.3.37)
30
- addressable (2.3.5)
31
- atomic (1.1.14)
32
- bson (2.1.0)
33
- builder (3.1.4)
34
- carrierwave (0.9.0)
35
- activemodel (>= 3.2.0)
36
- activesupport (>= 3.2.0)
37
- json (>= 1.7)
38
- climate_control (0.0.3)
39
- activesupport (>= 3.0)
40
- cocaine (0.5.3)
41
- climate_control (>= 0.0.3, < 1.0)
42
- coderay (1.1.0)
43
- connection_pool (1.2.0)
44
- database_cleaner (1.2.0)
45
- diff-lcs (1.2.5)
46
- docile (1.1.1)
47
- factory_girl (4.3.0)
48
- activesupport (>= 3.0.0)
49
- geocoder (1.1.9)
50
- glebtv-carrierwave-mongoid (0.6.5)
51
- carrierwave (>= 0.8.0, < 0.10.0)
52
- mongoid (>= 3.0, < 5.0)
53
- mongoid (>= 3.0, < 5.0)
54
- glebtv-mongoid-paperclip (0.1.0)
55
- paperclip (>= 2.3.6)
56
- i18n (0.6.9)
57
- json (1.8.1)
58
- method_source (0.8.2)
59
- mime-types (2.0)
60
- mini_portile (0.5.2)
61
- minitest (4.7.5)
62
- mongoid-rspec (1.10.0)
63
- mongoid (>= 3.0.1)
64
- rake
65
- rspec (>= 2.14)
66
- moped (2.0.0.beta5)
67
- bson (~> 2.1)
68
- connection_pool (~> 1.2)
69
- optionable (~> 0.2.0)
70
- multi_json (1.8.4)
71
- nokogiri (1.6.1)
72
- mini_portile (~> 0.5.0)
73
- optionable (0.2.0)
74
- origin (2.1.0)
75
- paperclip (3.5.2)
76
- activemodel (>= 3.0.0)
77
- activesupport (>= 3.0.0)
78
- cocaine (~> 0.5.3)
79
- mime-types
80
- pry (0.9.12.4)
81
- coderay (~> 1.0)
82
- method_source (~> 0.8)
83
- slop (~> 3.4)
84
- rake (10.1.1)
85
- rspec (2.14.1)
86
- rspec-core (~> 2.14.0)
87
- rspec-expectations (~> 2.14.0)
88
- rspec-mocks (~> 2.14.0)
89
- rspec-core (2.14.7)
90
- rspec-expectations (2.14.4)
91
- diff-lcs (>= 1.1.3, < 2.0)
92
- rspec-mocks (2.14.4)
93
- russian_phone (0.3.5)
94
- mongoid (>= 3.0.0)
95
- safe_yaml (1.0.1)
96
- sanitize (2.0.6)
97
- nokogiri (>= 1.4.4)
98
- simplecov (0.8.2)
99
- docile (~> 1.1.0)
100
- multi_json
101
- simplecov-html (~> 0.8.0)
102
- simplecov-html (0.8.0)
103
- slop (3.4.7)
104
- thread_safe (0.1.3)
105
- atomic
106
- tzinfo (0.3.38)
107
- validates_email_format_of (1.5.3)
108
-
109
- PLATFORMS
110
- ruby
111
-
112
- DEPENDENCIES
113
- addressable (~> 2.3.3)
114
- bundler
115
- database_cleaner (~> 1.2.0)
116
- factory_girl (~> 4.3.0)
117
- geocoder (~> 1.1.6)
118
- glebtv-carrierwave-mongoid
119
- glebtv-mongoid-paperclip
120
- mongoid!
121
- mongoid-rspec (~> 1.10.0)
122
- pry
123
- rails_admin_settings!
124
- rake (~> 10.1.1)
125
- rspec (~> 2.14.1)
126
- russian_phone (~> 0.3.2)
127
- safe_yaml (~> 1.0.0)
128
- sanitize (~> 2.0.3)
129
- simplecov (~> 0.8.2)
130
- validates_email_format_of (~> 1.5.3)