active_response 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: []