camille 0.5.6 → 0.5.7

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
  SHA256:
3
- metadata.gz: 991a6d473c51e10dce629da09a1b430ff316b448521bf8631b8994b358cdc809
4
- data.tar.gz: 34398f5bf1e5e2d2793de422d43dfd9c57b4f1eed9933cb3e99db91778e15ef9
3
+ metadata.gz: 3ff47e3a7fdcb5ef28cca7bc5ce3989900c82d7eb0d94af77a00e0b0c4ac9b3d
4
+ data.tar.gz: 7885520d31b5b0a4f339cc24e5993ea1d8e1d637029a018b5dcb144060e72965
5
5
  SHA512:
6
- metadata.gz: 772f197217bc1ffdd29b432b3c615c34f13f286e694d33abec58a468722d3217c1d8ffcd893aadab57b3f2be4b57fbe693c08e7976d72f9c7aeee33bea67e837
7
- data.tar.gz: 679738f907ba017a94dc6e73b29ff82500765c207fb48a5da42c037e0ec9dbfb6155e4d26abc465b205271fbb1928ef29d677f1510c40f9a62dbb829e9e26d73
6
+ metadata.gz: 5c990d3326e3271092647bd2ccdbc9ddf213e0f6200c872f0d398c4fb5306670c7e9993e4e48c82dab84a97ea4a8b3200ad100475c4a9243758e94ea211df681
7
+ data.tar.gz: c21e9542119b194dac81e446574c582fcf16a98a7fbeaeeba33e083518b3070b826a4db20596ff22fb5b18f1b8e64161056e10f71309a3309ab3213c8da9ba4d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.7
4
+
5
+ ### Added
6
+
7
+ * Camille::Controller::MissingRenderError will now be raised if `render json:` is missing in action body
8
+ * ActionController::MissingExactTemplate is re-raised as Camille::Controller::MissingRenderError
9
+
3
10
  ## 0.5.6
4
11
 
5
12
  ### Added
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- camille (0.5.6)
4
+ camille (0.5.7)
5
5
  rails (>= 6.1, < 8)
6
6
 
7
7
  GEM
@@ -2,6 +2,7 @@ module Camille
2
2
  module Controller
3
3
  class TypeError < ::StandardError; end
4
4
  class ArgumentError < ::ArgumentError; end
5
+ class MissingRenderError < ::StandardError; end
5
6
 
6
7
  def camille_schema
7
8
  @camille_schema ||= Camille::Loader.controller_name_to_schema_map[self.class.name]
@@ -24,6 +25,7 @@ module Camille
24
25
  if transformed.is_a? Hash
25
26
  transformed.deep_transform_keys!{|k| k.to_s.camelize(:lower)}
26
27
  end
28
+ @camille_rendered = true
27
29
  super(json: transformed)
28
30
  end
29
31
  else
@@ -37,12 +39,25 @@ module Camille
37
39
  def process_action(*)
38
40
  Camille::Loader.check_and_raise_exception
39
41
  if endpoint = camille_endpoint
40
- params.deep_transform_keys!{|key| key.to_s.underscore}
41
- super
42
+ begin
43
+ params.deep_transform_keys!{|key| key.to_s.underscore}
44
+ result = super
45
+ unless @camille_rendered
46
+ raise_missing_render_error
47
+ end
48
+ result
49
+ rescue ActionController::MissingExactTemplate
50
+ raise_missing_render_error
51
+ end
42
52
  else
43
53
  super
44
54
  end
45
55
  end
46
56
 
57
+ private
58
+ def raise_missing_render_error
59
+ raise MissingRenderError.new("Expected `render json:` call in controller action body.")
60
+ end
61
+
47
62
  end
48
63
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Camille
4
- VERSION = "0.5.6"
4
+ VERSION = "0.5.7"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camille
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.5.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - 辻彩