praxis 0.9 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CHANGELOG.md +51 -0
  4. data/CONTRIBUTING.md +3 -2
  5. data/Gemfile +1 -1
  6. data/README.md +5 -3
  7. data/lib/api_browser/app/css/main.css +4 -0
  8. data/lib/api_browser/app/js/directives/attribute_description.js +17 -14
  9. data/lib/api_browser/app/js/directives/type_label.js +7 -7
  10. data/lib/api_browser/app/sass/modules/_body.scss +8 -1
  11. data/lib/api_browser/app/views/directives/attribute_description/_example.html +9 -4
  12. data/lib/api_browser/app/views/directives/attribute_table_row/_links.html +4 -3
  13. data/lib/api_browser/app/views/resource/_actions.html +11 -5
  14. data/lib/praxis/action_definition/headers_dsl_compiler.rb +6 -6
  15. data/lib/praxis/action_definition.rb +19 -4
  16. data/lib/praxis/api_definition.rb +3 -3
  17. data/lib/praxis/application.rb +1 -0
  18. data/lib/praxis/bootloader_stages/routing.rb +3 -3
  19. data/lib/praxis/bootloader_stages/warn_unloaded_files.rb +1 -0
  20. data/lib/praxis/callbacks.rb +35 -0
  21. data/lib/praxis/controller.rb +18 -35
  22. data/lib/praxis/file_group.rb +12 -7
  23. data/lib/praxis/links.rb +4 -0
  24. data/lib/praxis/media_type_collection.rb +21 -15
  25. data/lib/praxis/request.rb +2 -7
  26. data/lib/praxis/request_stages/action.rb +10 -7
  27. data/lib/praxis/request_stages/request_stage.rb +45 -10
  28. data/lib/praxis/request_stages/validate.rb +7 -3
  29. data/lib/praxis/responses/http.rb +0 -24
  30. data/lib/praxis/responses/internal_server_error.rb +40 -0
  31. data/lib/praxis/responses/validation_error.rb +1 -0
  32. data/lib/praxis/version.rb +1 -1
  33. data/lib/praxis.rb +5 -24
  34. data/praxis.gemspec +3 -3
  35. data/spec/functional_spec.rb +62 -17
  36. data/spec/praxis/action_definition_spec.rb +14 -6
  37. data/spec/praxis/callbacks_spec.rb +107 -0
  38. data/spec/praxis/controller_spec.rb +0 -38
  39. data/spec/praxis/file_group_spec.rb +5 -0
  40. data/spec/praxis/media_type_collection_spec.rb +20 -7
  41. data/spec/praxis/request_spec.rb +15 -1
  42. data/spec/praxis/request_stage_spec.rb +93 -0
  43. data/spec/praxis/request_stages_action_spec.rb +61 -0
  44. data/spec/praxis/request_stages_validate_spec.rb +1 -1
  45. data/spec/praxis/responses/internal_server_error_spec.rb +51 -0
  46. data/spec/praxis/responses/validation_error_spec.rb +66 -0
  47. data/spec/praxis/router_spec.rb +5 -1
  48. data/spec/spec_app/app/concerns/authenticated.rb +15 -0
  49. data/spec/spec_app/app/concerns/basic_api.rb +12 -0
  50. data/spec/spec_app/app/concerns/log_wrapper.rb +14 -0
  51. data/spec/spec_app/app/controllers/base_class.rb +14 -0
  52. data/spec/spec_app/app/controllers/instances.rb +31 -5
  53. data/spec/spec_app/app/controllers/volumes.rb +17 -0
  54. data/spec/spec_app/config/environment.rb +1 -0
  55. data/spec/spec_app/design/api.rb +3 -3
  56. data/spec/spec_app/design/media_types/volume.rb +1 -1
  57. data/spec/spec_app/design/media_types/volume_snapshot.rb +1 -0
  58. data/spec/spec_app/design/resources/instances.rb +10 -3
  59. data/spec/spec_app/design/resources/volumes.rb +27 -0
  60. data/spec/support/spec_resource_definitions.rb +32 -0
  61. data/tasks/praxis_app_generator.thor +2 -2
  62. metadata +23 -9
@@ -240,6 +240,7 @@ module V1
240
240
  attribute :id, Integer, required: true, min: 0
241
241
  end
242
242
  response :ok
243
+ response :not_found
243
244
  end
244
245
  end
245
246
  end
@@ -292,8 +293,7 @@ module V1
292
293
  if hello
293
294
  response.body = { id: id, data: hello }
294
295
  else
295
- response.status = 404
296
- response.body = { error: '404: Not found' }
296
+ self.response = Praxis::Responses::NotFound.new
297
297
  end
298
298
  response.headers['Content-Type'] = 'application/json'
299
299
  response
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: praxis
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.9'
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep M. Blanquer
@@ -43,16 +43,16 @@ dependencies:
43
43
  name: activesupport
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "~>"
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: '4'
48
+ version: '3'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "~>"
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: '4'
55
+ version: '3'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: ruport
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -101,28 +101,28 @@ dependencies:
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '1.0'
104
+ version: '1.1'
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '1.0'
111
+ version: '1.1'
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: attributor
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '2'
118
+ version: '2.2'
119
119
  type: :runtime
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: '2'
125
+ version: '2.2'
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: thor
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -375,6 +375,7 @@ files:
375
375
  - ".ruby-version"
376
376
  - ".simplecov"
377
377
  - ".travis.yml"
378
+ - CHANGELOG.md
378
379
  - CONTRIBUTING.md
379
380
  - Gemfile
380
381
  - Guardfile
@@ -765,6 +766,7 @@ files:
765
766
  - lib/praxis/bootloader_stages/routing.rb
766
767
  - lib/praxis/bootloader_stages/subgroup_loader.rb
767
768
  - lib/praxis/bootloader_stages/warn_unloaded_files.rb
769
+ - lib/praxis/callbacks.rb
768
770
  - lib/praxis/config.rb
769
771
  - lib/praxis/content_type_parser.rb
770
772
  - lib/praxis/controller.rb
@@ -798,6 +800,7 @@ files:
798
800
  - lib/praxis/response_definition.rb
799
801
  - lib/praxis/response_template.rb
800
802
  - lib/praxis/responses/http.rb
803
+ - lib/praxis/responses/internal_server_error.rb
801
804
  - lib/praxis/responses/validation_error.rb
802
805
  - lib/praxis/route.rb
803
806
  - lib/praxis/router.rb
@@ -818,6 +821,7 @@ files:
818
821
  - spec/praxis/api_resource_spec.rb
819
822
  - spec/praxis/application_spec.rb
820
823
  - spec/praxis/bootloader_spec.rb
824
+ - spec/praxis/callbacks_spec.rb
821
825
  - spec/praxis/config_spec.rb
822
826
  - spec/praxis/content_type_parser_spec.rb
823
827
  - spec/praxis/controller_spec.rb
@@ -828,16 +832,25 @@ files:
828
832
  - spec/praxis/media_type_spec.rb
829
833
  - spec/praxis/multipart/parser_spec.rb
830
834
  - spec/praxis/request_spec.rb
835
+ - spec/praxis/request_stage_spec.rb
836
+ - spec/praxis/request_stages_action_spec.rb
831
837
  - spec/praxis/request_stages_validate_spec.rb
832
838
  - spec/praxis/resource_definition_spec.rb
833
839
  - spec/praxis/response_definition_spec.rb
834
840
  - spec/praxis/response_spec.rb
841
+ - spec/praxis/responses/internal_server_error_spec.rb
842
+ - spec/praxis/responses/validation_error_spec.rb
835
843
  - spec/praxis/restful_routing_config_spec.rb
836
844
  - spec/praxis/route_spec.rb
837
845
  - spec/praxis/router_spec.rb
838
846
  - spec/praxis/stage_spec.rb
839
847
  - spec/praxis/types/multipart_spec.rb
848
+ - spec/spec_app/app/concerns/authenticated.rb
849
+ - spec/spec_app/app/concerns/basic_api.rb
850
+ - spec/spec_app/app/concerns/log_wrapper.rb
851
+ - spec/spec_app/app/controllers/base_class.rb
840
852
  - spec/spec_app/app/controllers/instances.rb
853
+ - spec/spec_app/app/controllers/volumes.rb
841
854
  - spec/spec_app/app/responses/bulk_response.rb
842
855
  - spec/spec_app/app/responses/multipart.rb
843
856
  - spec/spec_app/app/responses/other_response.rb
@@ -848,6 +861,7 @@ files:
848
861
  - spec/spec_app/design/media_types/volume.rb
849
862
  - spec/spec_app/design/media_types/volume_snapshot.rb
850
863
  - spec/spec_app/design/resources/instances.rb
864
+ - spec/spec_app/design/resources/volumes.rb
851
865
  - spec/spec_helper.rb
852
866
  - spec/support/spec_media_types.rb
853
867
  - spec/support/spec_resource_definitions.rb