attr_filters 0.4.2 → 0.5.0

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
  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