culpa 0.7.4 → 0.8.0

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NGM3ZDcyZjEwMDFlNjUxODkxNmM1ZmFmNGUzZjE0M2RhMGJlMTFjOQ==
4
+ ZWUzODlkNWE4YTE1OWMxNmQyMGZmODBlNzliZTkwMmNmN2MxMGI0ZA==
5
5
  data.tar.gz: !binary |-
6
- OTRmMDY4ZjFjNmZkZjYwMTg4MDQyNmM4ZGM0NWYxZGExYjlmYjc4Yw==
6
+ NjdlOGQ4YmY4MDZiNTU1ZWNhZDYyMjY2ZTFjMzAwNGQ3NjY2YjhhYQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZjZhNGZhODAxNmYwNGIxMjZjMzllMjBhMDY0MTUzMTk2ZDk3NDM5MjBlNmU2
10
- MGFiN2EyM2M3ZDFlNThhZTE1ZDQ1ZWUwMTcwNGY1M2EyZDg2ZmNjNmVjYTFh
11
- ZTc3NWYxMDFlMWU3OGFhNDY0NDZmMTE5N2I1M2E4OGUxYTMyZGQ=
9
+ MjIwYWNkZWMxMDJhMTQwNjU5Yjk0NTJjYTNhMTY3ZDQ3NWZmYWQ2NDJjZjZk
10
+ NTc5ODM1NGFjYTZhYTAzYTdmN2RlZWRmYWZhMTcxZTdjNzA3MGIzNTU2NTYz
11
+ ZjA3N2FhNTM1ZjJiNDJkOTQzOWQxMDViOTAyYzI2NzA0YmFlMjI=
12
12
  data.tar.gz: !binary |-
13
- ZGQ3MjAwMTZjODAyOTc1OWIxNDMxYjY4MjVmNmNhMGMyZDgyZDIyNDI5OTBl
14
- Mzg5MDM2NTJkNmJlN2ZlYjE4YmRhZmY3NmIxZWM5M2VlNmUwNTA1ZjY0Yjky
15
- ZDM0OTUzM2I1NGQyNjBjNDE1ODY5YTA3MDY5MDRkYTk5Mzc3MWI=
13
+ M2Y3MjdlZDlhODhlNTgxM2MzOTFmODEyNDFjMGU0ZGY0YTRiNDU1MGQ2Yjlh
14
+ NGZhYTljMDYwYzFjOTY3NmFmYzQ1ZDNiYmU4YjYxYTE0NDlkNzE5NzM0ZWFi
15
+ YTc0M2E5MDZhMjFmYmYyYzUwMTdmMzc3OTllYmNiMTllYWIzNmU=
data/lib/action.rb CHANGED
@@ -55,9 +55,15 @@ class Action
55
55
  unknown_error: 520
56
56
  }
57
57
 
58
- attr_accessor :to_render
59
58
  attr_reader :e, :r, :logger
60
59
 
60
+ class RenderNow < StandardError
61
+ attr_reader :to_render
62
+ def initialize(to_render)
63
+ @to_render = to_render
64
+ end
65
+ end
66
+
61
67
  def initialize(envelope, request, logger)
62
68
  @e = envelope
63
69
  @r = request
@@ -94,6 +100,7 @@ class Action
94
100
  else
95
101
  raise Culpa::UnknownRenderCall.new
96
102
  end
103
+ raise RenderNow.new(@to_render)
97
104
  end
98
105
 
99
106
  end
data/lib/culpa.rb CHANGED
@@ -7,7 +7,7 @@ require 'envelope'
7
7
  require 'path_parser'
8
8
  require 'file_streamer'
9
9
 
10
- CULPA_VERSION='0.7.4'
10
+ CULPA_VERSION='0.8.0'
11
11
 
12
12
  ACTIONS_PATH ||= './actions/*.rb'
13
13
  MODELS_PATH ||= './models/*.rb'
@@ -117,15 +117,15 @@ module Culpa
117
117
  # Iterating over the brickchain of this request
118
118
  if brick.is_a? String
119
119
  # This brick is a sychronous call, processing call directly.
120
- action_class = brick_call brick, envelope, request
121
- return do_render(action_class.to_render) if action_class.to_render
120
+ result = brick_call brick, envelope, request
121
+ return result if result
122
122
  elsif brick.is_a?(Hash) && brick.has_key?('async')
123
123
  # This brick is a bundle of async bricks, treating it in threads.
124
124
  brick['async'].map { |async_brick|
125
125
  Thread.new { brick_call(async_brick, envelope, request) }
126
126
  }.each { |thread|
127
- action_class = thread.value
128
- return do_render(action_class.to_render) if action_class.to_render
127
+ result = thread.value
128
+ return result if result
129
129
  }
130
130
  end
131
131
  end
@@ -138,7 +138,9 @@ module Culpa
138
138
  action_class_name, method_name = brick.split('.')
139
139
  action_class = Actions.const_get(action_class_name).new(envelope, request, @logger)
140
140
  action_class.send method_name
141
- action_class
141
+ return false
142
+ rescue Action::RenderNow => renderer
143
+ return do_render(renderer.to_render)
142
144
  end
143
145
 
144
146
  ##
data/lib/rspec_helper.rb CHANGED
@@ -17,7 +17,8 @@ module CulpaHelpers
17
17
  def call
18
18
  action_class = Actions.const_get(@action).new(@envelope, @request, @logger)
19
19
  action_class.send @method.to_s
20
- return action_class.to_render
20
+ rescue Action::RenderNow => renderer
21
+ return renderer.to_render
21
22
  end
22
23
  end
23
24
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: culpa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jérémy SEBAN
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-08 00:00:00.000000000 Z
11
+ date: 2016-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack