rails-rapido 0.9.2 → 0.9.3

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: 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