deface 1.3.0 → 1.3.1

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
  SHA1:
3
- metadata.gz: cf234b6836f2b2d5bee1e3ae0d73632c048c0fa5
4
- data.tar.gz: 1cdc7e44036fb3bf0fc9b5bcfe6ee485d4b8d6fe
3
+ metadata.gz: 1abef419e3fa75dc8e8f82e92f9fdd019d1adb83
4
+ data.tar.gz: 4ca2e8f9f48cd397428398f7315bfc93634ca6a8
5
5
  SHA512:
6
- metadata.gz: 893ca0bc578ad92b43c6758583e37c1a712e63737dc0c7d7a0a06efcbe2c107c100fe52a973d65ce6251378f0774384159e1eccf842036618f5157992b8f93a5
7
- data.tar.gz: 1b476d0268efbf0d74b6af40a34b1fc1a6cf1be2f8c72eb58d542adf02706c5d86ddb68551139a80aae3051ce857e9bf042e53d763100b220d79a878af7a4eb8
6
+ metadata.gz: 3bdc37fec62caed46381652d1a3da9f6cb20e6b366876aaea9e18f33862994122808a7c6d66e7bde35f094ed27d30c06627a05627b4d183fce697bd0b5e6f296
7
+ data.tar.gz: 6511b13a014b50fd9049314b8e6191ad99698bc571b2e564099e6de86da37840f092d1e911a1e1f60e0c4d4e9f32ebb4ea0d9b0f966f4af71539270963e28ed0
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "deface"
3
- s.version = "1.3.0"
3
+ s.version = "1.3.1"
4
4
 
5
5
  s.authors = ["Brian D Quinn"]
6
6
  s.description = "Deface is a library that allows you to customize ERB, Haml and Slim views in a Rails application without editing the underlying view."
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.require_paths = ["lib"]
16
16
  s.summary = "Deface is a library that allows you to customize ERB, Haml and Slim views in Rails"
17
17
 
18
- s.add_dependency('nokogiri', '~> 1.6')
18
+ s.add_dependency('nokogiri', '>= 1.6')
19
19
  s.add_dependency('rails', '>= 4.1')
20
20
  s.add_dependency('rainbow', '>= 2.1.0')
21
21
  s.add_dependency('polyglot')
@@ -4,6 +4,7 @@ require "deface/template_helper"
4
4
  require "deface/original_validator"
5
5
  require "deface/applicator"
6
6
  require "deface/search"
7
+ require "deface/digest"
7
8
  require "deface/override"
8
9
  require "deface/parser"
9
10
  require "deface/dsl/loader"
@@ -42,6 +43,10 @@ module Deface
42
43
  require "deface/railtie"
43
44
  end
44
45
 
46
+ if defined?(ActiveSupport::Digest)
47
+ Deface::Digest.digest_class = ActiveSupport::Digest
48
+ end
49
+
45
50
  # Exceptions
46
51
  class DefaceError < StandardError; end
47
52
 
@@ -52,7 +52,7 @@ ActionView::Template.class_eval do
52
52
  deface_hash = Deface::Override.digest(:virtual_path => @virtual_path)
53
53
 
54
54
  #we digest the whole method name as if it gets too long there's problems
55
- "_#{Digest::MD5.new.update("#{deface_hash}_#{method_name_without_deface}").hexdigest}"
55
+ "_#{Deface::Digest.hexdigest("#{deface_hash}_#{method_name_without_deface}")}"
56
56
  end
57
57
 
58
58
  private
@@ -0,0 +1,25 @@
1
+ module Deface
2
+ class Digest
3
+ class <<self
4
+ def digest_class
5
+ @digest_class || ::Digest::MD5
6
+ end
7
+
8
+ def digest_class=(klass)
9
+ @digest_class = klass
10
+ end
11
+
12
+ def hexdigest(arg)
13
+ new.hexdigest(arg)
14
+ end
15
+ end
16
+
17
+ def initialize(klass = nil)
18
+ @digest_class = klass || self.class.digest_class
19
+ end
20
+
21
+ def hexdigest(arg)
22
+ @digest_class.hexdigest(arg).truncate(32)
23
+ end
24
+ end
25
+ end
@@ -11,7 +11,7 @@ module Deface
11
11
  def validate_original(match)
12
12
  match = match.map(&:to_s).join if match.is_a? Array
13
13
 
14
- hashed_original = Digest::SHA1.hexdigest(match.to_s.gsub(/\s/, ''))
14
+ hashed_original = ::Digest::SHA1.hexdigest(match.to_s.gsub(/\s/, ''))
15
15
 
16
16
  if @args[:original].present?
17
17
  valid = @args[:original] == hashed_original
@@ -185,7 +185,8 @@ module Deface
185
185
  # used to determine if an override has changed
186
186
  #
187
187
  def digest
188
- Digest::MD5.new.update(@args.keys.map(&:to_s).sort.concat(@args.values.map(&:to_s).sort).join).hexdigest
188
+ to_hash = @args.keys.map(&:to_s).sort.concat(@args.values.map(&:to_s).sort).join
189
+ Deface::Digest.hexdigest(to_hash)
189
190
  end
190
191
 
191
192
  # Creates MD5 of all overrides that apply to a particular
@@ -195,8 +196,8 @@ module Deface
195
196
  #
196
197
  def self.digest(details)
197
198
  overrides = self.find(details)
198
-
199
- Digest::MD5.new.update(overrides.inject('') { |digest, override| digest << override.digest }).hexdigest
199
+ to_hash = overrides.inject('') { |digest, override| digest << override.digest }
200
+ Deface::Digest.hexdigest(to_hash)
200
201
  end
201
202
 
202
203
  def self.all
@@ -0,0 +1,24 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Deface
6
+ describe Digest do
7
+ it "should use MD5 by default" do
8
+ expect(Digest.new.hexdigest("123")).to eq "202cb962ac59075b964b07152d234b70"
9
+ end
10
+
11
+ it "should use user-provided digest" do
12
+ digest = double("digest")
13
+ expect(digest).to receive(:hexdigest).with("to_digest").and_return("digested")
14
+ expect(Digest.new(digest).hexdigest("to_digest")).to eq "digested"
15
+ end
16
+
17
+ it "should truncate digest to 32 characters" do
18
+ digest = double("digest")
19
+ expect(digest).to receive(:hexdigest).with("to_digest").and_return("a" * 50)
20
+ expect(Digest.new(digest).hexdigest("to_digest").size).to eq 32
21
+ end
22
+ end
23
+ end
24
+
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deface
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian D Quinn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-30 00:00:00.000000000 Z
11
+ date: 2018-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
@@ -212,6 +212,7 @@ files:
212
212
  - lib/deface/actions/surround_action.rb
213
213
  - lib/deface/actions/surround_contents.rb
214
214
  - lib/deface/applicator.rb
215
+ - lib/deface/digest.rb
215
216
  - lib/deface/dsl/context.rb
216
217
  - lib/deface/dsl/loader.rb
217
218
  - lib/deface/environment.rb
@@ -267,6 +268,7 @@ files:
267
268
  - spec/deface/actions/surround_contents_spec.rb
268
269
  - spec/deface/actions/surround_spec.rb
269
270
  - spec/deface/applicator_spec.rb
271
+ - spec/deface/digest_spec.rb
270
272
  - spec/deface/dsl/context_spec.rb
271
273
  - spec/deface/dsl/loader_spec.rb
272
274
  - spec/deface/environment_spec.rb
@@ -302,7 +304,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
302
304
  version: '0'
303
305
  requirements: []
304
306
  rubyforge_project:
305
- rubygems_version: 2.6.14
307
+ rubygems_version: 2.6.10
306
308
  signing_key:
307
309
  specification_version: 4
308
310
  summary: Deface is a library that allows you to customize ERB, Haml and Slim views
@@ -333,6 +335,7 @@ test_files:
333
335
  - spec/deface/actions/surround_contents_spec.rb
334
336
  - spec/deface/actions/surround_spec.rb
335
337
  - spec/deface/applicator_spec.rb
338
+ - spec/deface/digest_spec.rb
336
339
  - spec/deface/dsl/context_spec.rb
337
340
  - spec/deface/dsl/loader_spec.rb
338
341
  - spec/deface/environment_spec.rb