active_response 0.0.1 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84258f703a2b8a0d27572d8c88b7680900a8839dc75d142cba9dd1a10e996069
4
- data.tar.gz: d37a387ec872cdc12d4902fc2d895aea56848a41072820f54e77c66eb045f249
3
+ metadata.gz: a1893cd93a3fb1a9e483df1bccb129a047d78a7173c81a765a48b40e00e00ad4
4
+ data.tar.gz: 5564d1d078760e6a67bd10798baaeb5cec7c6e5f2ce3dc0c74fd8f88b8579a0d
5
5
  SHA512:
6
- metadata.gz: 58f65299722bf90c02023e7774a3830ca59ec3452b9b837ad24dc0a43f20d591bdbea893e3aac43ed8416bc8065332ea388dd064c0ddda536eab347c80083d36
7
- data.tar.gz: 648800aa8e5b1079a6e0822a24ef7c6a5a84adabe2e6430a82d0e6bd160374fcb4c8626861f8a14a68b435d00777d2a528b6340ee95afe1b535fcebd709d2f0f
6
+ metadata.gz: 85bf41e04adbe29d540c7c165d35efafebf2bc7f9c8d32ccf2ea8757597f3ca4541d29961fbf4db25660b7ba72fbe76c6a722c4c37619c8360b6b76d6e52418a
7
+ data.tar.gz: d8168d43e40047874536975b92abc7e45b904bf475bccbc936015e21c4f66cacd5fdd5ef83e15475a512a7e831750569b9df26994cd03ca2b7825b16ff1d998e
@@ -30,6 +30,7 @@ module ActiveResponse
30
30
 
31
31
  def active_response_block
32
32
  respond_to do |format|
33
+ active_response_custom_responses(format)
33
34
  ActiveResponse::Responders::Base.available_formats.each do |symbol|
34
35
  format.send(symbol) do
35
36
  find_active_responder(format)
@@ -39,6 +40,8 @@ module ActiveResponse
39
40
  end
40
41
  end
41
42
 
43
+ def active_response_custom_responses(_format); end
44
+
42
45
  def active_response_type
43
46
  @active_responder.type
44
47
  end
@@ -7,8 +7,8 @@ module ActiveResponse
7
7
  private
8
8
 
9
9
  def create_execute
10
- current_resource.assign_attributes(permit_params)
11
- current_resource.save
10
+ current_resource!.assign_attributes(permit_params)
11
+ current_resource!.save
12
12
  end
13
13
 
14
14
  def create_failure
@@ -17,7 +17,8 @@ module ActiveResponse
17
17
 
18
18
  def create_failure_options
19
19
  {
20
- resource: current_resource
20
+ notice: active_response_failure_message,
21
+ resource: current_resource!
21
22
  }
22
23
  end
23
24
 
@@ -34,12 +35,12 @@ module ActiveResponse
34
35
  include: create_includes,
35
36
  location: create_success_location,
36
37
  notice: active_response_success_message,
37
- resource: current_resource
38
+ resource: current_resource!
38
39
  }
39
40
  end
40
41
 
41
42
  def create_success_location
42
- url_for(current_resource)
43
+ url_for(current_resource!)
43
44
  end
44
45
  end
45
46
  end
@@ -7,7 +7,7 @@ module ActiveResponse
7
7
  private
8
8
 
9
9
  def destroy_execute
10
- current_resource.destroy
10
+ current_resource!.destroy
11
11
  end
12
12
 
13
13
  def destroy_failure
@@ -16,7 +16,8 @@ module ActiveResponse
16
16
 
17
17
  def destroy_failure_options
18
18
  {
19
- resource: current_resource
19
+ notice: active_response_failure_message,
20
+ resource: current_resource!
20
21
  }
21
22
  end
22
23
 
@@ -28,7 +29,7 @@ module ActiveResponse
28
29
  {
29
30
  location: destroy_success_location,
30
31
  notice: active_response_success_message,
31
- resource: current_resource
32
+ resource: current_resource!
32
33
  }
