Skip to content

Commit 7ce046d

Browse files
authored
Merge pull request #1464 from dblock/glaucocustodio-rails-5-compatibility
Add Rails 5 appraisal.
2 parents 5804b28 + 07dcb66 commit 7ce046d

12 files changed

+58
-19
lines changed

.rubocop.yml

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
AllCops:
22
Include:
33
- Dangerfile
4+
- gemfiles/*.gemfile
45

56
Exclude:
67
- vendor/**/*

.travis.yml

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ matrix:
88
gemfile: Gemfile
99
before_script:
1010
- bundle exec danger
11+
- rvm: 2.3.1
12+
gemfile: gemfiles/rails_5.gemfile
1113
- rvm: 2.3.1
1214
gemfile: gemfiles/rack_1.5.2.gemfile
1315
- rvm: 2.3.0

Appraisals

+4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ appraise 'rails-4' do
77
gem 'rails', '4.1.6'
88
end
99

10+
appraise 'rails-5' do
11+
gem 'rails', '5.0.0'
12+
end
13+
1014
appraise 'rack-1.5.2' do
1115
gem 'rack', '1.5.2'
1216
end

Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ group :test do
2626
gem 'rack-test'
2727
gem 'rspec', '~> 3.0'
2828
gem 'cookiejar'
29-
gem 'rack-contrib'
29+
gem 'rack-jsonp', require: 'rack/jsonp'
3030
gem 'mime-types', '< 3.0'
3131
gem 'danger', '~> 2.0'
3232
end

gemfiles/rack_1.5.2.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ group :test do
2626
gem 'rack-test'
2727
gem 'rspec', '~> 3.0'
2828
gem 'cookiejar'
29-
gem 'rack-contrib'
29+
gem 'rack-jsonp', require: 'rack/jsonp'
3030
gem 'mime-types', '< 3.0'
3131
gem 'danger', '~> 2.0'
3232
end

gemfiles/rails_3.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ group :test do
2727
gem 'rack-test'
2828
gem 'rspec', '~> 3.0'
2929
gem 'cookiejar'
30-
gem 'rack-contrib'
30+
gem 'rack-jsonp', require: 'rack/jsonp'
3131
gem 'mime-types', '< 3.0'
3232
gem 'danger', '~> 2.0'
3333
end

gemfiles/rails_4.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ group :test do
2626
gem 'rack-test'
2727
gem 'rspec', '~> 3.0'
2828
gem 'cookiejar'
29-
gem 'rack-contrib'
29+
gem 'rack-jsonp', require: 'rack/jsonp'
3030
gem 'mime-types', '< 3.0'
3131
gem 'danger', '~> 2.0'
3232
end

gemfiles/rails_5.gemfile

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# This file was generated by Appraisal
2+
3+
source 'https://rubygems.org'
4+
5+
gem 'rails', '5.0.0'
6+
7+
group :development, :test do
8+
gem 'bundler'
9+
gem 'rake'
10+
gem 'rubocop', '0.39.0'
11+
end
12+
13+
group :development do
14+
gem 'guard'
15+
gem 'guard-rspec'
16+
gem 'guard-rubocop'
17+
gem 'yard'
18+
gem 'appraisal'
19+
gem 'benchmark-ips'
20+
gem 'redcarpet'
21+
end
22+
23+
group :test do
24+
gem 'grape-entity', '0.5.0'
25+
gem 'maruku'
26+
gem 'rack-test'
27+
gem 'rspec', '~> 3.0'
28+
gem 'cookiejar'
29+
gem 'rack-jsonp', require: 'rack/jsonp'
30+
gem 'mime-types', '< 3.0'
31+
gem 'danger', '~> 2.0'
32+
end
33+
34+
gemspec path: '../'

spec/grape/api_spec.rb

+11-4
Original file line numberDiff line numberDiff line change
@@ -374,12 +374,17 @@ def subject.enable_root_route!
374374
end
375375

376376
context 'format' do
377+
module ApiSpec
378+
class DummyFormatClass
379+
end
380+
end
381+
377382
before(:each) do
378-
allow_any_instance_of(Object).to receive(:to_json).and_return('abc')
379-
allow_any_instance_of(Object).to receive(:to_txt).and_return('def')
383+
allow_any_instance_of(ApiSpec::DummyFormatClass).to receive(:to_json).and_return('abc')
384+
allow_any_instance_of(ApiSpec::DummyFormatClass).to receive(:to_txt).and_return('def')
380385

381386
subject.get('/abc') do
382-
Object.new
387+
ApiSpec::DummyFormatClass.new
383388
end
384389
end
385390

@@ -1312,7 +1317,9 @@ def self.io
13121317
it 'defaults to a standard logger log format' do
13131318
t = Time.at(100)
13141319
allow(Time).to receive(:now).and_return(t)
1315-
expect(subject.io).to receive(:write).with("I, [#{Logger::Formatter.new.send(:format_datetime, t)}\##{Process.pid}] INFO -- : this will be logged\n")
1320+
message = "this will be logged\n"
1321+
message = "I, [#{Logger::Formatter.new.send(:format_datetime, t)}\##{Process.pid}] INFO -- : #{message}" if !defined?(Rails) || Gem::Version.new(Rails::VERSION::STRING) >= Gem::Version.new('4.0')
1322+
expect(subject.io).to receive(:write).with(message)
13161323
subject.logger.info 'this will be logged'
13171324
end
13181325
end

spec/grape/entity_spec.rb

-2
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,6 @@ def initialize(args)
266266
end
267267

268268
it 'presents with jsonp utilising Rack::JSONP' do
269-
require 'rack/contrib'
270-
271269
# Include JSONP middleware
272270
subject.use Rack::JSONP
273271

spec/grape/integration/rack_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
unless RUBY_PLATFORM == 'java'
2323
major, minor, patch = Rack.release.split('.').map(&:to_i)
2424
patch ||= 0 # rack <= 1.5.2 does not specify patch version
25-
pending 'Rack 1.5.3 or 1.6.1 required' unless major >= 1 && ((minor == 5 && patch >= 3) || (minor >= 6))
25+
pending 'Rack 1.5.3 or 1.6.1 required' unless major >= 2 || (major >= 1 && ((minor == 5 && patch >= 3) || (minor >= 6)))
2626
end
2727

2828
expect(JSON.parse(app.call(env)[2].body.first)['params_keys']).to match_array('test')

spec/spec_helper.rb

+1-8
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,7 @@
66

77
require 'rubygems'
88
require 'bundler'
9-
Bundler.setup :default, :test
10-
11-
require 'json'
12-
require 'rack/test'
13-
require 'base64'
14-
require 'cookiejar'
15-
require 'mime/types'
16-
require 'cgi'
9+
Bundler.require :default, :test
1710

1811
Dir["#{File.dirname(__FILE__)}/support/*.rb"].each do |file|
1912
require file

0 commit comments

Comments
 (0)