high_voltage 2.4.0 → 3.0.0

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: 56801929181e1df1b48361637a33d0e49431827f
4
- data.tar.gz: e5e8b40606fd4863b423cd682ae3bc0426d11af2
3
+ metadata.gz: f6fe8331cf7311ae941daea7a313a66e350a5565
4
+ data.tar.gz: d1f5bb5ec3984ce97f167a7e4b56c9936ff1a788
5
5
  SHA512:
6
- metadata.gz: 7baeff6c124d223bbe28962a65ad6fcfdddc7a505c15dd63c6fb0e52530508809c03acee1bc37bd10f65e36aea1d430ef714d00518c38370941d9fc397eaa3f6
7
- data.tar.gz: c9dd536f08b5ce08cf6ae7a479e3e4f99556d117611656c7ce795843046627f87da726bb5a83163a6a4131968a8081fbc637b89015d76f41daad9c4fab79d167
6
+ metadata.gz: 7b5f88d3c1b88243befa89c0e1c8e1640b9b1556ea070dcbb7eff8bfeab51c88d6907e6746730d9318c4a276f026f45695eefc800e9aba078bc4ee48714860a8
7
+ data.tar.gz: 949ae450736d58557bc15ecdcd6f33098ae2ada670563b9440e8b65e7883d12154ddc170d3f42d1147133d4452ccabe7d771707eef320779113e32bdccc636a7
@@ -7,9 +7,10 @@ install:
7
7
  language:
8
8
  - ruby
9
9
  rvm:
10
- - 2.0.0
11
- - 2.1.5
12
- - 2.2.0
10
+ - 2.0.0-p648
11
+ - 2.1.8
12
+ - 2.2.4
13
+ - 2.3.0
13
14
  script: 'bundle exec rake spec'
14
15
  notifications:
15
16
  email: false
data/Appraisals CHANGED
@@ -3,7 +3,11 @@ rails_versions = ['~> 4.0.0', '~> 4.1.0', '~> 4.2.0']
3
3
  rails_versions.each do |rails_version|
4
4
  appraise "rails#{rails_version.slice(/\d+\.\d+/)}" do
5
5
  gem 'rails', rails_version
6
- gem 'actionpack-action_caching'
7
- gem 'actionpack-page_caching'
8
6
  end
9
7
  end
8
+
9
+ appraise "rails50" do
10
+ gem "rails", "~> 5.0.0.beta3"
11
+ gem "rspec-rails", "3.5.0.beta1"
12
+ gem "rails-controller-testing"
13
+ end
data/Gemfile CHANGED
@@ -1,5 +1,6 @@
1
- source "http://rubygems.org"
2
-
3
- gem 'appraisal'
1
+ source "https://rubygems.org"
4
2
 
5
3
  gemspec
4
+
5
+ gem "appraisal"
6
+ gem "rspec-rails", "~> 3.2"
@@ -1,25 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- high_voltage (2.4.0)
4
+ high_voltage (3.0.0)
5
5
 
6
6
  GEM
7
- remote: http://rubygems.org/
7
+ remote: https://rubygems.org/
8
8
  specs:
9
- actionpack (4.2.0)
10
- actionview (= 4.2.0)
11
- activesupport (= 4.2.0)
12
- rack (~> 1.6.0)
9
+ actionpack (4.2.5.2)
10
+ actionview (= 4.2.5.2)
11
+ activesupport (= 4.2.5.2)
12
+ rack (~> 1.6)
13
13
  rack-test (~> 0.6.2)
14
14
  rails-dom-testing (~> 1.0, >= 1.0.5)
15
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
16
- actionview (4.2.0)
17
- activesupport (= 4.2.0)
15
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
16
+ actionview (4.2.5.2)
17
+ activesupport (= 4.2.5.2)
18
18
  builder (~> 3.1)
19
19
  erubis (~> 2.7.0)
20
20
  rails-dom-testing (~> 1.0, >= 1.0.5)
21
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
22
- activesupport (4.2.0)
21
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
22
+ activesupport (4.2.5.2)
23
23
  i18n (~> 0.7)
24
24
  json (~> 1.7, >= 1.7.7)
25
25
  minitest (~> 5.1)
@@ -34,55 +34,55 @@ GEM
34
34
  diff-lcs (1.2.5)
35
35
  erubis (2.7.0)
36
36
  i18n (0.7.0)
37
- json (1.8.2)
38
- loofah (2.0.1)
37
+ json (1.8.3)
38
+ loofah (2.0.3)
39
39
  nokogiri (>= 1.5.9)
40
40
  method_source (0.8.2)
41
- mini_portile (0.6.2)
42
- minitest (5.5.1)
43
- nokogiri (1.6.6.2)
44
- mini_portile (~> 0.6.0)
41
+ mini_portile2 (2.0.0)
42
+ minitest (5.8.4)
43
+ nokogiri (1.6.7.2)
44
+ mini_portile2 (~> 2.0.0.rc2)
45
45
  pry (0.10.1)
46
46
  coderay (~> 1.1.0)
47
47
  method_source (~> 0.8.1)
48
48
  slop (~> 3.4)
49
- rack (1.6.0)
49
+ rack (1.6.4)
50
50
  rack-test (0.6.3)
51
51
  rack (>= 1.0)
52
52
  rails-deprecated_sanitizer (1.0.3)
53
53
  activesupport (>= 4.2.0.alpha)
54
- rails-dom-testing (1.0.5)
54
+ rails-dom-testing (1.0.7)
55
55
  activesupport (>= 4.2.0.beta, < 5.0)
56
56
  nokogiri (~> 1.6.0)
57
57
  rails-deprecated_sanitizer (>= 1.0.1)
58
- rails-html-sanitizer (1.0.1)
58
+ rails-html-sanitizer (1.0.3)
59
59
  loofah (~> 2.0)
60
- railties (4.2.0)
61
- actionpack (= 4.2.0)
62
- activesupport (= 4.2.0)
60
+ railties (4.2.5.2)
61
+ actionpack (= 4.2.5.2)
62
+ activesupport (= 4.2.5.2)
63
63
  rake (>= 0.8.7)
64
64
  thor (>= 0.18.1, < 2.0)
65
- rake (10.4.2)
66
- rspec-core (3.2.1)
67
- rspec-support (~> 3.2.0)
68
- rspec-expectations (3.2.0)
65
+ rake (10.5.0)
66
+ rspec-core (3.4.3)
67
+ rspec-support (~> 3.4.0)
68
+ rspec-expectations (3.4.0)
69
69
  diff-lcs (>= 1.2.0, < 2.0)
70
- rspec-support (~> 3.2.0)
71
- rspec-mocks (3.2.1)
70
+ rspec-support (~> 3.4.0)
71
+ rspec-mocks (3.4.1)
72
72
  diff-lcs (>= 1.2.0, < 2.0)
73
- rspec-support (~> 3.2.0)
74
- rspec-rails (3.2.1)
73
+ rspec-support (~> 3.4.0)
74
+ rspec-rails (3.4.2)
75
75
  actionpack (>= 3.0, < 4.3)
76
76
  activesupport (>= 3.0, < 4.3)
77
77
  railties (>= 3.0, < 4.3)
78
- rspec-core (~> 3.2.0)
79
- rspec-expectations (~> 3.2.0)
80
- rspec-mocks (~> 3.2.0)
81
- rspec-support (~> 3.2.0)
82
- rspec-support (3.2.2)
78
+ rspec-core (~> 3.4.0)
79
+ rspec-expectations (~> 3.4.0)
80
+ rspec-mocks (~> 3.4.0)
81
+ rspec-support (~> 3.4.0)
82
+ rspec-support (3.4.1)
83
83
  slop (3.6.0)
84
84
  thor (0.19.1)