33
34
  end
34
35
 
@@ -14,7 +14,7 @@ module ActiveResponse
14
14
  {
15
15
  include: show_includes,
16
16
  locals: show_view_locals,
17
- resource: current_resource
17
+ resource: current_resource!
18
18
  }
19
19
  end
20
20
 
@@ -7,7 +7,7 @@ module ActiveResponse
7
7
  private
8
8
 
9
9
  def update_execute
10
- current_resource.update permit_params
10
+ current_resource!.update permit_params
11
11
  end
12
12
 
13
13
  def update_failure
@@ -16,7 +16,8 @@ module ActiveResponse
16
16
 
17
17
  def update_failure_options
18
18
  {
19
- resource: current_resource
19
+ notice: active_response_failure_message,
20
+ resource: current_resource!
20
21
  }
21
22
  end
22
23
 
@@ -28,12 +29,12 @@ module ActiveResponse
28
29
  {
29
30
  location: update_success_location,
30
31
  notice: active_response_success_message,
31
- resource: current_resource
32
+ resource: current_resource!
32
33
  }
33
34
  end
34
35
 
35
36
  def update_success_location
36
- url_for(current_resource)
37
+ url_for(current_resource!)
37
38
  end
38
39
  end
39
40
  end
@@ -19,6 +19,18 @@ module ActiveResponse
19
19
  include Show
20
20
  include Update
21
21
 
22
+ private
23
+
24
+ def active_response_failure_message
25
+ return send("#{action_name}_failure_message") if respond_to?("#{action_name}_failure_message", true)
26
+ I18n.t(failure_message_translation_key, failure_message_translation_opts)
27
+ end
28
+
29
+ def active_response_success_message
30
+ return send("#{action_name}_success_message") if respond_to?("#{action_name}_success_message", true)
31
+ I18n.t(success_message_translation_key, success_message_translation_opts)
32
+ end
33
+
22
34
  def default_form_options(action)
23
35
  {
24
36
  locals: form_view_locals_for(action),
@@ -27,6 +39,14 @@ module ActiveResponse
27
39
  }
28
40
  end
29
41
 
42
+ def failure_message_translation_key
43
+ "active_response.actions.#{action_name}.failure"
44
+ end
45
+
46
+ def failure_message_translation_opts
47
+ {type: current_resource.class.to_s.humanize}
48
+ end
49
+
30
50
  def form_view_for(action)
31
51
  return send("#{action}_view") if respond_to?("#{action}_view", true)
32
52
  default_form_view(action)
@@ -45,11 +65,6 @@ module ActiveResponse
45
65
  {}
46
66
  end
47
67
 
48
- def active_response_success_message
49
- return send("#{action_name}_success_message") if respond_to?("#{action_name}_success_message", true)
50
- I18n.t(success_message_translation_key, success_message_translation_opts)
51
- end
52
-
53
68
  def success_message_translation_key
54
69
  "active_response.actions.#{action_name}.success"
55
70
  end
@@ -4,35 +4,35 @@ module ActiveResponse
4
4
  module Controller
5
5
  module DefaultResponses
6
6
  def respond_with_collection(opts)
7
- active_responder.collection(opts)
7
+ active_responder.collection(**opts)
8
8
  end
9
9
 
10
10
  def respond_with_destroyed(opts)
11
- active_responder.destroyed(opts)
11
+ active_responder.destroyed(**opts)
12
12
  end
13
13
 
14
14
  def respond_with_form(opts)
15
- active_responder.form(opts)
15
+ active_responder.form(**opts)
16
16
  end
17
17
 
18
18
  def respond_with_invalid_resource(opts)
19
- active_responder.invalid_resource(opts)
19
+ active_responder.invalid_resource(**opts)
20
20
  end
21
21
 
22
22
  def respond_with_new_resource(opts)
23
- active_responder.new_resource(opts)
23
+ active_responder.new_resource(**opts)
24
24
  end
25
25
 
26
26
  def respond_with_redirect(opts)
27
- active_responder.redirect(opts)
27
+ active_responder.redirect(**opts)
28
28
  end
29
29
 
30
30
  def respond_with_resource(opts)
31
- active_responder.resource(opts)
31
+ active_responder.resource(**opts)
32
32
  end
33
33
 
34
34
  def respond_with_updated_resource(opts)
35
- active_responder.updated_resource(opts)
35
+ active_responder.updated_resource(**opts)
36
36
  end
37
37
  end
38
38
  end
@@ -11,18 +11,26 @@ module ActiveResponse
11
11
  instance_variable_set(var, resolve_current_resource)
12
12
  end
13
13
 
14
+ def current_resource!
15
+ current_resource || raise(ActiveRecord::RecordNotFound)
16
+ end
17
+
14
18
  def controller_class
15
19
  @controller_class ||= controller_name.classify.safe_constantize
16
20
  end
17
21
 
18
22
  def requested_resource
19
- @requested_resource ||= controller_class.find_by(id: resource_id)
23
+ @requested_resource ||= controller_class&.find_by(id: resource_id)
20
24
  end
21
25
 
22
26
  # Instantiates a new record of the current controller type
23
27
  # @return [ActiveRecord::Base] A fresh model instance
24
28
  def new_resource
25
- controller_class.new
29
+ controller_class.new(new_resource_params)
30
+ end
31
+
32
+ def new_resource_params
33
+ {}
26
34
  end
27
35
 
28
36
  def resolve_current_resource
@@ -18,6 +18,12 @@ module ActiveResponse
18
18
  self.class.type
19
19
  end
20
20
 
21
+ private
22
+
23
+ def content_type
24
+ Mime[format]&.to_s
25
+ end
26
+
21
27
  class << self
22
28
  def respond_to(*formats)
23
29
  self.formats = formats
@@ -11,7 +11,7 @@ module ActiveResponse
11
11
  end
12
12
 
13
13
  def destroyed(_opts)
14
- controller.head :no_content
14
+ controller.head :no_content, content_type: content_type
15
15
  end
16
16
 
17
17
  def form(**_opts)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveResponse
4
- VERSION = '0.0.1'
4
+ VERSION = '0.0.2'
5
5
  end
metadata CHANGED
@@ -1,49 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_response
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arthur Dingemans
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-25 00:00:00.000000000 Z
11
+ date: 2021-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: active_model_serializers
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '0.10'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '0.10'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: railties
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - ">="
32
18
  - !ruby/object:Gem::Version
33
- version: 4.2.0
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: '6'
19
+ version: '0'
37
20
  type: :runtime
38
21
  prerelease: false
39
22
  version_requirements: !ruby/object:Gem::Requirement
40
23
  requirements:
41
24
  - - ">="
42
25
  - !ruby/object:Gem::Version
43
- version: 4.2.0
44
- - - "<"
45
- - !ruby/object:Gem::Version
46
- version: '6'
26
+ version: '0'
47
27
  - !ruby/object:Gem::Dependency
48
28
  name: rspec-rails
49
29
  requirement: !ruby/object:Gem::Requirement
@@ -105,7 +85,7 @@ homepage: https://github.com/ontola/active_response
105
85
  licenses:
106
86
  - MIT
107
87
  metadata: {}
108
- post_install_message:
88
+ post_install_message:
109
89
  rdoc_options: []
110
90
  require_paths:
111
91
  - lib
@@ -120,8 +100,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
100
  - !ruby/object:Gem::Version
121
101
  version: '0'
122
102
  requirements: []
123
- rubygems_version: 3.0.1
124
- signing_key:
103
+ rubygems_version: 3.1.2
104
+ signing_key:
125
105
  specification_version: 4
126
106
  summary: Define Responders to handle different kind of responses in different formats
127
107
  test_files: []