attributes_sanitizer 0.1.3 → 0.1.4

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