85
- thread_safe (0.3.4)
85
+ thread_safe (0.3.5)
86
86
  tzinfo (1.2.2)
87
87
  thread_safe (~> 0.1)
88
88
 
@@ -94,7 +94,7 @@ DEPENDENCIES
94
94
  appraisal
95
95
  high_voltage!
96
96
  pry
97
- rspec-rails (~> 3.2.0)
97
+ rspec-rails (~> 3.2)
98
98
 
99
99
  BUNDLED WITH
100
- 1.10.0
100
+ 1.11.2
data/NEWS.md CHANGED
@@ -1,3 +1,8 @@
1
+ New for 3.0.0
2
+ + HighVoltage now supports Rails 5.0.0.beta3 and up.
3
+ + Properly handle extensions in root route constraint requests.
4
+ + Removes caching in preparation for Rails 5.
5
+
1
6
  New for 2.4.0
2
7
  + Retrieve a list of available static pages via `HighVoltage.page_ids`.
3
8
  + Properly handle page ids which are blank when being sanitized.
data/README.md CHANGED
@@ -15,13 +15,9 @@ Yeah, like "About us", "Directions", marketing pages, etc.
15
15
  Include in your Gemfile:
16
16
 
17
17
  ```ruby
18
- gem 'high_voltage', '~> 2.3.0'
18
+ gem 'high_voltage', '~> 3.0.0'
19
19
  ```
20
20
 
21
- For Rails versions prior to 3.0, use the 0.9.2 tag of high_voltage:
22
-
23
- https://github.com/thoughtbot/high_voltage/tree/v0.9.2
24
-
25
21
  ## Usage
26
22
 
27
23
  Write your static pages and put them in the RAILS_ROOT/app/views/pages directory.
@@ -32,13 +28,13 @@ Write your static pages and put them in the RAILS_ROOT/app/views/pages directory
32
28
  After putting something interesting there, you can link to it from anywhere in your app with:
33
29
 
34
30
  ```ruby
35
- link_to 'About', page_path('about')
31
+ <%= link_to 'About', page_path('about') %>
36
32
  ```
37
33
 
38
34
  You can nest pages in a directory structure, if that makes sense from a URL perspective for you:
39
35
 
40
36
  ```ruby
41
- link_to 'Q4 Reports', page_path('about/corporate/policies/HR/en_US/biz/sales/Quarter-Four')
37
+ <%= link_to 'Q4 Reports', page_path('about/corporate/policies/HR/en_US/biz/sales/Quarter-Four') %>
42
38
  ```
43
39
 
44
40
  Bam.
@@ -168,7 +164,7 @@ end
168
164
 
169
165
  #### Caching
170
166
 
171
- Caching has been deprecated and will be removed in the next release.
167
+ Built in caching support has been removed in HighVoltage. See [PR 221](https://github.com/thoughtbot/high_voltage/pull/221).
172
168
 
173
169
  Page caching and action caching can be done via Rails. Visit the [Caching with
174
170
  Rails: An overview](http://guides.rubyonrails.org/caching_with_rails.html) guide
@@ -335,7 +331,7 @@ and [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers):
335
331
  # spec/controllers/pages_controller_spec.rb
336
332
  describe PagesController, '#show' do
337
333
  %w(earn_money screencast about contact).each do |page|
338
- context 'on GET to /pages/#{page}' do
334
+ context "on GET to /pages/#{page}" do
339
335
  before do
340
336
  get :show, id: page
341
337
  end
@@ -362,7 +358,7 @@ Thank you, [contributors]!
362
358
 
363
359
  ## License
364
360
 
365
- High Voltage is copyright © 2009-2015 thoughtbot. It is free software, and may
361
+ High Voltage is copyright © 2009-2016 thoughtbot. It is free software, and may
366
362
  be redistributed under the terms specified in the [`LICENSE`] file.
367
363
 
368
364
  [`LICENSE`]: /MIT-LICENSE
@@ -13,23 +13,18 @@ module HighVoltage::StaticPage
13
13
  end
14
14
 
15
15
  rescue_from HighVoltage::InvalidPageIdError, with: :invalid_page
16
-
17
- if respond_to?(:caches_action)
18
- caches_action :show, layout: HighVoltage.action_caching_layout,
19
- if: -> { HighVoltage.action_caching }
20
- end
21
-
22
- if respond_to?(:caches_page)
23
- caches_page :show, if: -> { HighVoltage.page_caching }
24
- end
25
-
26
- hide_action :current_page, :page_finder, :page_finder_factory
27
16
  end
28
17
 
29
18
  def show
30
19
  render template: current_page
31
20
  end
32
21
 
22
+ def invalid_page
23
+ raise ActionController::RoutingError, "No such page: #{params[:id]}"
24
+ end
25
+
26
+ private
27
+
33
28
  def current_page
34
29
  page_finder.find
35
30
  end
@@ -41,8 +36,4 @@ module HighVoltage::StaticPage
41
36
  def page_finder_factory
42
37
  HighVoltage::PageFinder
43
38
  end
44
-
45
- def invalid_page
46
- raise ActionController::RoutingError, "No such page: #{params[:id]}"
47
- end
48
39
  end
@@ -1,10 +1,9 @@
1
1
  # This file was generated by Appraisal
2
2
 
3
- source "http://rubygems.org"
3
+ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal"
6
+ gem "rspec-rails", "~> 3.2"
6
7
  gem "rails", "~> 4.0.0"
7
- gem "actionpack-action_caching"
8
- gem "actionpack-page_caching"
9
8
 
10
9
  gemspec :path => "../"
@@ -1,10 +1,9 @@
1
1
  # This file was generated by Appraisal
2
2
 
3
- source "http://rubygems.org"
3
+ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal"
6
+ gem "rspec-rails", "~> 3.2"
6
7
  gem "rails", "~> 4.1.0"
7
- gem "actionpack-action_caching"
8
- gem "actionpack-page_caching"
9
8
 
10
9
  gemspec :path => "../"
@@ -1,10 +1,9 @@
1
1
  # This file was generated by Appraisal
2
2
 
3
- source "http://rubygems.org"
3
+ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal"
6
+ gem "rspec-rails", "~> 3.2"
6
7
  gem "rails", "~> 4.2.0"
7
- gem "actionpack-action_caching"
8
- gem "actionpack-page_caching"
9
8
 
10
9
  gemspec :path => "../"
@@ -0,0 +1,10 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal"
6
+ gem "rspec-rails", "3.5.0.beta1"
7
+ gem "rails", "~> 5.0.0.beta3"
8
+ gem "rails-controller-testing"
9
+
10
+ gemspec :path => "../"
@@ -18,5 +18,4 @@ Gem::Specification.new do |s|
18
18
 
19
19
  s.add_development_dependency("activesupport", ">= 3.1.0")
20
20
  s.add_development_dependency("pry")
21
- s.add_development_dependency("rspec-rails", "~> 3.2.0")
22
21
  end
@@ -1,10 +1,5 @@
1
1
  module HighVoltage
2
2
  module Configuration
3
- CACHING_DEPRECATION_WARNING = <<-WARNING.strip_heredoc.squish
4
- Caching support has been deprecated and will be removed
5
- in the next release.
6
- WARNING
7
-
8
3
  attr_accessor(
9
4
  :content_path,
10
5
  :home_page,
@@ -14,8 +9,6 @@ module HighVoltage
14
9
  :routes,
15
10
  )
16
11
 
17
- attr_reader :action_caching, :action_caching_layout, :page_caching
18
-
19
12
  def configure
20
13
  yield self
21
14
  end
@@ -24,27 +17,6 @@ module HighVoltage
24
17
  base.set_default_configuration
25
18
  end
26
19
 
27
- def action_caching=(value)
28
- unless value == false
29
- ActiveSupport::Deprecation.warn(CACHING_DEPRECATION_WARNING)
30
- end
31
- @action_caching = value
32
- end
33
-
34
- def action_caching_layout=(value)
35
- unless value == false
36
- ActiveSupport::Deprecation.warn(CACHING_DEPRECATION_WARNING)
37
- end
38
- @action_caching_layout = value
39
- end
40
-
41
- def page_caching=(value)
42
- unless value == false
43
- ActiveSupport::Deprecation.warn(CACHING_DEPRECATION_WARNING)
44
- end
45
- @page_caching = value
46
- end
47
-
48
20
  def page_ids
49
21
  HighVoltage::PageCollector.new(HighVoltage.full_path).page_ids
50
22
  end
@@ -54,10 +26,6 @@ module HighVoltage
54
26
  end
55
27
 
56
28
  def set_default_configuration
57
- @action_caching = false
58
- @action_caching_layout = true
59
- @page_caching = false
60
-
61
29
  self.content_path = 'pages/'
62
30
  self.home_page = nil
63
31
  self.layout = 'application'
@@ -2,20 +2,27 @@ module HighVoltage
2
2
  module Constraints
3
3
  # Routing constraint to validate request.path has a corresponding view
4
4
  class RootRoute
5
- def self.matches?(request)
6
- pattern = file_pattern(request.path)
5
+ class << self
6
+ def matches?(request)
7
+ page_id = clean_page_path(request.path)
8
+ pattern = file_pattern(page_id)
7
9
 
8
- Dir.glob(pattern).any?
9
- end
10
+ Dir.glob(pattern).any?
11
+ end
10
12
 
11
- private
13
+ private
12
14
 
13
- def self.file_pattern(page_id)
14
- "#{content_path}#{page_id}.html*"
15
- end
15
+ def clean_page_path(request_path)
16
+ request_path.sub(/\.html$/, "")
17
+ end
18
+
19
+ def file_pattern(page_id)
20
+ "#{content_path}#{page_id}.html*"
21
+ end
16
22
 
17
- def self.content_path
18
- Rails.root.join('app', 'views', HighVoltage.content_path).to_s
23
+ def content_path
24
+ Rails.root.join("app", "views", HighVoltage.content_path).to_s
25
+ end
19
26
  end
20
27
  end
21
28
  end
@@ -1,3 +1,3 @@
1
1
  module HighVoltage
2
- VERSION = "2.4.0".freeze
2
+ VERSION = "3.0.0".freeze
3
3
  end
@@ -1,18 +1,33 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
- describe HighVoltage::Constraints::RootRoute, '.matches?' do
4
- it 'returns true when the view file exists' do
3
+ describe HighVoltage::Constraints::RootRoute, ".matches?" do
4
+ it "returns true when the view file exists" do
5
5
  request = double(path: 'index')
6
- allow(Dir).to receive(:glob).and_return(["about.html.erb"])
6
+ file_path = Rails.root.join("app", "views", "pages", "index.html*").to_s
7
+
8
+ allow(Dir).to receive(:glob).with(file_path).and_return(["about.html.erb"])
7
9
 
8
10
  result = HighVoltage::Constraints::RootRoute.matches?(request)
9
11
 
10
12
  expect(result).to be true
11
13
  end
12
14
 
13
- it 'returns false when the view files does not exist' do
15
+ it "returns true when the view file exists and url ends with .html" do
16
+ request = double(path: "index.html")
17
+ file_path = Rails.root.join("app", "views", "pages", "index.html*").to_s
18
+
19
+ allow(Dir).to receive(:glob).with(file_path).and_return(["about.html.erb"])
20
+
21
+ result = HighVoltage::Constraints::RootRoute.matches?(request)
22
+
23
+ expect(result).to be true
24
+ end
25
+
26
+ it "returns false when the view files does not exist" do
14
27
  request = double(path: 'index')
15
- allow(File).to receive(:glob).and_return([])
28
+ file_path = Rails.root.join("app", "views", "pages", "index", ".html*").to_s
29
+
30
+ allow(File).to receive(:glob).with(file_path).and_return([])
16
31
 
17
32
  result = HighVoltage::Constraints::RootRoute.matches?(request)
18
33
 
@@ -7,11 +7,8 @@ describe HighVoltage::Configuration do
7
7
  before(:each) do
8
8
  HighVoltage.configure do |config|
9
9
  ActiveSupport::Deprecation.silence do
10
- config.action_caching = config_value
11
- config.action_caching_layout = config_value
12
10
  config.content_path = config_value
13
11
  config.layout = config_value
14
- config.page_caching = config_value
15
12
  config.parent_engine = config_value
16
13
  config.route_drawer = config_value
17
14
  config.routes = config_value
@@ -25,109 +22,10 @@ describe HighVoltage::Configuration do
25
22
  end
26
23
  end
27
24
 
28
- it { expect(HighVoltage.action_caching).to eq config_value }
29
- it { expect(HighVoltage.action_caching_layout).to eq config_value }
30
25
  it { expect(HighVoltage.content_path).to eq config_value }
31
26
  it { expect(HighVoltage.layout).to eq config_value }
32
- it { expect(HighVoltage.page_caching).to eq config_value }
33
27
  it { expect(HighVoltage.parent_engine).to eq config_value }
34
28
  it { expect(HighVoltage.route_drawer).to eq config_value }
35
29
  it { expect(HighVoltage.routes).to eq config_value }
36
30
  end
37
-
38
- describe "#action_caching" do
39
- context "action caching is enabled" do
40
- it 'displays a deprecation warning' do
41
- allow(ActiveSupport::Deprecation).to receive(:warn)
42
-
43
- HighVoltage.configure do |config|
44
- config.action_caching = true
45
- end
46
-
47
- expect(ActiveSupport::Deprecation).to have_received(:warn)
48
- .with(HighVoltage::Configuration::CACHING_DEPRECATION_WARNING)
49
- end
50
- end
51
-
52
- context "action caching is disabled" do
53
- it 'does not display a deprecation warning' do
54
- allow(ActiveSupport::Deprecation).to receive(:warn)
55
-
56
- HighVoltage.configure do |config|
57
- config.action_caching = false
58
- end
59
-
60
- expect(ActiveSupport::Deprecation).not_to have_received(:warn)
61
- .with(HighVoltage::Configuration::CACHING_DEPRECATION_WARNING)
62
- end
63
- end
64
- end
65
-
66
- describe "#action_caching_layout" do
67
- context "action caching layout is enabled" do
68
- it 'displays a deprecation warning' do
69
- allow(ActiveSupport::Deprecation).to receive(:warn)
70
-
71
- HighVoltage.configure do |config|
72
- config.action_caching_layout = true
73
- end
74
-
75
- expect(ActiveSupport::Deprecation).to have_received(:warn)
76
- .with(HighVoltage::Configuration::CACHING_DEPRECATION_WARNING)
77
- end
78
- end
79
-
80
- context "action caching layout is disabled" do
81
- it "does not display a deprecation warning" do
82
- allow(ActiveSupport::Deprecation).to receive(:warn)
83
-
84
- HighVoltage.configure do |config|
85
- config.action_caching_layout = false
86
- end
87
-
88
- expect(ActiveSupport::Deprecation).not_to have_received(:warn)
89
- .with(HighVoltage::Configuration::CACHING_DEPRECATION_WARNING)
90
- end
91
- end
92
- end
93
-
94
- describe "#page_caching" do
95
- context "page caching is enabled" do
96
- it "displays a deprecation warning" do
97
- allow(ActiveSupport::Deprecation).to receive(:warn)
98
-
99
- HighVoltage.configure do |config|
100
- config.page_caching = true
101
- end
102
-
103
- expect(ActiveSupport::Deprecation).to have_received(:warn)
104
- .with(HighVoltage::Configuration::CACHING_DEPRECATION_WARNING)
105
- end
106
- end
107
-
108
- context "page caching is disbled" do
109
- it "does not display a deprecation warning" do
110
- allow(ActiveSupport::Deprecation).to receive(:warn)
111
-
112
- HighVoltage.configure do |config|
113
- config.page_caching = false
114
- end
115
-
116
- expect(ActiveSupport::Deprecation).not_to have_received(:warn)
117
- .with(HighVoltage::Configuration::CACHING_DEPRECATION_WARNING)
118
- end
119
- end
120
- end
121
-
122
- describe '#set_default_configuration' do
123
- it 'defaults caching without a deprecation warning' do
124
- allow(ActiveSupport::Deprecation).to receive(:warn)
125
-
126
- Class.new do
127
- extend HighVoltage::Configuration
128
- end
129
-
130
- expect(ActiveSupport::Deprecation).not_to have_received(:warn)
131
- end
132
- end
133
31
  end
@@ -4,8 +4,6 @@ require "pry"
4
4
  require "active_model/railtie"
5
5
  require "action_controller/railtie"
6
6
  require "action_view/railtie"
7
- require "actionpack/action_caching/railtie"
8
- require "actionpack/page_caching/railtie"
9
7
  require "rspec/rails"
10
8
 
11
9
  require "high_voltage"
@@ -30,4 +28,13 @@ RSpec.configure do |config|
30
28
  config.include RSpec::Matchers
31
29
  config.mock_with :rspec
32
30
  config.order = "random"
31
+
32
+ if Rails::VERSION::MAJOR >= 5
33
+ require "rails-controller-testing"
34
+
35
+ config.include(
36
+ Rails::Controller::Testing::TemplateAssertions,
37
+ type: :controller,
38
+ )
39
+ end
33
40
  end
@@ -0,0 +1,15 @@
1
+ # Rails 5 deprecates calling HTTP action methods with positional arguments
2
+ # in favor of keyword arguments. However, the keyword argument form is only
3
+ # supported in Rails 5+. Since we support back to 4, we need some sort of shim
4
+ # to avoid super noisy deprecations when running tests.
5
+ module HTTPMethodShim
6
+ def get(path, params = nil, headers = nil)
7
+ super(path, params: params, headers: headers)
8
+ end
9
+ end
10
+
11
+ if Rails::VERSION::MAJOR >= 5
12
+ RSpec.configure do |config|
13
+ config.include HTTPMethodShim, type: :controller
14
+ end
15
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: high_voltage
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Jankowski
@@ -16,7 +16,7 @@ authors:
16
16
  autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2015-07-17 00:00:00.000000000 Z
19
+ date: 2016-04-15 00:00:00.000000000 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: activesupport
@@ -46,20 +46,6 @@ dependencies:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
- - !ruby/object:Gem::Dependency
50
- name: rspec-rails
51
- requirement: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: 3.2.0
56
- type: :development
57
- prerelease: false
58
- version_requirements: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: 3.2.0
63
49
  description: Fire in the disco. Fire in the ... taco bell.
64
50
  email:
65
51
  - support@thoughtbot.com
@@ -83,6 +69,7 @@ files:
83
69
  - gemfiles/rails4.0.gemfile
84
70
  - gemfiles/rails4.1.gemfile
85
71
  - gemfiles/rails4.2.gemfile
72
+ - gemfiles/rails50.gemfile
86
73
  - high_voltage.gemspec
87
74
  - lib/high_voltage.rb
88
75
  - lib/high_voltage/configuration.rb
@@ -95,9 +82,7 @@ files:
95
82
  - lib/high_voltage/route_drawers/root.rb
96
83
  - lib/high_voltage/version.rb
97
84
  - spec/constraints/root_route_spec.rb
98
- - spec/controllers/action_caching_controller_spec.rb
99
85
  - spec/controllers/alternative_finder_controller_spec.rb
100
- - spec/controllers/page_caching_controller_spec.rb
101
86
  - spec/controllers/pages_controller_spec.rb
102
87
  - spec/controllers/subclassed_pages_controller_spec.rb
103
88
  - spec/fake_app.rb
@@ -131,6 +116,7 @@ files:
131
116
  - spec/spec_helper.rb
132
117
  - spec/support/app/controllers/alternative_finder_controller.rb
133
118
  - spec/support/app/controllers/subclassed_pages_controller.rb
119
+ - spec/support/http_method_shim.rb
134
120
  homepage: http://github.com/thoughtbot/high_voltage
135
121
  licenses:
136
122
  - MIT
@@ -151,15 +137,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
137
  version: '0'
152
138
  requirements: []
153
139
  rubyforge_project:
154
- rubygems_version: 2.4.5
140
+ rubygems_version: 2.5.1
155
141
  signing_key:
156
142
  specification_version: 4
157
143
  summary: Simple static page rendering controller
158
144
  test_files:
159
145
  - spec/constraints/root_route_spec.rb
160
- - spec/controllers/action_caching_controller_spec.rb
161
146
  - spec/controllers/alternative_finder_controller_spec.rb
162
- - spec/controllers/page_caching_controller_spec.rb
163
147
  - spec/controllers/pages_controller_spec.rb
164
148
  - spec/controllers/subclassed_pages_controller_spec.rb
165
149
  - spec/fake_app.rb
@@ -193,3 +177,4 @@ test_files:
193
177
  - spec/spec_helper.rb
194
178
  - spec/support/app/controllers/alternative_finder_controller.rb
195
179
  - spec/support/app/controllers/subclassed_pages_controller.rb
180
+ - spec/support/http_method_shim.rb
@@ -1,38 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe HighVoltage::PagesController, '#action_caching' do
4
- let(:page_name) { :exists }
5
-
6
- context 'action_caching set to true' do
7
- after do
8
- set_action_caching_without_deprecation(false)
9
- end
10
-
11
- it 'caches the action' do
12
- allow(controller).to receive(:_save_fragment)
13
- set_action_caching_without_deprecation(true)
14
-
15
- get :show, id: page_name
16
-
17
- expect(controller).to have_received(:_save_fragment)
18
- .with("test.host#{page_path(page_name)}", {})
19
- end
20
- end
21
-
22
- context 'action_caching set to false' do
23
- it 'does not cache the action' do
24
- allow(controller).to receive(:_save_fragment)
25
- set_action_caching_without_deprecation(false)
26
-
27
- get :show, id: page_name
28
-
29
- expect(controller).not_to have_received(:_save_fragment)
30
- end
31
- end
32
-
33
- def set_action_caching_without_deprecation(value)
34
- ActiveSupport::Deprecation.silence do
35
- HighVoltage.action_caching = value
36
- end
37
- end
38
- end
@@ -1,37 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe HighVoltage::PagesController, '#cache_page' do
4
- let(:page_name) { :exists }
5
-
6
- context 'page_caching set to true' do
7
- after do
8
- set_page_caching_without_deprecation(false)
9
- end
10
-
11
- it 'caches the page' do
12
- allow(controller).to receive(:cache_page)
13
- set_page_caching_without_deprecation(true)
14
-
15
- get :show, id: page_name
16
-
17
- expect(controller).to have_received(:cache_page)
18
- end
19
- end
20
-
21
- context 'page_caching set to false' do
22
- it 'does not cache the page' do
23
- allow(controller).to receive(:cache_page)
24
- set_page_caching_without_deprecation(false)
25
-
26
- get :show, id: page_name
27
-
28
- expect(controller).not_to have_received(:cache_page)
29
- end
30
- end
31
-
32
- def set_page_caching_without_deprecation(value)
33
- ActiveSupport::Deprecation.silence do
34
- HighVoltage.page_caching = value
35
- end
36
- end
37
- end