simple_jsonapi_rails 1.1.0 → 1.1.1

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
  SHA1:
3
- metadata.gz: 54156ceb047d874781ddfed03c156591ad715c50
4
- data.tar.gz: 8d16312de66be3a1f767c522f8cee3345274ee8b
3
+ metadata.gz: 8e158d2536bbf8f13b80484a8cbf923735847230
4
+ data.tar.gz: b4013491327e08a1f4a714a186607f330e858cbd
5
5
  SHA512:
6
- metadata.gz: 02a985a3712fd7da77b28cc4a1b8f536ca7914127fc8d70bf2e280d7ab33071738896ab18a8715ac894e668b01eb56ed98aa552dd2d640e620f481ef954af7a3
7
- data.tar.gz: 6fd49421b5c11edf2b38a1b9f60c712d1ca4a9b08e450ad5c403421fe69ce3249c27cc95f37f62544351825454265d7bb0648f42cd170a623b12e339b4158951
6
+ metadata.gz: 737a8c8b15f36b15bf3f83e74f218e0af46c4c78b06a84762017226d4061898057c7b2875619479aebb73b976c0f6de1218f3fe1356d655f369e0c16158e4f79
7
+ data.tar.gz: 9ade29fba92a87cce3c5a4858635a469a7d39fbc6e287149b2ae29fac9013a560ac4623655228b678f77f3de75280c739d4648b0be92ba7b6c7705f9cb2eee76
data/.gitignore CHANGED
@@ -1,7 +1,7 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
3
  /_yardoc/
4
- /Gemfile.lock
4
+ Gemfile.lock
5
5
  /coverage/
6
6
  /doc/
7
7
  /pkg/
data/Appraisals ADDED
@@ -0,0 +1,14 @@
1
+ appraise "rails-51-rack-test-07" do
2
+ gem "rails", "~> 5.1.0"
3
+ gem "rack-test", "~> 0.7.0"
4
+ end
5
+
6
+ appraise "rails-52-rack-test-07" do
7
+ gem "rails", "~> 5.2.0"
8
+ gem "rack-test", "~> 0.7.0"
9
+ end
10
+
11
+ appraise "rails-52-rack-test-10" do
12
+ gem "rails", "~> 5.2.0"
13
+ gem "rack-test", "~> 1.0.0"
14
+ end
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## Version 1.1.1 - August 20, 2018
2
+ * Removes workaround for DELETE requests with rack-test 1.x
3
+ * Adds test coverage for Rails 5.2
4
+
1
5
  ## Version 1.1.0 - June 12, 2018
2
6
  * Adding 'show' to the list of valid routes, namespaced as 'fetch'
3
7
 
data/Jenkinsfile CHANGED
@@ -1,92 +1,3 @@
1
- pipeline {
2
- agent none
3
- options {
4
- timeout(time: 1, unit: 'HOURS')
5
- skipDefaultCheckout()
6
- }
1
+ @Library('plm-global-jenkins')_
7
2
 
8
- stages {
9
- stage("Build Ruby") {
10
- agent {
11
- node {
12
- label 'docker'
13
- }
14
- }
15
-
16
- steps {
17
- script {
18
- with_ruby_build() {
19
- script {
20
- uid = sh(returnStdout: true, script: 'stat -c %g .').trim()
21
- gid = sh(returnStdout: true, script: 'stat -c %u .').trim()
22
- }
23
-
24
- sh "chown -R ${uid}:${gid} vendor/bundle/"
25
- sh "rm -rf vendor/bundle/ruby/2.3.0/cache"
26
- stash name: 'ruby-bundle', includes: 'vendor/bundle/'
27
- }
28
- }
29
- }
30
- }
31
-
32
- stage("Test") {
33
- steps {
34
- script {
35
- node('docker') {
36
- checkout([
37
- $class: 'GitSCM',
38
- branches: scm.branches,
39
- doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
40
- extensions: scm.extensions + [[$class: 'CloneOption', noTags: true, reference: '', shallow: true]],
41
- userRemoteConfigs: scm.userRemoteConfigs
42
- ])
43
- try {
44
- docker.image('ruby:2.3.3').inside() {
45
- sh 'rm -rf vendor/bundle'
46
- unstash 'ruby-bundle'
47
- sh 'bundle install --path=vendor/bundle'
48
-
49
- withEnv([
50
- 'DISABLE_SPRING=1',
51
- 'TZ=America/New_York'
52
- ]) {
53
- sh 'bundle exec rake test'
54
- }
55
- }
56
- }
57
- finally {
58
- junit 'test/reports/'
59
- cleanWs()
60
- }
61
- }
62
- }
63
- }
64
- }
65
- }
66
-
67
- post {
68
- failure {
69
- script {
70
- if (env.BRANCH_NAME == 'master' || env.BRANCH_NAME == 'current') {
71
- slackSend (channel: '#plm_website', color: '#FF0000', message: "FAILED ${env.JOB_NAME} [${env.BUILD_NUMBER}] (${env.RUN_DISPLAY_URL})")
72
- }
73
- }
74
- }
75
- }
76
- }
77
-
78
- def with_ruby_build(closure) {
79
- docker.image('ruby:2.3.3').inside() {
80
- checkout([
81
- $class: 'GitSCM',
82
- branches: scm.branches,
83
- doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
84
- extensions: scm.extensions + [[$class: 'CloneOption', noTags: true, reference: '', shallow: true]],
85
- userRemoteConfigs: scm.userRemoteConfigs
86
- ])
87
- sh 'rm -rf vendor/bundle'
88
- sh 'bundle install --path=vendor/bundle'
89
- closure()
90
- cleanWs()
91
- }
92
- }
3
+ publishRubyPackagePipeline('./lib/simple_jsonapi/rails/version.rb', 'SimpleJsonapi::Rails::VERSION')
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake"
6
+ gem "rails", "~> 5.1.0"
7
+ gem "rack-test", "~> 0.7.0"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake"
6
+ gem "rails", "~> 5.2.0"
7
+ gem "rack-test", "~> 0.7.0"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake"
6
+ gem "rails", "~> 5.2.0"
7
+ gem "rack-test", "~> 1.0.0"
8
+
9
+ gemspec path: "../"
@@ -1,20 +1,22 @@
1
1
  # SimpleJsonapi::Rails::Railtie.initializers.each(&:run)
2
2
 
3
- # Work-around for rack-test/rack-test#200. Remove once that issue is resolved.
4
- module PatchRackTestDeleteRequests
5
- def request(uri, env = {}, &block)
6
- if env[:method] == :delete && env["HTTP_ACCEPT"] == SimpleJsonapi::MIME_TYPE && JSON.parse(env[:params]).present?
7
- env[:input] = env[:params]
8
- end
3
+ # Work-around for rack-test/rack-test#200, which is resolved in rack-test 1.0.0 (see rack-test/rack-test#223)
4
+ if Gem::Version.new(Rack::Test::VERSION) < Gem::Version.new("1.0.0")
5
+ module PatchRackTestDeleteRequests
6
+ def request(uri, env = {}, &block)
7
+ if env[:method] == :delete && env["HTTP_ACCEPT"] == SimpleJsonapi::MIME_TYPE && env[:params].present?
8
+ env[:input] = env[:params]
9
+ end
9
10
 
10
- super(uri, env, &block)
11
+ super(uri, env, &block)
12
+ end
11
13
  end
12
- end
13
14
 
14
- Rack::Test::Session.prepend(PatchRackTestDeleteRequests)
15
+ Rack::Test::Session.prepend(PatchRackTestDeleteRequests)
16
+ end
15
17
 
16
18
  ActiveSupport.on_load(:action_controller) do
17
19
  ActionDispatch::IntegrationTest.register_encoder :jsonapi,
18
- param_encoder: ->(params) { params.to_json },
19
- response_parser: ->(body) { JSON.parse(body) }
20
+ param_encoder: ->(params) { params&.to_json },
21
+ response_parser: ->(body) { JSON.parse(body) if body.present? }
20
22
  end
@@ -1,5 +1,5 @@
1
1
  module SimpleJsonapi
2
2
  module Rails
3
- VERSION = '1.1.0'.freeze
3
+ VERSION = '1.1.1'.freeze
4
4
  end
5
5
  end
@@ -21,12 +21,13 @@ Gem::Specification.new do |spec|
21
21
  spec.add_runtime_dependency 'simple_jsonapi'
22
22
  spec.add_runtime_dependency 'rails', '>= 4.2', '< 6.0'
23
23
 
24
- spec.add_development_dependency 'rails', '~> 5.1.0'
24
+ spec.add_development_dependency 'appraisal'
25
25
  spec.add_development_dependency 'bundler', '~> 1.10'
26
26
  spec.add_development_dependency 'listen'
27
27
  spec.add_development_dependency 'minitest'
28
- spec.add_development_dependency 'minitest-reporters'
28
+ spec.add_development_dependency 'minitest-reporters', '~> 1.1.11'
29
29
  spec.add_development_dependency 'pry'
30
+ spec.add_development_dependency 'rails', '~> 5.1.0'
30
31
  spec.add_development_dependency 'rake', '~> 10.0'
31
32
  spec.add_development_dependency 'sqlite3'
32
33
  spec.add_development_dependency 'will_paginate'
@@ -30,6 +30,11 @@ class OrdersController < ApiController
30
30
  render jsonapi_resource: order, serializer: OrderSerializer, status: :ok
31
31
  end
32
32
 
33
+ def destroy
34
+ Order.find(params[:id]).destroy
35
+ head :no_content
36
+ end
37
+
33
38
  private
