attr_filters 0.4.2 → 0.5.0

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
  SHA256:
3
- metadata.gz: 63030b12a0178d3cce2fe3acc25d1bbb0d98b543364735eeeaf240cbf39c3c30
4
- data.tar.gz: 616ba57bc6ab117543cd66524b0c9d6ed573cd9d6f1b2960e94bb7ed6a102877
3
+ metadata.gz: b448e938e9aa107808aeada74934bc0e9aca912bf0c295515d1e155f573f9e11
4
+ data.tar.gz: a805cfa48c6c920f6c24ea63ca909916c9877c79ab0b37c2a990f89eec396940
5
5
  SHA512:
6
- metadata.gz: cd645cbf585abd5643bd88513f8cc2a2763f7dd203e45d44f06fa981832ddd6f5ddf883235fcb827ae15948dadb29af79625e6c27f14c4713b7f0f9225285527
7
- data.tar.gz: 1ad133aa50641b90a2b1d5fda75aaaa8ac22281f2ea921206e04e536f3cdf87f5f67b9b0d0aa73b393ac149be1e847c52d1e12be720fb8a8283d415bd1992f20
6
+ metadata.gz: cef72e575aea56eb963bb915906550d2ce51b4041c56922dcb3e1fcffd42759ce1b0edc82bf7b95c904e56370f435787373695cdb520d3a6da24893f8e21c8d0
7
+ data.tar.gz: 9b5597ba6c58b64548d599a58f403e44c4027679032adff3ea474759ca494d5ab3605da72416d50c3e25c6d8ebfd4eb8fe3a0dc0caaa10815ff327e2952186bb
@@ -1,5 +1,4 @@
1
1
  ---
2
- sudo: false
3
2
  language: ruby
4
3
  cache: bundler
5
4
 
@@ -22,5 +21,4 @@ jobs:
22
21
  before_install: gem install bundler -v 2.0.1
23
22
 
24
23
  script:
25
- - bundle exec rspec
26
- - bundle exec rubocop
24
+ - bundle exec rspec
data/README.md CHANGED
@@ -122,7 +122,7 @@ form.zip # => "12345"
122
122
  - `capitalize` - upcases first letter and lowercase others
123
123
  - `squeeze` - removes duplicating whitespaces
124
124
  - `numbers_only` - removes non digits characters
125
- - `letters_only` - removes non letter characters
125
+ - `letters_only` - removes non letter characters, accept `except` options as `filters first_name: { except: %w[' -] }`
126
126
  - `date` - parse string to date using specified format. Default format is **`%Y-%m-%d`**.
127
127
 
128
128
 
@@ -5,9 +5,25 @@ module AttrFilters
5
5
  class LettersOnly < Base
6
6
  private
7
7
 
8
- def filter(value)
8
+ def filter(value, options = {})
9
+ return filter_letters_only(value) unless except_chars?(options)
10
+
11
+ filter_letters_and_except_chars(value, options)
12
+ end
13
+
14
+ def filter_letters_only(value)
9
15
  value.gsub(/[^a-zA-Z\s]/i, "").squeeze(" ")
10
16
  end
17
+
18
+ def except_chars?(options)
19
+ options[:except]
20
+ end
21
+
22
+ def filter_letters_and_except_chars(value, options)
23
+ except_chars = options[:except].map { |char| "\\" + char }.join
24
+
25
+ value.gsub(/[^a-zA-Z\s#{except_chars}]/i, "").squeeze(" ")
26
+ end
11
27
  end
12
28
  end
13
29
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AttrFilters
4
- VERSION = "0.4.2"
4
+ VERSION = "0.5.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attr_filters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Holovko
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-12-24 00:00:00.000000000 Z
12
+ date: 2019-12-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler