rails-rapido 0.9.2 → 0.9.3

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: 8079b4a3ece5e94b2fa951274c441c3437a28321c4e1f54370cbd2e61b95ee56
4
- data.tar.gz: c79473dbc46bf84d5a2f2f1fe6fee79f971b952e5039b479045934604217033b
3
+ metadata.gz: c62492980ddb246461582385eb1c9fa069b025ccbd39c4ae94189d33bafc836a
4
+ data.tar.gz: 14eb7a3269938509bb01ca8517cf68398445f05b6b93c92e918516e8c7c2aabd
5
5
  SHA512:
6
- metadata.gz: 68807070271128ff75d21b40c5dd19f86599ea19fed463ef1ae7d02823b713a9492d5a7db43c9c4541c02104c02e2139a63d8db3e46750d4bb3109eadd4b85cf
7
- data.tar.gz: 9137c452b85f17dc26743be3e1f9276559ff64319be00107fd761849dc43f045d7b70067799c5d4db958ad1165cc9bd7a2180caf9853cc4c2486d38ad969c96f
6
+ metadata.gz: 05e5f8e6d38877005df077ab7b767c890158ba7a0be2f48130e0e16a41e5973f1ae4f16e40291f56481c9218425b9548707f22aeab2125b543515264d12f54eb
7
+ data.tar.gz: 26916c6b6672d778eec56db5fb1b52d1a03c805655a80322de84c5c8137a7ddc606c73d8bd7ad4a432aa557f849e0be2dcb01a56276a3459d399c8663210bf93
data/.rubocop.yml CHANGED
@@ -283,7 +283,7 @@ Lint/UselessAccessModifier:
283
283
  Lint/UselessAssignment:
284
284
  Enabled: true
285
285
 
286
- Lint/UselessComparison:
286
+ Lint/BinaryOperatorWithIdenticalOperands:
287
287
  Enabled: true
288
288
 
289
289
  Lint/UselessElseWithoutRescue:
@@ -22,19 +22,19 @@ module Rapido
22
22
 
23
23
  def index
24
24
  return if performed?
25
- render json: present_resource_collection(resource_collection)
25
+ render json: resource_collection_presenter
26
26
  end
27
27
 
28
28
  def show
29
29
  return if performed?
30
30
  if request.format.to_sym == :json
31
- render json: present_resource(resource)
31
+ render json: resource_presenter
32
32
  elsif request.format.to_sym == :xml
33
- render xml: present_resource(resource)
34
- elsif request.format.to_s.starts_with?("text/")
35
- render plain: present_resource(resource).send("to_#{request.format.to_sym.to_s}")
33
+ render xml: resource_presenter
34
+ elsif request.format.to_sym == :csv
35
+ render plain: resource_presenter.send("to_csv")
36
36
  else
37
- render json: present_resource(resource)
37
+ render json: resource_presenter
38
38
  end
39
39
  end
40
40
 
@@ -46,7 +46,7 @@ module Rapido
46
46
  if new_resource.save
47
47
  after_create_success(new_resource)
48
48
  return if performed?
49
- render json: present_resource(new_resource), status: :created
49
+ render json: resource_presenter(new_resource), status: :created
50
50
  else
51
51
  after_create_failure(new_resource)
52
52
  return if performed?
@@ -56,7 +56,7 @@ module Rapido
56
56
 
57
57
  def destroy
58
58
  return if performed?
59
- resource_before_destruction = present_resource(resource)
59
+ resource_before_destruction = resource_presenter
60
60
  before_destroy
61
61
  resource.destroy
62
62
  after_destroy_success
@@ -72,7 +72,7 @@ module Rapido
72
72
  if resource.save
73
73
  after_update_success
74
74
  return if performed?
75
- render json: present_resource(resource)
75
+ render json: resource_presenter
76
76
  else
77
77
  after_update_failure
78
78
  return if performed?
@@ -117,17 +117,28 @@ module Rapido
117
117
  head :unauthorized unless allowed_actions.include?(params[:action].to_sym)
118
118
  end
119
119
 
120
- def present_resource(resource)
121
- args = presenter_args.nil? ? nil : presenter_args.map { |arg| params[arg] }
122
- return presenter.new(resource, *args) if presenter
123
- resource.to_h
120
+ def resource_presenter(new_resource = nil)
121
+ @resource_presenter ||= begin
122
+ args = presenter_args.nil? ? nil : presenter_args.map { |arg| params[arg] }
123
+ if presenter
124
+ presenter.new(new_resource || resource, *args)
125
+ else
126
+ (new_resource || resource).to_h
127
+ end
128
+ end
124
129
  end
125
130
 
126
- def present_resource_collection(resource_collection)
127
- args = collection_presenter_args.nil? ? nil : collection_presenter_args.map { |arg| params[arg] }
128
- return collection_presenter.new(resource_collection, *args).as_json if collection_presenter
129
- return resource_collection.map { |r| presenter.new(r).as_json } if presenter
130
- resource_collection.map(&:to_h)
131
+ def resource_collection_presenter
132
+ @resource_collection_presenter ||= begin
133
+ args = collection_presenter_args.nil? ? nil : collection_presenter_args.map { |arg| params[arg] }
134
+ if collection_presenter
135
+ collection_presenter.new(resource_collection, *args)
136
+ elsif presenter
137
+ resource_collection.map { |r| presenter.new(r) }
138
+ else
139
+ resource_collection.map(&:to_h)
140
+ end
141
+ end
131
142
  end
132
143
  end
133
144
  end
@@ -1,3 +1,3 @@
1
1
  module Rapido
2
- VERSION = '0.9.2'
2
+ VERSION = '0.9.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-rapido
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Kirst
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-04 00:00:00.000000000 Z
11
+ date: 2021-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler