phony_rails 0.14.0 → 0.14.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ebc2d2e0d7c8552d406ca7527590181a8d7f1437
4
- data.tar.gz: 6e0ca4a8dd0e4447bd6d31469de69cc3e0781d3d
3
+ metadata.gz: a94ea35203b1527927eaf9a83b224ae5e587edf9
4
+ data.tar.gz: 8bc0db14a7ad0ab389f6d709d73fd562f9473c79
5
5
  SHA512:
6
- metadata.gz: 0f615e9274fca0cadab38bcbac8e58172c4102450d2f79e285c34dbcd88a2cf6c4c6ba476be24cfbb8e866113819daceb96f93d1e9c800e1c91656eceaf1de80
7
- data.tar.gz: 5c6d09cb08448d47462afce4f448f6e3e15e46bd9c46f4016c4e961802cb231aff5ee4a2ecd9a49211b1d1caaba347a364cb5262ddfe9206a3573e88f2b4b953
6
+ metadata.gz: 029272fcd410ec0a990ca107d47db48bf910dc4cfc8260e818e6810c3826dd74a7df347a6cef50f258d746b26fe49cc353684c0c80bcbac7209042dd4cba7636
7
+ data.tar.gz: cc4a133e257531605b669ff9137e7fc35147fc86b488c8d475fb71d3e4cebb18be6d0af12ffa8fc98b2870a0d3b3e668836d67a04474afcf0bfdb323e42e44ad
@@ -1,5 +1,19 @@
1
1
  # Change Log
2
2
 
3
+ ## [v0.14.1](https://github.com/joost/phony_rails/tree/v0.14.1) (2016-05-08)
4
+
5
+ [Full Changelog](https://github.com/joost/phony_rails/compare/v0.14.0...v0.14.1)
6
+
7
+ **Closed issues:**
8
+
9
+ - Pull request \#139 \(released in 0.14.0\) breaks message: :improbable\_phone option [\#140](https://github.com/joost/phony_rails/issues/140)
10
+
11
+ **Merged pull requests:**
12
+
13
+ - Fixed a bug that prevents a normalized attribute from being set to nil [\#142](https://github.com/joost/phony_rails/pull/142) ([kylerippey](https://github.com/kylerippey))
14
+
15
+ - Read message value directly from options [\#141](https://github.com/joost/phony_rails/pull/141) ([monfresh](https://github.com/monfresh))
16
+
3
17
  ## [v0.14.0](https://github.com/joost/phony_rails/tree/v0.14.0) (2016-04-21)
4
18
 
5
19
  [Full Changelog](https://github.com/joost/phony_rails/compare/v0.13.0...v0.14.0)
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- phony_rails (0.14.0)
4
+ phony_rails (0.14.1)
5
5
  activesupport (>= 3.0)
6
6
  phony (~> 2.12)
7
7
 
@@ -23,7 +23,7 @@ GEM
23
23
  tzinfo (~> 1.1)
24
24
  arel (6.0.3)
25
25
  ast (2.2.0)
26
- bson (4.0.4)
26
+ bson (4.1.0)
27
27
  builder (3.2.2)
28
28
  coderay (1.1.1)
29
29
  coveralls (0.8.13)
@@ -50,7 +50,7 @@ GEM
50
50
  guard (~> 2.2)
51
51
  guard-compat (~> 1.1)
52
52
  guard-compat (1.2.1)
53
- guard-rspec (4.6.4)
53
+ guard-rspec (4.6.5)
54
54
  guard (~> 2.1)
55
55
  guard-compat (~> 1.1)
56
56
  rspec (>= 2.99.0, < 4.0)
@@ -64,7 +64,7 @@ GEM
64
64
  minitest (5.8.4)
65
65
  mongo (2.2.4)
66
66
  bson (~> 4.0)
67
- mongoid (5.1.1)
67
+ mongoid (5.1.3)
68
68
  activemodel (~> 4.0)
69
69
  mongo (~> 2.1)
70
70
  origin (~> 2.2)
@@ -74,16 +74,16 @@ GEM
74
74
  nenv (~> 0.1)
75
75
  shellany (~> 0.0)
76
76
  origin (2.2.0)
77
- parser (2.3.0.6)
77
+ parser (2.3.0.7)
78
78
  ast (~> 2.2)
79
- phony (2.15.17)
79
+ phony (2.15.21)
80
80
  powerpack (0.1.1)
81
81
  pry (0.10.3)
82
82
  coderay (~> 1.1.0)
83
83
  method_source (~> 0.8.1)
84
84
  slop (~> 3.4)
85
85
  rainbow (2.1.0)
86
- rake (11.1.0)
86
+ rake (11.1.2)
87
87
  rb-fsevent (0.9.7)
88
88
  rb-inotify (0.9.7)
89
89
  ffi (>= 0.5.0)
@@ -100,8 +100,8 @@ GEM
100
100
  diff-lcs (>= 1.2.0, < 2.0)
101
101
  rspec-support (~> 3.4.0)
102
102
  rspec-support (3.4.1)
103
- rubocop (0.38.0)
104
- parser (>= 2.3.0.6, < 3.0)
103
+ rubocop (0.39.0)
104
+ parser (>= 2.3.0.7, < 3.0)
105
105
  powerpack (~> 0.1)
106
106
  rainbow (>= 1.99.1, < 3.0)
107
107
  ruby-progressbar (~> 1.7)
@@ -122,7 +122,7 @@ GEM
122
122
  tins (1.6.0)
123
123
  tzinfo (1.2.2)
124
124
  thread_safe (~> 0.1)
125
- unicode-display_width (1.0.2)
125
+ unicode-display_width (1.0.3)
126
126
 
127
127
  PLATFORMS
128
128
  ruby
@@ -144,7 +144,7 @@ module PhonyRails
144
144
  attribute_name = options[:as] || attribute
145
145
  raise("No attribute #{attribute_name} found on #{self.class.name} (PhonyRails)") unless self.class.attribute_method?(attribute_name)
146
146
  new_value = PhonyRails.normalize_number(send(attribute), options)
147
- send("#{attribute_name}=", new_value) if new_value
147
+ send("#{attribute_name}=", new_value) if new_value || attribute_name != attribute
148
148
  end
149
149
  end
150
150
 
@@ -1,3 +1,3 @@
1
1
  module PhonyRails
2
- VERSION = '0.14.0'.freeze
2
+ VERSION = '0.14.1'.freeze
3
3
  end
@@ -15,7 +15,7 @@ class PhonyPlausibleValidator < ActiveModel::EachValidator
15
15
  private
16
16
 
17
17
  def error_message
18
- options_value(:message) || :improbable_phone
18
+ options[:message] || :improbable_phone
19
19
  end
20
20
 
21
21
  def country_number
@@ -43,11 +43,11 @@ class PhonyPlausibleValidator < ActiveModel::EachValidator
43
43
  end
44
44
 
45
45
  def options_value(option)
46
- if options[option].is_a?(Symbol)
47
- @record.send(options[option])
48
- else
49
- options[option]
50
- end
46
+ option_value = options[option]
47
+
48
+ return option_value unless option_value.is_a?(Symbol)
49
+
50
+ @record.send(option_value)
51
51
  end
52
52
  end
53
53
 
@@ -634,6 +634,13 @@ describe PhonyRails do
634
634
  expect(model.phone_number).to eql('+31101234123')
635
635
  end
636
636
 
637
+ it 'should nilify attribute when it is set to nil' do
638
+ model = model_klass.new(phone_number: '+31-(0)10-1234123')
639
+ model.phone_number = nil
640
+ expect(model).to be_valid
641
+ expect(model.phone_number).to eql(nil)
642
+ end
643
+
637
644
  it 'should set a normalized version of an attribute using :as option' do
638
645
  model_klass.phony_normalize :phone_number, as: :phone_number_as_normalized
639
646
  model = model_klass.new(phone_number: '+31-(0)10-1234123')
@@ -641,6 +648,14 @@ describe PhonyRails do
641
648
  expect(model.phone_number_as_normalized).to eql('+31101234123')
642
649
  end
643
650
 
651
+ it 'should nilify normalized version of an attribute when it is set to nil using :as option ' do
652
+ model_klass.phony_normalize :phone_number, as: :phone_number_as_normalized
653
+ model = model_klass.new(phone_number: '+31-(0)10-1234123', phone_number_as_normalized: '+31101234123')
654
+ model.phone_number = nil
655
+ expect(model).to be_valid
656
+ expect(model.phone_number_as_normalized).to eq(nil)
657
+ end
658
+
644
659
  it 'should not add a + using :add_plus option' do
645
660
  model_klass.phony_normalize :phone_number, add_plus: false
646
661
  model = model_klass.new(phone_number: '+31-(0)10-1234123')
@@ -143,6 +143,28 @@ class SymbolizableHelpfulHome < ActiveRecord::Base
143
143
  attr_accessor :phone_number, :phone_number_country_code
144
144
  validates_plausible_phone :phone_number, country_code: :phone_number_country_code
145
145
  end
146
+
147
+ #--------------------
148
+ class NoModelMethod < HelpfulHome
149
+ attr_accessor :phone_number
150
+ validates_plausible_phone :phone_number, country_code: :nonexistent_method
151
+ end
152
+
153
+ #--------------------
154
+ class MessageOptionUndefinedInModel < HelpfulHome
155
+ attr_accessor :phone_number
156
+ validates_plausible_phone :phone_number, message: :email
157
+ end
158
+
159
+ #--------------------
160
+ class MessageOptionSameAsModelMethod < HelpfulHome
161
+ attr_accessor :phone_number
162
+ validates_plausible_phone :phone_number, message: :email
163
+
164
+ def email
165
+ 'user@example.com'
166
+ end
167
+ end
146
168
  #-----------------------------------------------------------------------------------------------------------------------
147
169
  # Tests
148
170
  #-----------------------------------------------------------------------------------------------------------------------
@@ -544,5 +566,37 @@ describe ActiveModel::Validations::HelperMethods do
544
566
  expect(@home.errors.messages).to include(phone_number: ['is an invalid number'])
545
567
  end
546
568
  end
569
+
570
+ #--------------------
571
+ context 'when a nonexistent method is passed as a symbol to an option other than message' do
572
+ it 'raises NoMethodError' do
573
+ @home = NoModelMethod.new
574
+ @home.phone_number = FRENCH_NUMBER_WITH_COUNTRY_CODE
575
+
576
+ expect { @home.save }.to raise_error(NoMethodError)
577
+ end
578
+ end
579
+
580
+ #--------------------
581
+ context 'when a nonexistent method is passed as a symbol to the message option' do
582
+ it 'does not raise an error' do
583
+ @home = MessageOptionUndefinedInModel.new
584
+ @home.phone_number = INVALID_NUMBER
585
+
586
+ expect { @home.save }.to_not raise_error
587
+ end
588
+ end
589
+
590
+ #--------------------
591
+ context 'when an existing Model method is passed as a symbol to the message option' do
592
+ it 'does not use the Model method' do
593
+ @home = MessageOptionSameAsModelMethod.new
594
+ @home.phone_number = INVALID_NUMBER
595
+
596
+ expect(@home).to_not receive(:email)
597
+
598
+ @home.save
599
+ end
600
+ end
547
601
  end
548
602
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phony_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joost Hietbrink
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-21 00:00:00.000000000 Z
11
+ date: 2016-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phony