simple_json_api-rails 0.0.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.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +32 -0
  4. data/lib/simple_json_api/rails.rb +10 -0
  5. data/lib/simple_json_api/rails/railtie.rb +20 -0
  6. data/lib/simple_json_api/rails/version.rb +5 -0
  7. data/test/dummy/README.rdoc +28 -0
  8. data/test/dummy/Rakefile +6 -0
  9. data/test/dummy/app/assets/javascripts/application.js +13 -0
  10. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  11. data/test/dummy/app/controllers/animals_controller.rb +11 -0
  12. data/test/dummy/app/controllers/application_controller.rb +5 -0
  13. data/test/dummy/app/helpers/application_helper.rb +2 -0
  14. data/test/dummy/app/models/animal.rb +2 -0
  15. data/test/dummy/app/serializers/animal_serializer.rb +5 -0
  16. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  17. data/test/dummy/bin/bundle +3 -0
  18. data/test/dummy/bin/rails +4 -0
  19. data/test/dummy/bin/rake +4 -0
  20. data/test/dummy/config.ru +4 -0
  21. data/test/dummy/config/application.rb +22 -0
  22. data/test/dummy/config/boot.rb +5 -0
  23. data/test/dummy/config/database.yml +25 -0
  24. data/test/dummy/config/environment.rb +5 -0
  25. data/test/dummy/config/environments/development.rb +37 -0
  26. data/test/dummy/config/environments/production.rb +78 -0
  27. data/test/dummy/config/environments/test.rb +39 -0
  28. data/test/dummy/config/initializers/assets.rb +8 -0
  29. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  30. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  31. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  32. data/test/dummy/config/initializers/inflections.rb +16 -0
  33. data/test/dummy/config/initializers/mime_types.rb +4 -0
  34. data/test/dummy/config/initializers/session_store.rb +3 -0
  35. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  36. data/test/dummy/config/locales/en.yml +23 -0
  37. data/test/dummy/config/routes.rb +3 -0
  38. data/test/dummy/config/secrets.yml +22 -0
  39. data/test/dummy/db/development.sqlite3 +0 -0
  40. data/test/dummy/db/migrate/20150323200619_create_animals.rb +9 -0
  41. data/test/dummy/db/schema.rb +22 -0
  42. data/test/dummy/db/test.sqlite3 +0 -0
  43. data/test/dummy/log/development.log +10 -0
  44. data/test/dummy/log/test.log +5545 -0
  45. data/test/dummy/public/404.html +67 -0
  46. data/test/dummy/public/422.html +67 -0
  47. data/test/dummy/public/500.html +66 -0
  48. data/test/dummy/public/favicon.ico +0 -0
  49. data/test/fixtures/animals.yml +5 -0
  50. data/test/integration/animals_controller_test.rb +25 -0
  51. data/test/module_test.rb +9 -0
  52. data/test/railtie_test.rb +13 -0
  53. data/test/renderer_test.rb +45 -0
  54. data/test/test_helper.rb +23 -0
  55. metadata +173 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,5 @@
1
+ one:
2
+ common_name: Western Gorilla
3
+
4
+ two:
5
+ common_name: Lion
@@ -0,0 +1,25 @@
1
+ require 'test_helper'
2
+
3
+ describe AnimalsController do
4
+ let(:animal) { Animal.first }
5
+
6
+ describe 'content type' do
7
+ let(:mime_type) { 'application/vnd.api+json' }
8
+
9
+ it 'is the expected content type' do
10
+ get :show, id: animal.id, format: :jsonapi
11
+ response.headers['Content-Type'].must_match /#{Regexp.escape(mime_type)}/
12
+ end
13
+ end
14
+
15
+ describe 'rendering' do
16
+ let(:rendered) { 'bob' }
17
+
18
+ it 'uses SimpleJsonApi.render' do
19
+ SimpleJsonApi.stub :render, rendered do
20
+ get :show, id: animal.id, format: :jsonapi
21
+ response.body.must_equal rendered
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ module SimpleJsonApi
4
+ describe Rails do
5
+ it 'is a valid module' do
6
+ SimpleJsonApi::Rails.must_be_kind_of Module
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ require 'test_helper'
2
+
3
+ describe 'mimetype' do
4
+ it 'is registered' do
5
+ Mime::LOOKUP.must_include 'application/vnd.api+json'
6
+ end
7
+ end
8
+
9
+ describe 'renderer' do
10
+ it 'is available' do
11
+ ActionController::Renderers::RENDERERS.must_include :jsonapi
12
+ end
13
+ end
@@ -0,0 +1,45 @@
1
+ require 'test_helper'
2
+
3
+ class RendererTestController < ActionController::Base
4
+ def self.controller_path
5
+ 'test'
6
+ end
7
+
8
+ def object
9
+ Animal.first
10
+ end
11
+
12
+ def render_without_serializer
13
+ render jsonapi: object
14
+ end
15
+
16
+ def render_with_respond_to
17
+ respond_to do |format|
18
+ format.jsonapi { render jsonapi: object, serializer: AnimalSerializer }
19
+ end
20
+ end
21
+ end
22
+
23
+ describe RendererTestController do
24
+ let(:animal_jsonapi) { }
25
+ before do
26
+ Rails.application.routes.append do
27
+ resources :test do
28
+ collection do
29
+ get :render_without_serializer
30
+ get :render_with_respond_to
31
+ end
32
+ end
33
+ end
34
+ Rails.application.routes_reloader.reload!
35
+ end
36
+
37
+ it 'errors without a serializer' do
38
+ -> { get :render_without_serializer }.must_raise ArgumentError
39
+ end
40
+
41
+ it 'renders with respond_to' do
42
+ get :render_with_respond_to, format: :jsonapi
43
+ must_respond_with 200
44
+ end
45
+ end
@@ -0,0 +1,23 @@
1
+ # Configure Rails Environment
2
+ ENV['RAILS_ENV'] = 'test'
3
+
4
+ require 'minitest/spec'
5
+
6
+ require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
7
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path('../../test/dummy/db/migrate', __FILE__)]
8
+ require 'rails/test_help'
9
+
10
+ # Filter out Minitest backtrace while allowing backtrace from other libraries
11
+ # to be shown.
12
+ Minitest.backtrace_filter = Minitest::BacktraceFilter.new
13
+
14
+ # Load support files
15
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
16
+
17
+ class ActiveSupport::TestCase
18
+ fixtures :all
19
+ end
20
+
21
+ require 'minitest/rails'
22
+
23
+ require 'simple_json_api/rails'
metadata ADDED
@@ -0,0 +1,173 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simple_json_api-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - David Jacques
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: simple_json_api
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.0.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.0.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 4.1.10
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 4.1.10
41
+ description:
42
+ email:
43
+ - david@twojs.org
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - MIT-LICENSE
49
+ - Rakefile
50
+ - lib/simple_json_api/rails.rb
51
+ - lib/simple_json_api/rails/railtie.rb
52
+ - lib/simple_json_api/rails/version.rb
53
+ - test/dummy/README.rdoc
54
+ - test/dummy/Rakefile
55
+ - test/dummy/app/assets/javascripts/application.js
56
+ - test/dummy/app/assets/stylesheets/application.css
57
+ - test/dummy/app/controllers/animals_controller.rb
58
+ - test/dummy/app/controllers/application_controller.rb
59
+ - test/dummy/app/helpers/application_helper.rb
60
+ - test/dummy/app/models/animal.rb
61
+ - test/dummy/app/serializers/animal_serializer.rb
62
+ - test/dummy/app/views/layouts/application.html.erb
63
+ - test/dummy/bin/bundle
64
+ - test/dummy/bin/rails
65
+ - test/dummy/bin/rake
66
+ - test/dummy/config.ru
67
+ - test/dummy/config/application.rb
68
+ - test/dummy/config/boot.rb
69
+ - test/dummy/config/database.yml
70
+ - test/dummy/config/environment.rb
71
+ - test/dummy/config/environments/development.rb
72
+ - test/dummy/config/environments/production.rb
73
+ - test/dummy/config/environments/test.rb
74
+ - test/dummy/config/initializers/assets.rb
75
+ - test/dummy/config/initializers/backtrace_silencers.rb
76
+ - test/dummy/config/initializers/cookies_serializer.rb
77
+ - test/dummy/config/initializers/filter_parameter_logging.rb
78
+ - test/dummy/config/initializers/inflections.rb
79
+ - test/dummy/config/initializers/mime_types.rb
80
+ - test/dummy/config/initializers/session_store.rb
81
+ - test/dummy/config/initializers/wrap_parameters.rb
82
+ - test/dummy/config/locales/en.yml
83
+ - test/dummy/config/routes.rb
84
+ - test/dummy/config/secrets.yml
85
+ - test/dummy/db/development.sqlite3
86
+ - test/dummy/db/migrate/20150323200619_create_animals.rb
87
+ - test/dummy/db/schema.rb
88
+ - test/dummy/db/test.sqlite3
89
+ - test/dummy/log/development.log
90
+ - test/dummy/log/test.log
91
+ - test/dummy/public/404.html
92
+ - test/dummy/public/422.html
93
+ - test/dummy/public/500.html
94
+ - test/dummy/public/favicon.ico
95
+ - test/fixtures/animals.yml
96
+ - test/integration/animals_controller_test.rb
97
+ - test/module_test.rb
98
+ - test/railtie_test.rb
99
+ - test/renderer_test.rb
100
+ - test/test_helper.rb
101
+ homepage: ''
102
+ licenses:
103
+ - MIT
104
+ metadata: {}
105
+ post_install_message:
106
+ rdoc_options: []
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ requirements: []
120
+ rubyforge_project:
121
+ rubygems_version: 2.2.2
122
+ signing_key:
123
+ specification_version: 4
124
+ summary: SimpleJsonApi configuration for Rails apps
125
+ test_files:
126
+ - test/dummy/app/assets/javascripts/application.js
127
+ - test/dummy/app/assets/stylesheets/application.css
128
+ - test/dummy/app/controllers/animals_controller.rb
129
+ - test/dummy/app/controllers/application_controller.rb
130
+ - test/dummy/app/helpers/application_helper.rb
131
+ - test/dummy/app/models/animal.rb
132
+ - test/dummy/app/serializers/animal_serializer.rb
133
+ - test/dummy/app/views/layouts/application.html.erb
134
+ - test/dummy/bin/bundle
135
+ - test/dummy/bin/rails
136
+ - test/dummy/bin/rake
137
+ - test/dummy/config/application.rb
138
+ - test/dummy/config/boot.rb
139
+ - test/dummy/config/database.yml
140
+ - test/dummy/config/environment.rb
141
+ - test/dummy/config/environments/development.rb
142
+ - test/dummy/config/environments/production.rb
143
+ - test/dummy/config/environments/test.rb
144
+ - test/dummy/config/initializers/assets.rb
145
+ - test/dummy/config/initializers/backtrace_silencers.rb
146
+ - test/dummy/config/initializers/cookies_serializer.rb
147
+ - test/dummy/config/initializers/filter_parameter_logging.rb
148
+ - test/dummy/config/initializers/inflections.rb
149
+ - test/dummy/config/initializers/mime_types.rb
150
+ - test/dummy/config/initializers/session_store.rb
151
+ - test/dummy/config/initializers/wrap_parameters.rb
152
+ - test/dummy/config/locales/en.yml
153
+ - test/dummy/config/routes.rb
154
+ - test/dummy/config/secrets.yml
155
+ - test/dummy/config.ru
156
+ - test/dummy/db/development.sqlite3
157
+ - test/dummy/db/migrate/20150323200619_create_animals.rb
158
+ - test/dummy/db/schema.rb
159
+ - test/dummy/db/test.sqlite3
160
+ - test/dummy/log/development.log
161
+ - test/dummy/log/test.log
162
+ - test/dummy/public/404.html
163
+ - test/dummy/public/422.html
164
+ - test/dummy/public/500.html
165
+ - test/dummy/public/favicon.ico
166
+ - test/dummy/Rakefile
167
+ - test/dummy/README.rdoc
168
+ - test/fixtures/animals.yml
169
+ - test/integration/animals_controller_test.rb
170
+ - test/module_test.rb
171
+ - test/railtie_test.rb
172
+ - test/renderer_test.rb
173
+ - test/test_helper.rb