simple_jsonapi_rails 1.1.0 → 1.1.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: 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