normalizy 1.4.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +65 -24
  3. data/README.md +33 -16
  4. data/lib/normalizy/config.rb +2 -1
  5. data/lib/normalizy/filters/date.rb +2 -4
  6. data/lib/normalizy/filters/money.rb +2 -2
  7. data/lib/normalizy/filters/percent.rb +2 -2
  8. data/lib/normalizy/filters/slug.rb +1 -1
  9. data/lib/normalizy/filters/strip.rb +1 -1
  10. data/lib/normalizy/filters/truncate.rb +16 -0
  11. data/lib/normalizy/version.rb +1 -1
  12. metadata +31 -96
  13. data/spec/normalizy/config/add_spec.rb +0 -21
  14. data/spec/normalizy/config/alias_spec.rb +0 -29
  15. data/spec/normalizy/config/default_filters_spec.rb +0 -19
  16. data/spec/normalizy/config/initialize_spec.rb +0 -16
  17. data/spec/normalizy/config/normalizy_aliases_spec.rb +0 -9
  18. data/spec/normalizy/extensions/filters/date_spec.rb +0 -23
  19. data/spec/normalizy/extensions/filters/money_spec.rb +0 -38
  20. data/spec/normalizy/extensions/filters/number_spec.rb +0 -9
  21. data/spec/normalizy/extensions/filters/percent_spec.rb +0 -30
  22. data/spec/normalizy/extensions/filters/slug_spec.rb +0 -14
  23. data/spec/normalizy/extensions/filters/strip_spec.rb +0 -21
  24. data/spec/normalizy/extensions/model_spec.rb +0 -107
  25. data/spec/normalizy/extensions/normalizy_rules_spec.rb +0 -198
  26. data/spec/normalizy/filters/date_spec.rb +0 -69
  27. data/spec/normalizy/filters/money_spec.rb +0 -282
  28. data/spec/normalizy/filters/number_spec.rb +0 -33
  29. data/spec/normalizy/filters/percent_spec.rb +0 -168
  30. data/spec/normalizy/filters/slug_spec.rb +0 -24
  31. data/spec/normalizy/filters/strip_spec.rb +0 -13
  32. data/spec/normalizy/normalizy/configure_spec.rb +0 -11
  33. data/spec/normalizy/rspec/matcher/description_spec.rb +0 -27
  34. data/spec/normalizy/rspec/matcher/failure_message_spec.rb +0 -48
  35. data/spec/normalizy/rspec/matcher/failure_message_when_negated_spec.rb +0 -30
  36. data/spec/normalizy/rspec/matcher/from_spec.rb +0 -19
  37. data/spec/normalizy/rspec/matcher/matches_spec.rb +0 -117
  38. data/spec/normalizy/rspec/matcher/to_spec.rb +0 -19
  39. data/spec/rails_helper.rb +0 -9
  40. data/spec/support/common.rb +0 -11
  41. data/spec/support/db/schema.rb +0 -83
  42. data/spec/support/filters/blacklist.rb +0 -11
  43. data/spec/support/filters/block.rb +0 -11
  44. data/spec/support/filters/info.rb +0 -11
  45. data/spec/support/models/alias.rb +0 -7
  46. data/spec/support/models/match.rb +0 -9
  47. data/spec/support/models/model.rb +0 -28
  48. data/spec/support/models/model_date.rb +0 -9
  49. data/spec/support/models/model_money.rb +0 -10
  50. data/spec/support/models/model_number.rb +0 -5
  51. data/spec/support/models/model_percent.rb +0 -10
  52. data/spec/support/models/model_slug.rb +0 -6
  53. data/spec/support/models/model_strip.rb +0 -8
  54. data/spec/support/models/rule.rb +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5f14ab0cae60c11869af9ac8bf6fbb51f95d94200f32f72d024dc7374f82e4ed
4
- data.tar.gz: bb91ac9f34acdeeb0e98d8891bd0dc1d8ddade115af057ad5292ee5925455f46
3
+ metadata.gz: ee7f65965cec5c289729431b01fcf23be051784ec7b18bf9b71ae00c698d9d93
4
+ data.tar.gz: ad9ce5473030dec2eae92783feecf6895e8e5e841bee48b5af46f4b6579dcc12
5
5
  SHA512:
