deface 1.6.0 → 1.8.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
  SHA256:
3
- metadata.gz: e130d9b889669220392d0fa6fe04ba7cd39604bf8b12edff68308b89d6f3f5f6
4
- data.tar.gz: 997c7d4cc5d95a5a5168e70c9da588a9c56b7b67a404b0e4ffaf0410a06426b6
3
+ metadata.gz: 13f8d0d00b60a47809b55b1c260da178bf2ab6c4087a73b154b1d4e2abe4e51a
4
+ data.tar.gz: 44b725c4108968143fb985c15ce297666076b7093b29c97d0cf4f546ac5a9f23
5
5
  SHA512:
6
- metadata.gz: 800d393fb3a99206dd0b7922e094458b806e114ab244c8229d37a392affa0faec9455caa85fdba554ece13c95c70064fc663a1644c41cb1b48d693aa35293a56
7
- data.tar.gz: 713aaca8fa816ba00f9d66ac8b39596b4818099aff3aa533aa2301d56f1ccd6a15b650477b5621ca669a45b6c949b8f1699fbad4b1a7f339bc7e9ae32f460a8d
6
+ metadata.gz: 24e344680c4d7a72b1e1e10c8dc1c1e60bf2fb8234037ca95f361b67827307f6e3f4fd932168aa0c559d2015387b442cc0eee349cc792eeaa4f4970907cc7037
7
+ data.tar.gz: ae4600922bdd43fbfc3db5fec9f75bfa33bef4bca005130f6f13824deec82e1bfb1a9152c53eaf2893e36406e430c27c0487e79618d37719db1dcc3d9dc07f07
data/.gitignore CHANGED
@@ -7,3 +7,4 @@ coverage/
7
7
  gemfiles/*.lock
8
8
  /.idea
9
9
  /sandbox
10
+ *.gem
data/Rakefile CHANGED
@@ -5,8 +5,12 @@ require 'rdoc/task'
5
5
  require 'rspec'
6
6
  require 'rspec/core/rake_task'
7
7
 
8
+ require 'bundler'
9
+ Bundler.require
10
+ Bundler::GemHelper.install_tasks
11
+
8
12
  desc 'Default: run specs'
9
- task :default => :spec
13
+ task :default => :spec
10
14
  RSpec::Core::RakeTask.new do |t|
11
15
  t.pattern = "spec/**/*_spec.rb"
12
16
  end
data/bin/sandbox CHANGED
@@ -26,6 +26,8 @@ fi
26
26
  cd ./sandbox
27
27
  cat <<RUBY >> Gemfile
28
28
  gem '$gem_name', path: '..'
29
+ gem 'haml'
30
+ gem 'slim'
29
31
  RUBY
30
32
 
31
33
  unbundled bundle install --gemfile Gemfile
data/bin/sandbox-setup CHANGED
@@ -1,24 +1,89 @@
1
- #!/usr/bin/env bash
2
-
3
- bin/rails g scaffold Post title body
4
- bin/rails db:migrate
5
-
6
- mkdir sandbox/app/overrides
7
-
8
- echo <<RUBY >> sandbox/app/overrides/sparkling_title.rb
9
- Deface::Override.new(
10
- virtual_path: "posts/show",
11
- name: "sparkling_title",
12
- replace: 'p:nth-child(2)',
13
- text: "<h1>✨<%= @post.title %>✨</h1>"
14
- )
15
-
16
- Deface::Override.new(
17
- virtual_path: "posts/show",
18
- name: "sparkling_body",
19
- replace: 'p:nth-child(3)',
20
- text: "<p style='border:2px gray solid; padding: 1rem;'><%= @post.body %></p>"
21
- )
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fileutils'
4
+ extend FileUtils
5
+
6
+ system 'bin/rails g scaffold Post title body'
7
+ system 'bin/rails db:migrate'
8
+
9
+ mkdir_p 'sandbox/app/overrides'
10
+
11
+ File.write 'sandbox/app/views/posts/_haml_partial.html.haml', <<~HAML
12
+ %h2 hello from haml
13
+ HAML
14
+
15
+ File.write 'sandbox/app/views/posts/_slim_partial.html.slim', <<~SLIM
16
+ h2 hello from slim
17
+ SLIM
18
+
19
+ File.write 'sandbox/app/views/posts/_haml_defaced_partial.html.haml', <<~HAML
20
+ %h3 hello from defaced haml
21
+ HAML
22
+
23
+ File.write 'sandbox/app/views/posts/_slim_defaced_partial.html.slim', <<~SLIM
24
+ h3 hello from defaced slim
25
+ SLIM
26
+
27
+ File.write 'sandbox/app/overrides/improved_posts.rb', <<~RUBY
28
+ Deface::Override.new(
29
+ virtual_path: "posts/show",
30
+ name: "sparkling_post_title",
31
+ replace: 'p:nth-child(2)',
32
+ text: "<h1>✨<%= @post.title %>✨</h1>"
33
+ )
34
+
35
+ Deface::Override.new(
36
+ virtual_path: "posts/show",
37
+ name: "modern_style_post_body",
38
+ replace: 'p:nth-child(3)',
39
+ text: "<p style='border:2px gray solid; padding: 1rem;'><%= @post.body %></p>"
40
+ )
41
+
42
+ Deface::Override.new(
43
+ virtual_path: "posts/index",
44
+ name: "sparkling_posts_title",
45
+ replace: 'tr td:first-child',
46
+ text: "<td>✨<%= post.title %>✨</td>"
47
+ )
48
+
49
+ Deface::Override.new(
50
+ virtual_path: "posts/index",
51
+ name: "modern_style_post_body",
52
+ replace: 'tr td:nth-child(2)',
53
+ text: "<td style='border:2px gray solid; padding: 1rem;'><%= post.body %></d>"
54
+ )
55
+
56
+ Deface::Override.new(
57
+ virtual_path: "posts/index",
58
+ name: "haml_and_slim_partials",
59
+ insert_before: 'table',
60
+ text: "
61
+ <header><%= render 'haml_partial' %><%= render 'slim_partial' %></header>
62
+ <section><%= render 'haml_defaced_partial' %><%= render 'slim_defaced_partial' %></section>
63
+ "
64
+ )
65
+
66
+ Deface::Override.new(
67
+ virtual_path: "posts/_haml_defaced_partial",
68
+ name: "haml_deface",
69
+ insert_before: 'h3',
70
+ text: "<h4>HAML subtitle</h4>"
71
+ )
72
+
73
+ Deface::Override.new(
74
+ virtual_path: "posts/_slim_defaced_partial",
75
+ name: "slim_deface",
76
+ insert_before: 'h3',
77
+ text: "<h4>SLIM subtitle</h4>"
78
+ )
79
+ RUBY
80
+
81
+ File.write 'sandbox/config/routes.rb', <<~RUBY
82
+ Rails.application.routes.draw do
83
+ resources :posts
84
+ root to: "posts#index"
85
+ end
22
86
  RUBY
23
87
 
24
- bin/rails runner "Post.create(title: 'Foo', body: 'Bar '*10)"
88
+ system "bin/rails", "runner", "Post.create(title: 'Foo', body: 'Bar '*10)"
89
+ system "bin/rails", "runner", "Post.create(title: 'Baz', body: 'Boz '*10)"
data/deface.gemspec CHANGED
@@ -36,6 +36,7 @@ Gem::Specification.new do |spec|
36
36
 
37
37
  spec.add_development_dependency('appraisal')
38
38
  spec.add_development_dependency('erubis')
39
+ spec.add_development_dependency('gem-release')
39
40
  spec.add_development_dependency('rspec', '>= 3.1.0')
40
41
  spec.add_development_dependency('haml', ['>= 4.0', '< 6'])
41
42
  spec.add_development_dependency('slim', '~> 3.0')
@@ -0,0 +1,13 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 6.1.0"
6
+
7
+ group :test do
8
+ gem "test-unit"
9
+ gem "pry"
10
+ gem "pry-byebug"
11
+ end
12
+
13
+ gemspec path: "../"
@@ -14,46 +14,56 @@ module Deface::ActionViewExtensions
14
14
  end
15
15
 
16
16
  module DefacedTemplate
17
- def initialize(source, identifier, handler, details)
18
- syntax = Deface::ActionViewExtensions.determine_syntax(handler)
17
+ def encode!
18
+ return super unless Rails.application.config.deface.enabled
19
19
 
20
- if syntax
21
- processed_source = Deface::Override.apply(source.to_param, details, true, syntax)
20
+ # Before Rails 6 encode! returns nil
21
+ source = Deface.before_rails_6? ? (super; @source) : super
22
+ syntax = Deface::ActionViewExtensions.determine_syntax(@handler)
23
+ overrides = Deface::Override.find(
24
+ locals: @locals,
25
+ format: @format,
26
+ variant: @variant,
27
+ virtual_path: @virtual_path,
28
+ )
22
29
 
23
- # force change in handler before continuing to original Rails method
24
- # as we've just converted some other template language into ERB!
25
- #
26
- if [:slim, :haml].include?(syntax) && processed_source != source.to_param
27
- handler = ActionView::Template::Handlers::ERB
30
+ if syntax && overrides.any?
31
+ # Prevents any caching by rails in development mode.
32
+ @updated_at = Time.now if Deface.before_rails_6?
33
+ @handler = ActionView::Template::Handlers::ERB
34
+
35
+ # Modify the existing string instead of returning a copy
36
+ new_source = Deface::Override.apply_overrides(
37
+ Deface::Override.convert_source(source, syntax: syntax),
38
+ overrides: overrides
39
+ )
40
+
41
+ if Deface.before_rails_6?
42
+ @source.replace new_source
43
+ else
44
+ source.replace new_source
28
45
  end
29
- else
30
- processed_source = source.to_param
31
46
  end
32
47
 
33
- super(processed_source, identifier, handler, **details)
48
+ source
34
49
  end
35
50
 
36
- # refresh view to get source again if
37
- # view needs to be recompiled
38
- #
39
- def render(view, locals, buffer=nil, &block)
40
- mod = view.is_a?(Deface.template_class) ? Deface.template_class : view.singleton_class
51
+ private
41
52
 
42
- if @compiled && !mod.instance_methods.include?(method_name.to_sym)
43
- @compiled = false
44
- @source = refresh(view).source
45
- end
46
- super(view, locals, buffer, &block)
47
- end
53
+ def compile!(view)
54
+ return super unless Rails.application.config.deface.enabled
48
55
 
49
- # inject deface hash into compiled view method name
50
- # used to determine if recompilation is needed
51
- #
52
- def method_name
53
- deface_hash = Deface::Override.digest(:virtual_path => @virtual_path)
56
+ @compile_mutex.synchronize do
57
+ current_deface_hash = Deface::Override.digest(virtual_path: @virtual_path)
58
+ @deface_hash = current_deface_hash if @deface_hash.nil?
54
59
 
55
- #we digest the whole method name as if it gets too long there's problems
56
- "_#{Deface::Digest.hexdigest("#{deface_hash}_#{super}")}"
60
+ if @deface_hash != current_deface_hash
61
+ @compiled = nil
62
+ @deface_hash = current_deface_hash
63
+ end
64
+ end
65
+
66
+ super
57
67
  end
58
68
 
59
69
  ActionView::Template.prepend self
@@ -6,58 +6,70 @@ module Deface
6
6
  def apply(source, details, log=true, syntax=:erb)
7
7
  overrides = find(details)
8
8
 
9
- if log && overrides.size > 0
10
- Rails.logger.debug "\e[1;32mDeface:\e[0m #{overrides.size} overrides found for '#{details[:virtual_path]}'"
11
- end
9
+ return source if overrides.empty?
12
10
 
13
- unless overrides.empty?
14
- case syntax
15
- when :haml
16
- #convert haml to erb before parsing before
17
- source = Deface::HamlConverter.new(source.to_param).result
18
- when :slim
19
- source = Deface::SlimConverter.new(source.to_param).result
20
- end
11
+ Rails.logger.debug "\e[1;32mDeface:\e[0m #{overrides.size} overrides found for '#{details[:virtual_path]}'" if log
21
12
 
22
- doc = Deface::Parser.convert(source)
13
+ apply_overrides(
14
+ convert_source(source, syntax: syntax),
15
+ overrides: overrides,
16
+ log: log
17
+ )
18
+ end
23
19
 
24
- overrides.each do |override|
25
- if override.disabled?
26
- Rails.logger.debug("\e[1;32mDeface:\e[0m '#{override.name}' is disabled") if log
27
- next
28
- end
20
+ # applies specified overrides to given source
21
+ def apply_overrides(source, overrides:, log: true)
29
22
 
30
- override.parsed_document = doc
31
- matches = override.matcher.matches(doc, log)
23
+ doc = Deface::Parser.convert(source)
32
24
 
33
- if log
34
- Rails.logger.send(matches.size == 0 ? :error : :debug, "\e[1;32mDeface:\e[0m '#{override.name}' matched #{matches.size} times with '#{override.selector}'")
25
+ overrides.each do |override|
26
+ if override.disabled?
27
+ Rails.logger.debug("\e[1;32mDeface:\e[0m '#{override.name}' is disabled") if log
28
+ next
29
+ end
35
30
 
36
- # temporarily check and notify on use of old selector styles.
37
- #
38
- if matches.empty? && override.selector.match(/code|erb-loud|erb-silent/)
39
- Rails.logger.error "\e[1;32mDeface: [WARNING]\e[0m Override '#{override.name}' may be using an invalid selector of '#{override.selector}', <code erb-loud|silent> tags are now <erb loud|silent>"
40
- end
41
- end
31
+ override.parsed_document = doc
32
+ matches = override.matcher.matches(doc, log)
33
+
34
+ if log
35
+ Rails.logger.send(matches.size == 0 ? :error : :debug, "\e[1;32mDeface:\e[0m '#{override.name}' matched #{matches.size} times with '#{override.selector}'")
42
36
 
43
- if matches.empty?
44
- override.failure = "failed to match :#{override.action} selector '#{override.selector}'"
45
- else
46
- override.failure = nil
47
- matches.each {|match| override.execute_action match }
37
+ # temporarily check and notify on use of old selector styles.
38
+ #
39
+ if matches.empty? && override.selector.match(/code|erb-loud|erb-silent/)
40
+ Rails.logger.error "\e[1;32mDeface: [WARNING]\e[0m Override '#{override.name}' may be using an invalid selector of '#{override.selector}', <code erb-loud|silent> tags are now <erb loud|silent>"
48
41
  end
49
42
  end
50
43
 
51
- # Prevents any caching by rails in development mode.
52
- details[:updated_at] = Time.now if Deface.before_rails_6?
44
+ if matches.empty?
45
+ override.failure = "failed to match :#{override.action} selector '#{override.selector}'"
46
+ else
47
+ override.failure = nil
48
+ matches.each {|match| override.execute_action match }
49
+ end
50
+ end
53
51
 
54
- source = doc.to_s
52
+ source = doc.to_s
55
53
 
56
- Deface::Parser.undo_erb_markup!(source)
57
- end
54
+ Deface::Parser.undo_erb_markup!(source)
58
55
 
59
56
  source
60
57
  end
58
+
59
+ # converts the source to a supported syntax (ERB)
60
+ def convert_source(source, syntax:)
61
+ # convert haml/slim to erb before parsing before
62
+ case syntax
63
+ when :erb
64
+ source
65
+ when :haml
66
+ Deface::HamlConverter.new(source.to_s).result
67
+ when :slim
68
+ Deface::SlimConverter.new(source.to_s).result
69
+ else
70
+ raise "unsupported syntax: #{syntax}"
71
+ end
72
+ end
61
73
  end
62
74
 
63
75
  def execute_action(target_element)
@@ -1,32 +1,58 @@
1
1
  module Deface
2
2
  module TemplateHelper
3
+ def self.lookup_context
4
+ @lookup_context ||= ActionView::LookupContext.new(
5
+ ActionController::Base.view_paths, {:formats => [:html]}
6
+ )
7
+ end
3
8
 
4
9
  # used to find source for a partial or template using virtual_path
5
- def load_template_source(virtual_path, partial, apply_overrides=true)
10
+ def load_template_source(virtual_path, partial, apply_overrides=true, lookup_context: Deface::TemplateHelper.lookup_context)
6
11
  parts = virtual_path.split("/")
7
- prefix = []
12
+
8
13
  if parts.size == 2
9
- prefix << ""
14
+ prefix = ""
10
15
  name = virtual_path
11
16
  else
12
- prefix << parts.shift
17
+ prefix = parts.shift
13
18
  name = parts.join("/")
14
19
  end
15
20
 
16
- #this needs to be reviewed for production mode, overrides not present
17
- Rails.application.config.deface.enabled = apply_overrides
18
- @lookup_context ||= ActionView::LookupContext.new(ActionController::Base.view_paths, {:formats => [:html]})
19
- view = @lookup_context.disable_cache do
20
- @lookup_context.find(name, prefix, partial)
21
- end
21
+ view = lookup_context.disable_cache { lookup_context.find(name, [prefix], partial) }
22
22
 
23
- if view.handler.to_s == "Haml::Plugin"
24
- Deface::HamlConverter.new(view.source).result
25
- elsif view.handler.class.to_s == "Slim::RailsTemplate"
26
- Deface::SlimConverter.new(view.source).result
27
- else
28
- view.source
23
+ source =
24
+ if view.handler.to_s == "Haml::Plugin"
25
+ Deface::HamlConverter.new(view.source).result
26
+ elsif view.handler.class.to_s == "Slim::RailsTemplate"
27
+ Deface::SlimConverter.new(view.source).result
28
+ else
29
+ view.source
30
+ end
31
+
32
+ if apply_overrides
33
+ begin
34
+ # This needs to be reviewed for production mode, overrides not present
35
+ original_enabled = Rails.application.config.deface.enabled
36
+ Rails.application.config.deface.enabled = apply_overrides
37
+
38
+ syntax = Deface::ActionViewExtensions.determine_syntax(view.handler)
39
+ overrides = Deface::Override.find(
40
+ locals: view.instance_variable_get(:@locals),
41
+ format: view.instance_variable_get(:@format),
42
+ variant: view.instance_variable_get(:@variant),
43
+ virtual_path: view.instance_variable_get(:@virtual_path),
44
+ )
45
+
46
+ if syntax && overrides.any?
47
+ source = Deface::Override.convert_source(source, syntax: syntax)
48
+ source = Deface::Override.apply_overrides(source, overrides: overrides)
49
+ end
50
+ ensure
51
+ Rails.application.config.deface.enabled = original_enabled
52
+ end
29
53
  end
54
+
55
+ source
30
56
  end
31
57
 
32
58
  #gets source erb for an element
@@ -1,5 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Deface
4
- VERSION = "1.6.0"
4
+ VERSION = '1.8.1'
5
+
6
+ def gem_version
7
+ Gem::Version.new(VERSION)
8
+ end
5
9
  end
@@ -3,8 +3,12 @@ require 'spec_helper'
3
3
  describe Deface::ActionViewExtensions do
4
4
  include_context "mock Rails.application"
5
5
 
6
- before supports_updated_at: true do
7
- skip "Current Rails doesn't support the updated_at attribute on ActionView" unless supports_updated_at?
6
+ before after_rails_6: true do
7
+ skip "This spec is targeted at Rails v6+" if Deface.before_rails_6?
8
+ end
9
+
10
+ before before_rails_6: true do
11
+ skip "This spec is targeted at Rails before v6+" unless Deface.before_rails_6?
8
12
  end
9
13
 
10
14
  let(:template) { ActionView::Template.new(
@@ -12,7 +16,7 @@ describe Deface::ActionViewExtensions do
12
16
  path,
13
17
  handler,
14
18
  **options,
15
- **(supports_updated_at? ? {updated_at: updated_at} : {})
19
+ **(Deface.before_rails_6? ? {updated_at: updated_at} : {})
16
20
  ) }
17
21
 
18
22
  let(:source) { "<p>test</p>" }
@@ -26,7 +30,6 @@ describe Deface::ActionViewExtensions do
26
30
  let(:format) { :html }
27
31
  let(:virtual_path) { "posts/index" }
28
32
 
29
- let(:supports_updated_at?) { Deface.before_rails_6? }
30
33
  let(:updated_at) { Time.now - 600 }
31
34
 
32
35
  describe "with no overrides defined" do
@@ -38,46 +41,12 @@ describe Deface::ActionViewExtensions do
38
41
  expect(template.source).to eq("<p>test</p>")
39
42
  end
40
43
 
41
- it "should not change updated_at", :supports_updated_at do
44
+ it "should not change updated_at", :before_rails_6 do
42
45
  expect(template.updated_at).to eq(updated_at)
43
46
  end
44
47
  end
45
48
 
46
- describe "with a single remove override defined" do
47
- let(:updated_at) { Time.now - 300 }
48
- let(:source) { "<p>test</p><%= raw(text) %>" }
49
-
50
- before do
51
- Deface::Override.new(virtual_path: "posts/index", name: "Posts#index", remove: "p", text: "<h1>Argh!</h1>")
52
- end
53
-
54
- it "should return modified source" do
55
- expect(template.source).to eq("<%= raw(text) %>")
56
- end
57
-
58
- it "should change updated_at", :supports_updated_at do
59
- expect(template.updated_at).to be > updated_at
60
- end
61
- end
62
-
63
- describe "#method_name" do
64
- before do
65
- ActionView::Template.define_method(
66
- :method_name_without_deface,
67
- ActionView::Template.instance_method(:method_name)
68
- )
69
- end
70
-
71
- it "returns hash of overrides plus original method_name " do
72
- deface_hash = Deface::Override.digest(virtual_path: 'posts/index')
73
- super_method = template.method(:method_name).super_method
74
- method_name = "_#{Digest::MD5.new.update("#{deface_hash}_#{super_method.call}").hexdigest}"
75
-
76
- expect(template.send(:method_name)).to eq(method_name)
77
- end
78
- end
79
-
80
- describe "non erb or haml template" do
49
+ describe "unsupported template" do
81
50
  let(:source) { "xml.post => :blah" }
82
51
  let(:path) { "/some/path/to/file.erb" }
83
52
  let(:handler) { ActionView::Template::Handlers::Builder }
@@ -130,17 +99,55 @@ describe Deface::ActionViewExtensions do
130
99
  locals: local_assigns.keys
131
100
  } }
132
101
 
133
- let!(:deface) {
102
+ it 'renders the template modified by deface using :replace' do
134
103
  Deface::Override.new(
135
104
  virtual_path: virtual_path,
136
105
  name: "Posts#index",
137
106
  replace: "p",
138
107
  text: "<h1>Argh!</h1>"
139
108
  )
140
- }
141
109
 
142
- it 'renders the template modified by deface' do
143
110
  expect(template.render(view, local_assigns)).to eq(%{"<h1>Argh!</h1>some <br> text"})
144
111
  end
112
+
113
+ it 'renders the template modified by deface using :remove' do
114
+ Deface::Override.new(
115
+ virtual_path: virtual_path,
116
+ name: "Posts#index",
117
+ remove: "p",
118
+ )
119
+
120
+ expect(template.render(view, local_assigns)).to eq(%{"some <br> text"})
121
+ end
122
+
123
+ context 'with a haml template' do
124
+ let(:source) { "%p test\n= raw(text)\n" }
125
+ let(:handler) { Haml::Plugin }
126
+
127
+ it 'renders the template modified by deface using :remove' do
128
+ Deface::Override.new(
129
+ virtual_path: virtual_path,
130
+ name: "Posts#index",
131
+ remove: "p",
132
+ )
133
+
134
+ expect(template.render(view, local_assigns)).to eq(%{\nsome <br> text})
135
+ end
136
+ end
137
+
138
+ context 'with a slim template' do
139
+ let(:source) { "p test\n= raw(text)\n" }
140
+ let(:handler) { Slim::RailsTemplate.new }
141
+
142
+ it 'renders the template modified by deface using :remove' do
143
+ Deface::Override.new(
144
+ virtual_path: virtual_path,
145
+ name: "Posts#index",
146
+ remove: "p",
147
+ )
148
+
149
+ expect(template.render(view, local_assigns)).to eq(%{\nsome <br> text\n})
150
+ end
151
+ end
145
152
  end
146
153
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deface
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian D Quinn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-16 00:00:00.000000000 Z
11
+ date: 2021-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: gem-release
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rspec
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -209,6 +223,7 @@ files:
209
223
  - deface.gemspec
210
224
  - gemfiles/rails_5.2.gemfile
211
225
  - gemfiles/rails_6.0.gemfile
226
+ - gemfiles/rails_6.1.gemfile
212
227
  - gemfiles/rails_6_1.gemfile
213
228
  - lib/deface.rb
214
229
  - lib/deface/action_view_extensions.rb
@@ -326,7 +341,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
326
341
  - !ruby/object:Gem::Version
327
342
  version: '0'
328
343
  requirements: []
329
- rubygems_version: 3.2.3
344
+ rubygems_version: 3.1.4
330
345
  signing_key:
331
346
  specification_version: 4
332
347
  summary: Deface is a library that allows you to customize ERB, Haml and Slim views