jpie 2.0.2 → 2.1.2

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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/skills/nasa-power-of-ten-ruby/SKILL.md +71 -0
  3. data/.claude/skills/root-cause-analysis/SKILL.md +64 -0
  4. data/.claude/skills/skills-and-subagents/SKILL.md +54 -0
  5. data/.cursor/agents/bias-reviewer.md +58 -0
  6. data/.cursor/agents/lint-format.md +58 -0
  7. data/.cursor/agents/nasa-power-of-ten-reviewer.md +38 -0
  8. data/.cursor/agents/systematic-debugging.md +54 -0
  9. data/Gemfile.lock +1 -1
  10. data/README.md +114 -0
  11. data/lib/json_api/controllers/concerns/controller_helpers/error_rendering.rb +18 -0
  12. data/lib/json_api/controllers/concerns/resource_actions/crud_helpers.rb +17 -0
  13. data/lib/json_api/controllers/concerns/resource_actions/resource_loading.rb +3 -2
  14. data/lib/json_api/controllers/concerns/resource_actions/serialization.rb +24 -0
  15. data/lib/json_api/controllers/concerns/resource_actions/sideposting.rb +97 -0
  16. data/lib/json_api/controllers/concerns/resource_actions/sideposting_primary_first.rb +63 -0
  17. data/lib/json_api/controllers/concerns/resource_actions.rb +18 -4
  18. data/lib/json_api/railtie.rb +2 -0
  19. data/lib/json_api/resources/resource.rb +4 -0
  20. data/lib/json_api/resources/resource_loader.rb +44 -46
  21. data/lib/json_api/routing.rb +2 -2
  22. data/lib/json_api/serialization/concerns/deserialization_helpers.rb +11 -2
  23. data/lib/json_api/serialization/concerns/relationship_processing.rb +1 -1
  24. data/lib/json_api/serialization/concerns/relationships_deserialization.rb +12 -0
  25. data/lib/json_api/sideposting/lid_resolver.rb +72 -0
  26. data/lib/json_api/sideposting/order.rb +11 -0
  27. data/lib/json_api/sideposting/processor.rb +118 -0
  28. data/lib/json_api/support/relationship_helpers.rb +4 -0
  29. data/lib/json_api/support/resource_identifier.rb +4 -0
  30. data/lib/json_api/version.rb +1 -1
  31. data/lib/json_api.rb +6 -1
  32. metadata +13 -1
@@ -17,6 +17,10 @@ module JSONAPI
17
17
  identifier[:id].to_s.presence
18
18
  end
19
19
 
20
+ def extract_lid(identifier)
21
+ identifier[:lid].to_s.presence
22
+ end
23
+
20
24
  def extract_type(identifier)
21
25
  identifier[:type]
22
26
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JSONAPI
4
- VERSION = "2.0.2"
4
+ VERSION = "2.1.2"
5
5
  end
data/lib/json_api.rb CHANGED
@@ -11,7 +11,7 @@ end
11
11
  require "json_api/errors/parameter_not_allowed"
12
12
 
13
13
  module JSONAPI
14
- # Rebuild BaseController and RelationshipsController to reflect the current
14
+ # Rebuild BaseController, RelationshipsController, and ResourcesController to reflect the current
15
15
  # base_controller_class configuration. Safe to call repeatedly.
16
16
  def self.rebuild_base_controllers!
17
17
  remove_const(:BaseController) if const_defined?(:BaseController)
@@ -19,6 +19,9 @@ module JSONAPI
19
19
 
20
20
  remove_const(:RelationshipsController) if const_defined?(:RelationshipsController)
21
21
  load "json_api/controllers/relationships_controller.rb"
22
+
23
+ remove_const(:ResourcesController) if const_defined?(:ResourcesController)
24
+ load "json_api/controllers/resources_controller.rb"
22
25
  end
23
26
  end
24
27
 
@@ -48,6 +51,8 @@ require "json_api/support/responders"
48
51
  require "json_api/support/instrumentation"
49
52
  require "json_api/serialization/serializer"
50
53
  require "json_api/serialization/deserializer"
54
+ require "json_api/sideposting/lid_resolver"
55
+ require "json_api/sideposting/processor"
51
56
  require "json_api/controllers/concerns/controller_helpers"
52
57
  require "json_api/controllers/concerns/resource_actions"
53
58
  require "json_api/controllers/base_controller"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jpie
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emil Kampp
@@ -85,6 +85,13 @@ executables: []
85
85
  extensions: []
86
86
  extra_rdoc_files: []
87
87
  files:
88
+ - ".claude/skills/nasa-power-of-ten-ruby/SKILL.md"
89
+ - ".claude/skills/root-cause-analysis/SKILL.md"
90
+ - ".claude/skills/skills-and-subagents/SKILL.md"
91
+ - ".cursor/agents/bias-reviewer.md"
92
+ - ".cursor/agents/lint-format.md"
93
+ - ".cursor/agents/nasa-power-of-ten-reviewer.md"
94
+ - ".cursor/agents/systematic-debugging.md"
88
95
  - ".cursor/rules/release.mdc"
89
96
  - ".gitignore"
90
97
  - ".rspec"
@@ -127,6 +134,8 @@ files:
127
134
  - lib/json_api/controllers/concerns/resource_actions/pagination.rb
128
135
  - lib/json_api/controllers/concerns/resource_actions/resource_loading.rb
129
136
  - lib/json_api/controllers/concerns/resource_actions/serialization.rb
137
+ - lib/json_api/controllers/concerns/resource_actions/sideposting.rb
138
+ - lib/json_api/controllers/concerns/resource_actions/sideposting_primary_first.rb
130
139
  - lib/json_api/controllers/concerns/resource_actions/type_validation.rb
131
140
  - lib/json_api/controllers/relationships_controller.rb
132
141
  - lib/json_api/controllers/resources_controller.rb
@@ -158,6 +167,9 @@ files:
158
167
  - lib/json_api/serialization/deserializer.rb
159
168
  - lib/json_api/serialization/include_path_helpers.rb
160
169
  - lib/json_api/serialization/serializer.rb
170
+ - lib/json_api/sideposting/lid_resolver.rb
171
+ - lib/json_api/sideposting/order.rb
172
+ - lib/json_api/sideposting/processor.rb
161
173
  - lib/json_api/support/active_storage_support.rb
162
174
  - lib/json_api/support/collection_query.rb
163
175
  - lib/json_api/support/concerns/condition_building.rb