6
- metadata.gz: dc45e12d2315ef96780d736fcc8554bd78c74f25db2addd6868658c4268196ba64de7c65925798dd8eedc0d31b012a69d542c7725032cb657d4f024900d6adf9
7
- data.tar.gz: e1f89c0c87861c86291d38ef4be32cff60a110ebed57e2b893fbb3a0c29b66e4ba256d5b486d2194b9af26de7442859720d59d690b5930c46aec058206d6437a
6
+ metadata.gz: c2c043c42e3627fb56b02defc6a0081311da5b72dfb1da0ecda255abca81a734b4a47c4c25054f24d5c4dec75059862fa250482e54d84f79a6905ecde4e5a7cc
7
+ data.tar.gz: eec956c476590a3a521f33ed58e657add31f52d391cb29362856d9dce14968f8d55df4f38b7d030071283da2d236ee1ec87654c5b6598a181ea45c227ef32216
data/CHANGELOG.md CHANGED
@@ -1,54 +1,95 @@
1
+ ## v1.7.0
2
+
3
+ ### Features
4
+
5
+ - Adds `truncate` filter; [#3](https://github.com/wbotelhos/normalizy/pull/3) by [rafaeldev](https://github.com/rafaeldev)
6
+
7
+ ### Updates
8
+
9
+ - Adds RuboCop task on the CI;
10
+
11
+ ## v1.6.0
12
+
13
+ ### Fixes
14
+
15
+ - Fix Money Filter to use the correct default Rails path for Currency and Percentage;
16
+
17
+ ### Updates
18
+
19
+ - Adds Code Quality;
20
+ - Adds Test Coverage;
21
+ - Migrates the build to Github Actions;
22
+ - Removes Git dependency for the build;
23
+
24
+ ## v1.5.0
25
+
26
+ ### Features
27
+
28
+ - Filter `date` now supports call object that responds to `beginning_of_day` or `end_of_day`;
29
+
1
30
  ## v1.4.0
2
31
 
32
+ ### Features
33
+
3
34
  - Adds `date` support for `Date` class.
4
35
 
5
36
  ## v1.3.0
6
37
 
7
- - Changes:
8
- - Support Rails 6.
38
+ ### Updates
39
+
40
+ - Support Rails 6.
9
41
 
10
42
  ## v1.2.0
11
43
 
12
- - Features:
13
- - `money` filter now allows negative numbers.
44
+ ### Features
45
+
46
+ - `money` filter now allows negative numbers.
14
47
 
15
48
  ## v1.1.1
16
49
 
17
- - Fixes:
18
- - When use `slug` filter the original values was not saved.
50
+ ### Fixes
51
+
52
+ - When using `slug` filter the original values were not saved.
19
53
 
20
54
  ## v1.1.0
21
55
 
22
- - Features:
23
- - Added `slug` filter with option to apply the value on other field.
56
+ ### Features
57
+
58
+ - Added `slug` filter with the option to apply the value on other fields.
24
59
 
25
60
  ## v1.0.1
26
61
 
27
- - Fixes:
28
- - When `type` options was `cents` and had no decimal on number, extra decimal were added.
62
+ ### Fixes
63
+
64
+ - When `type` options were `cents` and had no decimal on the number, extra decimals were added.
29
65
 
30
66
  ## v1.0.0
31
67
 
32
- - Changes:
33
- - `raw` options was dropped since `prepend` already works before type cast;
34
- - Multiple lines of `normalizy` will be evaluated from the bottom to top.
68
+ ### Updates
69
+
70
+ - `raw` options was dropped since `prepend` already works before type cast;
71
+ - Multiple lines of `normalizy` will be evaluated from the bottom to top.
72
+
73
+ ### Features
35
74
 
36
- - Features:
37
- - `alias` configuration now accepts options;
75
+ - `alias` configuration now accepts options;
38
76
 
39
- - Fixes:
40
- - Multiple filters were not running together.
77
+ ### Fixes
78
+
79
+ - Multiple filters were not running together.
41
80
 
42
81
  ## v0.2.0
43
82
 
44
- - Changes:
45
- - `number` filter no more make cast automatically.
46
- - `number` now accept `cast` options with method to be used on cast type;
83
+ ### Updates
84
+
85
+ - `number` filter no more make cast automatically.
86
+ - `number` now accept `cast` options with a method to be used on cast type;
87
+
88
+ ### Features
47
89
 
48
- - Features:
49
- - add `date` filter with `format`, `time_zone` and I18n error message support;
50
- - add `money` filter with `cast`, `type` and I18n support;
51
- - add `percent` filter with `cast`, `type` and I18n support.
90
+ - add `date` filter with `format`, `time_zone` and I18n error message support;
91
+ - add `money` filter with `cast`, `type` and I18n support;
92
+ - add `percent` filter with `cast`, `type` and I18n support.
52
93
 
53
94
  ## v0.1.0
54
95
 
data/README.md CHANGED
@@ -1,10 +1,12 @@
1
1
  # Normalizy
2
2
 
3
- [![Build Status](https://travis-ci.org/wbotelhos/normalizy.svg)](https://travis-ci.org/wbotelhos/normalizy)
3
+ [![CI](https://github.com/wbotelhos/normalizy/workflows/CI/badge.svg)](https://github.com/wbotelhos/normalizy/actions)
4
4
  [![Gem Version](https://badge.fury.io/rb/normalizy.svg)](https://badge.fury.io/rb/normalizy)
5
- [![Patreon](https://img.shields.io/badge/donate-%3C3-brightgreen.svg)](https://www.patreon.com/wbotelhos)
5
+ [![Maintainability](https://api.codeclimate.com/v1/badges/3896d0a11bee012c818c/maintainability)](https://codeclimate.com/github/wbotelhos/normalizy/maintainability)
6
+ [![codecov](https://codecov.io/gh/wbotelhos/normalizy/branch/master/graph/badge.svg?token=0XTRFDFHDq)](https://codecov.io/gh/wbotelhos/normalizy)
7
+ [![Sponsor](https://img.shields.io/badge/sponsor-%3C3-green)](https://www.patreon.com/wbotelhos)
6
8
 
7
- Attribute normalizer for ActiveRecord.
9
+ Attribute normalizer for Rails.
8
10
 
9
11
  ## Description
10
12
 
@@ -140,9 +142,10 @@ If you do not want pass it as options, Normalizy will fetch your I18n config:
140
142
 
141
143
  ```yaml
142
144
  en:
143
- currency:
144
- format:
145
- separator: '.'
145
+ number:
146
+ currency:
147
+ format:
148
+ separator: '.'
146
149
  ```
147
150
 
148
151
  And if it does not exists, `.` will be used as default.
@@ -190,9 +193,10 @@ If you do not want pass it as options, Normalizy will fetch your I18n config:
190
193
 
191
194
  ```yaml
192
195
  en:
193
- currency:
194
- format:
195
- separator: 2
196
+ number:
197
+ currency:
198
+ format:
199
+ precision: 2
196
200
  ```
197
201
 
198
202
  And if it does not exists, `2` will be used as default.
@@ -265,9 +269,10 @@ If you do not want pass it as options, Normalizy will fetch your I18n config:
265
269
 
266
270
  ```yaml
267
271
  en:
268
- percentage:
269
- format:
270
- separator: '.'
272
+ number:
273
+ percentage:
274
+ format:
275
+ separator: '.'
271
276
  ```
272
277
 
273
278
  And if it does not exists, `.` will be used as default.
@@ -315,9 +320,10 @@ If you do not want pass it as options, Normalizy will fetch your I18n config:
315
320
 
316
321
  ```yaml
317
322
  en:
318
- percentage:
319
- format:
320
- separator: 2
323
+ number:
324
+ percentage:
325
+ format:
326
+ separator: 2
321
327
  ```
322
328
 
323
329
  And if it does not exists, `2` will be used as default.
@@ -400,6 +406,17 @@ normalizy :name, with: { strip: { side: :both } }
400
406
 
401
407
  As you can see, the rules can be passed as Symbol/String or as Hash if it has options.
402
408
 
409
+ ### Truncate
410
+
411
+ Remove excedent string part from a gived limit.
412
+
413
+ ```ruby
414
+ normalizy :description, with: { truncate: { limit: 10 } }
415
+
416
+ 'Once upon a time in a world far far away'
417
+ # 'Once upon '
418
+ ```
419
+
403
420
  ## Multiple Filters
404
421
 
405
422
  You can normalize with a couple of filters at once:
@@ -449,7 +466,7 @@ Now, all normalization will include `squish`, even when no rule is declared.
449
466
 
450
467
  ```ruby
451
468
  normalizy :name
452
- ' Washington Botelho '
469
+ " Washington \n Botelho "
453
470
  # 'Washington Botelho'
454
471
  ```
455
472
 
@@ -29,7 +29,8 @@ module Normalizy
29
29
  number: Normalizy::Filters::Number,
30
30
  percent: Normalizy::Filters::Percent,
31
31
  slug: Normalizy::Filters::Slug,
32
- strip: Normalizy::Filters::Strip
32
+ strip: Normalizy::Filters::Strip,
33
+ truncate: Normalizy::Filters::Truncate,
33
34
  }
34
35
  end
35
36
  end
@@ -13,10 +13,8 @@ module Normalizy
13
13
  end
14
14
  end
15
15
 
16
- if [::Date, DateTime, Time].include?(input.class)
17
- input = input.beginning_of_day if options[:adjust] == :begin
18
- input = input.end_of_day if options[:adjust] == :end
19
- end
16
+ input = input.beginning_of_day if options[:adjust] == :begin && input.respond_to?(:beginning_of_day)
17
+ input = input.end_of_day if options[:adjust] == :end && input.respond_to?(:end_of_day)
20
18
 
21
19
  input
22
20
  rescue ArgumentError
@@ -29,7 +29,7 @@ module Normalizy
29
29
  end
30
30
 
31
31
  def precision(options)
32
- options.fetch :precision, I18n.t('currency.format.precision', default: 2)
32
+ options.fetch(:precision, I18n.t('number.currency.format.precision', default: 2))
33
33
  end
34
34
 
35
35
  def precisioned(value, options)
@@ -37,7 +37,7 @@ module Normalizy
37
37
  end
38
38
 
39
39
  def separator(options)
40
- options.fetch :separator, I18n.t('currency.format.separator', default: '.')
40
+ options.fetch(:separator, I18n.t('number.currency.format.separator', default: '.'))
41
41
  end
42
42
  end
43
43
  end
@@ -29,7 +29,7 @@ module Normalizy
29
29
  end
30
30
 
31
31
  def precision(options)
32
- options.fetch :precision, I18n.t('percentage.format.precision', default: 2)
32
+ options.fetch(:precision, I18n.t('number.percentage.format.precision', default: 2))
33
33
  end
34
34
 
35
35
  def precisioned(value, options)
@@ -37,7 +37,7 @@ module Normalizy
37
37
  end
38
38
 
39
39
  def separator(options)
40
- options.fetch :separator, I18n.t('percentage.format.separator', default: '.')
40
+ options.fetch(:separator, I18n.t('number.percentage.format.separator', default: '.'))
41
41
  end
42
42
  end
43
43
  end
@@ -4,7 +4,7 @@ module Normalizy
4
4
  module Filters
5
5
  module Slug
6
6
  class << self
7
- def call(input, options = {})
7
+ def call(input, _options = {})
8
8
  return input unless input.is_a?(String)
9
9
 
10
10
  input.parameterize
@@ -9,7 +9,7 @@ module Normalizy
9
9
  regex = {
10
10
  both: '\A\s*|\s*\z',
11
11
  left: '\A\s*',
12
- right: '\s*\z'
12
+ right: '\s*\z',
13
13
  }[options[:side] || :both]
14
14
 
15
15
  input.gsub Regexp.new(/#{regex}/), ''
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Normalizy
4
+ module Filters
5
+ module Truncate
6
+ module_function
7
+
8
+ def call(input, options = {})
9
+ return input unless options[:limit].is_a?(Integer)
10
+ return input unless input.is_a?(String)
11
+
12
+ input[0, options[:limit]]
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Normalizy
4
- VERSION = '1.4.0'
4
+ VERSION = '1.7.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: normalizy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Washington Botelho
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-30 00:00:00.000000000 Z
11
+ date: 2022-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -25,7 +25,21 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: pry-byebug
28
+ name: codecov
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: debug
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - ">="
@@ -108,11 +122,14 @@ dependencies:
108
122
  - - ">="
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
- description: Attribute normalizer for ActiveRecord.
125
+ description: Attribute normalizer for Rails.
112
126
  email: wbotelhos@gmail.com
113
127
  executables: []
114
128
  extensions: []
115
- extra_rdoc_files: []
129
+ extra_rdoc_files:
130
+ - CHANGELOG.md
131
+ - LICENSE
132
+ - README.md
116
133
  files:
117
134
  - CHANGELOG.md
118
135
  - LICENSE
@@ -129,55 +146,15 @@ files:
129
146
  - lib/normalizy/filters/percent.rb
130
147
  - lib/normalizy/filters/slug.rb
131
148
  - lib/normalizy/filters/strip.rb
149
+ - lib/normalizy/filters/truncate.rb
132
150
  - lib/normalizy/rspec/matcher.rb
133
151
  - lib/normalizy/version.rb
134
- - spec/normalizy/config/add_spec.rb
135
- - spec/normalizy/config/alias_spec.rb
136
- - spec/normalizy/config/default_filters_spec.rb
137
- - spec/normalizy/config/initialize_spec.rb
138
- - spec/normalizy/config/normalizy_aliases_spec.rb
139
- - spec/normalizy/extensions/filters/date_spec.rb
140
- - spec/normalizy/extensions/filters/money_spec.rb
141
- - spec/normalizy/extensions/filters/number_spec.rb
142
- - spec/normalizy/extensions/filters/percent_spec.rb
143
- - spec/normalizy/extensions/filters/slug_spec.rb
144
- - spec/normalizy/extensions/filters/strip_spec.rb
145
- - spec/normalizy/extensions/model_spec.rb
146
- - spec/normalizy/extensions/normalizy_rules_spec.rb
147
- - spec/normalizy/filters/date_spec.rb
148
- - spec/normalizy/filters/money_spec.rb
149
- - spec/normalizy/filters/number_spec.rb
150
- - spec/normalizy/filters/percent_spec.rb
151
- - spec/normalizy/filters/slug_spec.rb
152
- - spec/normalizy/filters/strip_spec.rb
153
- - spec/normalizy/normalizy/configure_spec.rb
154
- - spec/normalizy/rspec/matcher/description_spec.rb
155
- - spec/normalizy/rspec/matcher/failure_message_spec.rb
156
- - spec/normalizy/rspec/matcher/failure_message_when_negated_spec.rb
157
- - spec/normalizy/rspec/matcher/from_spec.rb
158
- - spec/normalizy/rspec/matcher/matches_spec.rb
159
- - spec/normalizy/rspec/matcher/to_spec.rb
160
- - spec/rails_helper.rb
161
- - spec/support/common.rb
162
- - spec/support/db/schema.rb
163
- - spec/support/filters/blacklist.rb
164
- - spec/support/filters/block.rb
165
- - spec/support/filters/info.rb
166
- - spec/support/models/alias.rb
167
- - spec/support/models/match.rb
168
- - spec/support/models/model.rb
169
- - spec/support/models/model_date.rb
170
- - spec/support/models/model_money.rb
171
- - spec/support/models/model_number.rb
172
- - spec/support/models/model_percent.rb
173
- - spec/support/models/model_slug.rb
174
- - spec/support/models/model_strip.rb
175
- - spec/support/models/rule.rb
176
152
  homepage: https://github.com/wbotelhos/normalizy
177
153
  licenses:
178
154
  - MIT
179
- metadata: {}
180
- post_install_message:
155
+ metadata:
156
+ rubygems_mfa_required: 'true'
157
+ post_install_message:
181
158
  rdoc_options: []
182
159
  require_paths:
183
160
  - lib
@@ -192,50 +169,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
169
  - !ruby/object:Gem::Version
193
170
  version: '0'
194
171
  requirements: []
195
- rubygems_version: 3.1.2
196
- signing_key:
172
+ rubygems_version: 3.1.6
173
+ signing_key:
197
174
  specification_version: 4
198
- summary: Attribute normalizer for ActiveRecord.
199
- test_files:
200
- - spec/normalizy/filters/date_spec.rb
201
- - spec/normalizy/filters/number_spec.rb
202
- - spec/normalizy/filters/money_spec.rb
203
- - spec/normalizy/filters/percent_spec.rb
204
- - spec/normalizy/filters/slug_spec.rb
205
- - spec/normalizy/filters/strip_spec.rb
206
- - spec/normalizy/config/initialize_spec.rb
207
- - spec/normalizy/config/normalizy_aliases_spec.rb
208
- - spec/normalizy/config/alias_spec.rb
209
- - spec/normalizy/config/add_spec.rb
210
- - spec/normalizy/config/default_filters_spec.rb
211
- - spec/normalizy/extensions/filters/date_spec.rb
212
- - spec/normalizy/extensions/filters/number_spec.rb
213
- - spec/normalizy/extensions/filters/money_spec.rb
214
- - spec/normalizy/extensions/filters/percent_spec.rb
215
- - spec/normalizy/extensions/filters/slug_spec.rb
216
- - spec/normalizy/extensions/filters/strip_spec.rb
217
- - spec/normalizy/extensions/normalizy_rules_spec.rb
218
- - spec/normalizy/extensions/model_spec.rb
219
- - spec/normalizy/normalizy/configure_spec.rb
220
- - spec/normalizy/rspec/matcher/matches_spec.rb
221
- - spec/normalizy/rspec/matcher/failure_message_spec.rb
222
- - spec/normalizy/rspec/matcher/failure_message_when_negated_spec.rb
223
- - spec/normalizy/rspec/matcher/to_spec.rb
224
- - spec/normalizy/rspec/matcher/from_spec.rb
225
- - spec/normalizy/rspec/matcher/description_spec.rb
226
- - spec/support/filters/block.rb
227
- - spec/support/filters/blacklist.rb
228
- - spec/support/filters/info.rb
229
- - spec/support/models/model_money.rb
230
- - spec/support/models/match.rb
231
- - spec/support/models/model_date.rb
232
- - spec/support/models/model.rb
233
- - spec/support/models/model_slug.rb
234
- - spec/support/models/rule.rb
235
- - spec/support/models/model_percent.rb
236
- - spec/support/models/model_number.rb
237
- - spec/support/models/model_strip.rb
238
- - spec/support/models/alias.rb
239
- - spec/support/common.rb
240
- - spec/support/db/schema.rb
241
- - spec/rails_helper.rb
175
+ summary: Attribute normalizer for Rails.
176
+ test_files: []
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Normalizy::Config, '#add' do
6
- it 'adds filters to the built-in filters' do
7
- Normalizy.configure do |config|
8
- config.add :blacklist, :blacklist_filter
9
- end
10
-
11
- expect(Normalizy.config.filters).to eq(
12
- blacklist: :blacklist_filter,
13
- date: Normalizy::Filters::Date,
14
- money: Normalizy::Filters::Money,
15
- number: Normalizy::Filters::Number,
16
- percent: Normalizy::Filters::Percent,
17
- slug: Normalizy::Filters::Slug,
18
- strip: Normalizy::Filters::Strip
19
- )
20
- end
21
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Normalizy::Config, '#alias' do
6
- it 'accepts alias' do
7
- Normalizy.configure do |config|
8
- config.alias :email, :downcase
9
- end
10
-
11
- expect(Alias.create(email: 'Botelho').email).to eq 'botelho'
12
- end
13
-
14
- it 'accepts alias with options' do
15
- Normalizy.configure do |config|
16
- config.alias :with_arg, strip: { side: :left }
17
- end
18
-
19
- expect(Alias.create(with_arg_field: ' trim').with_arg_field).to eq 'trim'
20
- end
21
-
22
- it 'accepts late options' do
23
- Normalizy.configure do |config|
24
- config.alias :with_inline_arg, :strip
25
- end
26
-
27
- expect(Alias.create(with_inline_arg_field: ' trim').with_inline_arg_field).to eq 'trim'
28
- end
29
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Normalizy::Config, 'default_filters' do
6
- context 'when get' do
7
- it 'returns the default filters' do
8
- expect(subject.default_filters).to eq({})
9
- end
10
- end
11
-
12
- context 'when set' do
13
- before { subject.default_filters = :blank }
14
-
15
- it 'keeps the original' do
16
- expect(subject.default_filters).to eq :blank
17
- end
18
- end
19
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Normalizy::Config, 'filters' do
6
- it 'loads some filters' do
7
- expect(subject.filters).to eq(
8
- date: Normalizy::Filters::Date,
9
- money: Normalizy::Filters::Money,
10
- number: Normalizy::Filters::Number,
11
- percent: Normalizy::Filters::Percent,
12
- slug: Normalizy::Filters::Slug,
13
- strip: Normalizy::Filters::Strip
14
- )
15
- end
16
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Normalizy::Config, 'normalizy_aliases' do
6
- it 'has the right defaults' do
7
- expect(subject.normalizy_aliases).to eq({})
8
- end
9
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe ModelDate, 'filters:date' do
6
- it { expect(described_class.create(date: '1984-10-23').date).to eq(Time.new(1984, 10, 23, 0, 0, 0, 0)) }
7
- it { expect(described_class.create(date_format: '84/10/23').date_format).to eq(Time.new(1984, 10, 23, 0, 0, 0, 0)) }
8
-
9
- it do
10
- hours = ActiveSupport::TimeZone['Brasilia'].utc_offset / 3600.0
11
- expected = Time.new(1984, 10, 23, 0, 0, 0, 0) + (hours.hours * -1)
12
-
13
- expect(described_class.create(date_time_zone: '1984-10-23').date_time_zone).to eq expected
14
- end
15
-
16
- it 'normalizys end date' do
17
- expect(described_class.new(date_time_end: Date.new(1984)).date_time_end).to eq(Time.new(1984).end_of_day)
18
- end
19
-
20
- it 'normalizys begin date' do
21
- expect(described_class.new(date_time_begin: Date.new(1984, 10, 23)).date_time_begin).to eq(Time.new(1984, 10, 23))
22
- end
23
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe ModelMoney, 'filters:money' do
6
- it do
7
- expect(described_class.create(text: '$ 42.00').text).to eq '42.00'
8
- expect(described_class.create(text: '$ 42.10').text).to eq '42.10'
9
-
10
- expect(described_class.create(text: '$ -42.00').text).to eq '-42.00'
11
- expect(described_class.create(text: '$ -42.10').text).to eq '-42.10'
12
- end
13
-
14
- it do
15
- expect(described_class.create(cents_type: '$ 42.33').cents_type).to eq '4233'
16
- expect(described_class.create(cents_type: '$ -42.33').cents_type).to eq '-4233'
17
- end
18
-
19
- it do
20
- expect(described_class.create(cast_to_i: '$ 42.00').cast_to_i).to be 42
21
- expect(described_class.create(cast_to_i: '$ -42.00').cast_to_i).to be -42
22
- end
23
-
24
- it do
25
- expect(described_class.create(cast_to_d: '$ 1.23').cast_to_d).to eq 1.23
26
- expect(described_class.create(cast_to_d: '$ -1.23').cast_to_d).to eq -1.23
27
- end
28
-
29
- it do
30
- expect(described_class.create(cents_type_and_cast_to_f: '$ 42.00').cents_type_and_cast_to_f).to eq 4200.0
31
- expect(described_class.create(cents_type_and_cast_to_f: '$ -42.00').cents_type_and_cast_to_f).to eq -4200.0
32
- end
33
-
34
- it do
35
- expect(described_class.create(cents_type_and_cast_to_i: '$ 42.00').cents_type_and_cast_to_i).to eq 4200
36
- expect(described_class.create(cents_type_and_cast_to_i: '$ -42.00').cents_type_and_cast_to_i).to eq -4200
37
- end
38
- end