34
39
 
35
40
  def order_params
@@ -9,5 +9,9 @@ Bundler.require(*Rails.groups)
9
9
  module Dummy
10
10
  class Application < Rails::Application
11
11
  config.load_defaults 5.1
12
+
13
+ if Gem::Version.new(Rails.version) >= Gem::Version.new("5.2.0")
14
+ Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
15
+ end
12
16
  end
13
17
  end
data/test/test_helper.rb CHANGED
@@ -3,9 +3,12 @@ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
3
  # Set up the dummy app
4
4
  ENV['RAILS_ENV'] = 'test'
5
5
  require_relative 'dummy/config/environment'
6
- # change to ActiveRecord::MigrationContext.new(File.expand_path("dummy/db/migrate/", __dir__)).migrate
7
- # when we upgrade rails >= 5.2.0
8
- ActiveRecord::Migrator.migrate File.expand_path("dummy/db/migrate/", __dir__)
6
+
7
+ if Gem::Version.new(Rails.version) < Gem::Version.new("5.2.0")
8
+ ActiveRecord::Migrator.migrate(File.expand_path("dummy/db/migrate/", __dir__))
9
+ else
10
+ ActiveRecord::MigrationContext.new(File.expand_path("dummy/db/migrate/", __dir__)).migrate
11
+ end
9
12
 
10
13
  require 'active_support'
11
14
 
@@ -0,0 +1,24 @@
1
+ require "test_helper"
2
+
3
+ class TestHelpersTest < ActionDispatch::IntegrationTest
4
+ before do
5
+ @controller = OrdersController.new
6
+ @routes = Dummy::Application.routes
7
+ end
8
+
9
+ let(:order) { Order.create!(customer_name: "Customer X", date: Date.today) }
10
+ let(:response_json) { response.parsed_body }
11
+
12
+ describe "parameter encoder" do
13
+ it "sends a DELETE request with no body as jsonapi" do
14
+ delete order_path(order), as: :jsonapi
15
+ assert_response :no_content
16
+ assert_operator response.parsed_body, :blank?
17
+ end
18
+
19
+ it "sends a DELETE request with a body as jsonapi" do
20
+ delete order_path(order), params: { data: { id: "foo" } }, as: :jsonapi
21
+ assert_response :no_content
22
+ end
23
+ end
24
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_jsonapi_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - PatientsLikeMe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-12 00:00:00.000000000 Z
11
+ date: 2018-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: simple_jsonapi
@@ -45,19 +45,19 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: '6.0'
47
47
  - !ruby/object:Gem::Dependency
48
- name: rails
48
+ name: appraisal
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - "~>"
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 5.1.0
53
+ version: '0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 5.1.0
60
+ version: '0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: bundler
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -104,16 +104,16 @@ dependencies:
104
104
  name: minitest-reporters
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - ">="
107
+ - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '0'
109
+ version: 1.1.11
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - ">="
114
+ - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '0'
116
+ version: 1.1.11
117
117
  - !ruby/object:Gem::Dependency
118
118
  name: pry
119
119
  requirement: !ruby/object:Gem::Requirement
@@ -128,6 +128,20 @@ dependencies:
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: rails
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 5.1.0
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: 5.1.0
131
145
  - !ruby/object:Gem::Dependency
132
146
  name: rake
133
147
  requirement: !ruby/object:Gem::Requirement
@@ -193,12 +207,16 @@ extra_rdoc_files: []
193
207
  files:
194
208
  - ".gitignore"
195
209
  - ".rubocop.yml"
210
+ - Appraisals
196
211
  - CHANGELOG.md
197
212
  - Gemfile
198
213
  - Jenkinsfile
199
214
  - LICENSE.txt
200
215
  - README.md
201
216
  - Rakefile
217
+ - gemfiles/rails_51_rack_test_07.gemfile
218
+ - gemfiles/rails_52_rack_test_07.gemfile
219
+ - gemfiles/rails_52_rack_test_10.gemfile
202
220
  - lib/simple_jsonapi/errors/active_model_error.rb
203
221
  - lib/simple_jsonapi/errors/active_model_error_serializer.rb
204
222
  - lib/simple_jsonapi/errors/active_record/record_not_found_serializer.rb
@@ -242,6 +260,7 @@ files:
242
260
  - test/errors/active_model_error_test.rb
243
261
  - test/errors/active_record/record_not_found_serializer_test.rb
244
262
  - test/test_helper.rb
263
+ - test/test_helpers_test.rb
245
264
  homepage: https://www.patientslikeme.com
246
265
  licenses:
247
266
  - MIT
@@ -296,3 +315,4 @@ test_files:
296
315
  - test/errors/active_model_error_test.rb
297
316
  - test/errors/active_record/record_not_found_serializer_test.rb
298
317
  - test/test_helper.rb
318
+ - test/test_helpers_test.rb