attribute_normalizer 1.2.0.b → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzcwZmYzMjkxMmFmMTk1MzJhNDkzMjVlNDllNGUxMWNhZDM2Zjk1Yg==
4
+ ZGNlMjVjZmYwYTMwMTA4YTQ5MWNkYzU4NTgwNTRjYzE0MTA1ZGY1ZQ==
5
5
  data.tar.gz: !binary |-
6
- OGU0YjVlZjJjMGNkODk5NTE3MDUwMDU4ODllZjc2MDg2NzNlYzQyMQ==
7
- !binary "U0hBNTEy":
6
+ NzVkMGU3YWVjYjQwOTJjOGFjZDk5Zjg5NDAwNmE5NTcyMTU5M2FjOA==
7
+ SHA512:
8
8
  metadata.gz: !binary |-
9
- ODQ4OWY1YjdkZmE1YjFlNzM2MTEwYjY5ZWY2N2QzYmYzYTI4ZjI1ZjNhNTg0
10
- NjhmN2QwNDcwMmMxNDY3YjNkNmUzMDM5ZTgyODg1ZWE1YzE1YjlkYWZlMzYw
11
- NzJlZWM5ZDZkZWRkNWJhMzljZjExMzY4ZDIwNjM3ZGQwMTQxNTY=
9
+ NTk5YjhiMTA3YWJlZTg3NmQwNDY5ZjA1NTUzYjU5MWY1ODAyNGNkNjQ3ZjVi
10
+ N2QzYzVjZmI1NDU2NzljMWEyOTJhZDk0ZmM2MGRhMjA4OTcwMTQwODk3MTFk
11
+ YmExMjg3ZGZkNjIyZTljZGExYTAwMWRjM2E4MmJkZmM0MDE3ODU=
12
12
  data.tar.gz: !binary |-
13
- MGRjYmZkMzY3MjZkMjk0ZTg0YjE5MTE4M2FjZTNlODA5NjMxNjYwMjFiM2E2
14
- NjY4NGNiMjQ2YmM4ZTc2MGU2OTA5NGU5YzhjZWY2NGUyNzFmMDg4Y2JhYThh
15
- YWJlOWNjOWExYTlkYTkyOWRiNWVkMDdmMDUzZjM3NjZhODlkNDc=
13
+ Y2VhNzFiZjYxMTg4MTk2Y2VkNTU2OGNiNTU0YjA1MmYyMTA4MTc0MzRjYTkw
14
+ NzM5N2ZiNmQ3ZWEwMWJhZGExM2U4MDM1NWUzZmQ2ZmEwOGYxODQ2MWM1MDcz
15
+ OWQyNzQ2YjY2ZDZhZmRkNTQ2Y2YzYjJlZjJjZDAyOTQyYmM0Yjc=
@@ -27,7 +27,7 @@ h2. Change History
27
27
  ** Added out of the box support for CassandraObjects
28
28
  ** Included RSpec matcher _normalizer_attribute_
29
29
  ** Added the ability to define global normalizers
30
- ** *Strings are no longer get 'strip' called on them before getting passed on to your defined normalization blocks*
30
+ ** *Strings no longer get 'strip' called on them before getting passed on to your defined normalization blocks*
31
31
 
32
32
  h2. Supported ORMs
33
33
 
@@ -109,7 +109,7 @@ AttributeNormalizer.configure do |config|
109
109
  # the default normalizers for each attribute (e.g. config.default_normalizers)
110
110
  # config.default_attributes = :name, :title
111
111
 
112
- # Also, You can add an specific attribute to default_attributes using one or more normalizers:
112
+ # Also, You can add a specific attribute to default_attributes using one or more normalizers:
113
113
  # config.add_default_attribute :name, :with => :truncate
114
114
  end
115
115
  </code></pre>
@@ -133,7 +133,7 @@ The _normalize_attributes_ method is eager loaded into your ORM. _normalize_att
133
133
  value.is_a?(String) ? value.titleize.strip : value
134
134
  end
135
135
 
136
- # Or use a combination of normalizers plus a inline block.
136
+ # Or use a combination of normalizers plus an inline block.
137
137
  # the normalizers in the :with option will each be evalulated
138
138
  # in order and the result will be given to the block.
139
139
  # You could also use option :before in place of :with
@@ -141,7 +141,7 @@ The _normalize_attributes_ method is eager loaded into your ORM. _normalize_att
141
141
  value.present? && value.is_a?(String) ? value.downcase.gsub(/\s+/, '-') : value
142
142
  end
143
143
 
144
- # Use buildin normalizers before and after the evaluation of your inline
144
+ # Use builtin normalizers before and after the evaluation of your inline
145
145
  # block
146
146
  normalize_attribute :limited_slug, :before => [ :strip, :blank ], :after => [ { :truncate => { :length => 11, :omission => '' } } ] do |value|
147
147
  value.present? && value.is_a?(String) ? value.downcase.gsub(/\s+/, '-') : value
@@ -164,7 +164,7 @@ book.limited_slug # => 'pick-up-chi'
164
164
 
165
165
  h2. Test Helpers
166
166
 
167
- p. If you are running RSpec there is matcher available for use. Usage can been seen above. Include it as follows.
167
+ p. If you are running RSpec there is a matcher available for use. Usage can been seen above. Include it as follows.
168
168
 
169
169
  h3. Rails 2
170
170
 
@@ -3,6 +3,7 @@ require 'attribute_normalizer/normalizers/phone_normalizer'
3
3
  require 'attribute_normalizer/normalizers/strip_normalizer'
4
4
  require 'attribute_normalizer/normalizers/squish_normalizer'
5
5
  require 'attribute_normalizer/normalizers/whitespace_normalizer'
6
+ require 'attribute_normalizer/normalizers/boolean_normalizer'
6
7
 
7
8
  module AttributeNormalizer
8
9
 
@@ -35,7 +36,8 @@ module AttributeNormalizer
35
36
  :phone => AttributeNormalizer::Normalizers::PhoneNormalizer,
36
37
  :squish => AttributeNormalizer::Normalizers::SquishNormalizer,
37
38
  :strip => AttributeNormalizer::Normalizers::StripNormalizer,
38
- :whitespace => AttributeNormalizer::Normalizers::WhitespaceNormalizer
39
+ :whitespace => AttributeNormalizer::Normalizers::WhitespaceNormalizer,
40
+ :boolean => AttributeNormalizer::Normalizers::BooleanNormalizer
39
41
  }
40
42
 
41
43
  @default_normalizers = [ :strip, :blank ]
@@ -0,0 +1,18 @@
1
+ # Extracted from ActiveRecord::ConnectionAdapters::Column
2
+ require 'set'
3
+
4
+ module AttributeNormalizer
5
+ module Normalizers
6
+ module BooleanNormalizer
7
+ TRUE_VALUES = [true, 1, '1', 't', 'T', 'true', 'TRUE', 'on', 'ON'].to_set
8
+
9
+ def self.normalize(value, options = {})
10
+ if value.is_a?(String) && value.blank?
11
+ nil
12
+ else
13
+ TRUE_VALUES.include?(value)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -2,7 +2,7 @@ module AttributeNormalizer
2
2
  module Normalizers
3
3
  module WhitespaceNormalizer
4
4
  def self.normalize(value, options = {})
5
- value.is_a?(String) ? value.gsub(/[^\S\n]+/, ' ').gsub(/\s+\n$/, "\n").strip : value
5
+ value.is_a?(String) ? value.gsub(/[^\S\n]+/, ' ').gsub(/\s?\n\s?/, "\n").strip : value
6
6
  end
7
7
  end
8
8
  end
@@ -21,9 +21,10 @@ module AttributeNormalizer
21
21
  "#{@attribute} did not normalize as expected! \"#{@subject.send(@attribute)}\" != #{@to.nil? ? 'nil' : "\"#{@to}\""}"
22
22
  end
23
23
 
24
- def negative_failure_message
24
+ def failure_message_when_negated
25
25
  "expected #{@attribute} to not be normalized from #{@from.nil? ? 'nil' : "\"#{@from}\""} to #{@to.nil? ? 'nil' : "\"#{@to}\""}"
26
26
  end
27
+ alias negative_failure_message failure_message_when_negated
27
28
 
28
29
  def from(value)
29
30
  @from = value
@@ -5,7 +5,7 @@ module AttributeNormalizer
5
5
  MAJOR = 1
6
6
  MINOR = 2
7
7
  PATCH = 0
8
- BUILD = 'b'
8
+ BUILD = nil
9
9
 
10
10
  def self.to_s
11
11
  [ MAJOR, MINOR, PATCH, BUILD ].compact.join('.')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attribute_normalizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.b
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Deering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-30 00:00:00.000000000 Z
11
+ date: 2014-07-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ''
14
14
  email:
@@ -17,16 +17,17 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - README.textile
21
+ - lib/attribute_normalizer.rb
20
22
  - lib/attribute_normalizer/model_inclusions.rb
21
- - lib/attribute_normalizer/rspec_matcher.rb
22
- - lib/attribute_normalizer/normalizers/whitespace_normalizer.rb
23
- - lib/attribute_normalizer/normalizers/strip_normalizer.rb
24
- - lib/attribute_normalizer/normalizers/phone_normalizer.rb
25
23
  - lib/attribute_normalizer/normalizers/blank_normalizer.rb
24
+ - lib/attribute_normalizer/normalizers/boolean_normalizer.rb
25
+ - lib/attribute_normalizer/normalizers/phone_normalizer.rb
26
26
  - lib/attribute_normalizer/normalizers/squish_normalizer.rb
27
+ - lib/attribute_normalizer/normalizers/strip_normalizer.rb
28
+ - lib/attribute_normalizer/normalizers/whitespace_normalizer.rb
29
+ - lib/attribute_normalizer/rspec_matcher.rb
27
30
  - lib/attribute_normalizer/version.rb
28
- - lib/attribute_normalizer.rb
29
- - README.textile
30
31
  homepage: https://github.com/mdeering/attribute_normalizer
31
32
  licenses: []
32
33
  metadata: {}
@@ -41,12 +42,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
41
42
  version: '0'
42
43
  required_rubygems_version: !ruby/object:Gem::Requirement
43
44
  requirements:
44
- - - ! '>'
45
+ - - ! '>='
45
46
  - !ruby/object:Gem::Version
46
- version: 1.3.1
47
+ version: '0'
47
48
  requirements: []
48
49
  rubyforge_project:
49
- rubygems_version: 2.0.5
50
+ rubygems_version: 2.2.2
50
51
  signing_key:
51
52
  specification_version: 4
52
53
  summary: ''