attributes_sanitizer 0.1.3 → 0.1.4

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: d9b5cdacf4202a91b8cdddfb2e19e2e5eef002fef133e9cb24f7a78156d3123b
4
- data.tar.gz: c5f983d0ff25b68db3963bcef1d1b55092de84326e9877a6d06d96bc4ef8b852
3
+ metadata.gz: 98fa0192ea9522563237224ab465c986be336c2a68056bc41ba5f276feeb0fd1
4
+ data.tar.gz: 3176dd989b679ed4c9a54b0815cea118c62862ea2bd21dd55e0c945c4d5f6b2a
5
5
  SHA512:
6
- metadata.gz: 5287f32e464059803785667477d599ebc9fb8017e8ddc9b603697e9349be3c29d38afe35e4227aeba7521dac8082ea761732dfeb81a9621ac2969a3825cfd1c6
7
- data.tar.gz: 2192b362fa17029e8559e1fcaba5c37351d5865e577e06c740f24e302e525abc743465dde27fc97723668af9599ffce6ea64e385da163625e6457044ef57c509
6
+ metadata.gz: 11ed0f80297d724c017f8df73b2d675f2a8d9f999764aaa51818e60fbd95889dd8d51fa327d44dc6fa18c535933dd5a3a15ef4f69efc18e971ce150d5d3e2e44
7
+ data.tar.gz: cf469c09997dd4356f7a14d47be3fb4c740408663e4c7f363d9de9179c7a6fd4b7086d7f7c5e37c53976ba4bc2251ecf2cfffa380344d602152b8143d2bc125a
data/README.md CHANGED
@@ -39,7 +39,7 @@ end
39
39
  Add this line to your application's Gemfile:
40
40
 
41
41
  ```ruby
42
- gem 'attributes_sanitizer', git: 'https://github.com/andersondias/attributes_sanitizer.git'
42
+ gem 'attributes_sanitizer'
43
43
  ```
44
44
 
45
45
  And then execute:
data/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  begin
2
3
  require 'bundler/setup'
3
4
  rescue LoadError
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "attributes_sanitizer/railtie"
2
3
  require "attributes_sanitizer/sanitizer_proc"
3
4
  require "attributes_sanitizer/concern"
@@ -5,14 +6,16 @@ require "attributes_sanitizer/overrider"
5
6
  require "attributes_sanitizer/predefined"
6
7
 
7
8
  module AttributesSanitizer
8
- EMOJI_REGEX = /[^\u0000-\u00FF]/
9
-
10
- mattr_accessor :sanitizers
11
- self.sanitizers = {}
12
-
13
9
  def self.define_sanitizer(sanitizer_name, &block)
10
+ @sanitizers ||= {}
14
11
  raise ArgumentError, 'sanitizer needs a block' unless block_given?
15
- self.sanitizers[sanitizer_name.to_sym] = block
12
+ @sanitizers[sanitizer_name.to_sym] = block
13
+ end
14
+
15
+ def self.find(sanitizer_name)
16
+ sanitizer = @sanitizers && @sanitizers[sanitizer_name.to_sym]
17
+ raise ArgumentError, "No sanitizer defined for #{sanitizer}" if sanitizer.nil?
18
+ sanitizer
16
19
  end
17
20
 
18
21
  include Predefined
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module AttributesSanitizer::Concern
2
3
  extend ActiveSupport::Concern
3
4
 
@@ -30,8 +31,8 @@ module AttributesSanitizer::Concern
30
31
  private
31
32
 
32
33
  def fetch_sanitizers_from_options(attributes)
33
- defaults = attributes.extract_options!.dup
34
- sanitizers = Array(defaults[:with])
34
+ options = attributes.extract_options!.dup
35
+ sanitizers = Array(options[:with])
35
36
 
36
37
  raise ArgumentError, "You need to supply at least one attribute" if attributes.empty?
37
38
  raise ArgumentError, "You need to supply at least one sanitize method" if sanitizers.empty?
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module AttributesSanitizer
2
3
  class Overrider
3
4
  attr_reader :klass
@@ -1,7 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  module AttributesSanitizer
2
3
  module Predefined
3
4
  extend ActiveSupport::Concern
4
5
 
6
+ EMOJI_REGEX = /[^\u0000-\u00FF]/
7
+
5
8
  included do
6
9
  AttributesSanitizer.define_sanitizer :stringify do |value|
7
10
  value.to_s
@@ -20,7 +23,7 @@ module AttributesSanitizer
20
23
  end
21
24
 
22
25
  AttributesSanitizer.define_sanitizer :strip_emojis do |value|
23
- value.gsub(AttributesSanitizer::EMOJI_REGEX, '')
26
+ value.gsub(AttributesSanitizer::Predefined::EMOJI_REGEX, '')
24
27
  end
25
28
 
26
29
  AttributesSanitizer.define_sanitizer :strip_spaces do |value|
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module AttributesSanitizer
2
3
  class Railtie < ::Rails::Railtie
3
4
  initializer 'attributes_sanitizer.insert_into_active_record' do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module AttributesSanitizer
2
3
  class SanitizerProc
3
4
  include Comparable
@@ -11,9 +12,7 @@ module AttributesSanitizer
11
12
  @proc = sanitizer
12
13
  @id = sanitizer.object_id
13
14
  else
14
- @proc = AttributesSanitizer.sanitizers[sanitizer]
15
- raise ArgumentError, "No attribute sanitizer defined for #{sanitizer}" if @proc.nil?
16
-
15
+ @proc = AttributesSanitizer.find(sanitizer)
17
16
  @id = sanitizer
18
17
  end
19
18
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module AttributesSanitizer
2
- VERSION = '0.1.3'
3
+ VERSION = '0.1.4'
3
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attributes_sanitizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anderson Dias
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-27 00:00:00.000000000 Z
11
+ date: 2018-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails