gateway 0.2.2 → 0.2.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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
data/gateway.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "gateway"
8
- s.version = "0.2.2"
8
+ s.version = "0.2.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Aaron Qian"]
12
- s.date = "2012-06-18"
12
+ s.date = "2013-01-23"
13
13
  s.description = " Opinionated Generic IO Connection Manager "
14
14
  s.email = "aq1018@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -44,7 +44,7 @@ Gem::Specification.new do |s|
44
44
  s.homepage = "http://github.com/aq1018/gateway"
45
45
  s.licenses = ["MIT"]
46
46
  s.require_paths = ["lib"]
47
- s.rubygems_version = "1.8.19"
47
+ s.rubygems_version = "1.8.24"
48
48
  s.summary = "Opinionated Generic IO Connection Manager"
49
49
 
50
50
  if s.respond_to? :specification_version then
@@ -19,15 +19,16 @@ module Gateway
19
19
  start_time = Time.now
20
20
 
21
21
  begin
22
- resp = block.call
23
- status = success_status(resp)
24
- desc = success_message(resp)
25
- resp
26
- rescue => e
27
- status = error_status(e)
28
- desc = error_message(e)
29
- raise
22
+ resp = block.call
30
23
  ensure
24
+ if e = $!
25
+ status = error_status(e)
26
+ desc = error_message(e)
27
+ else
28
+ status = success_status(resp)
29
+ desc = success_message(resp)
30
+ end
31
+
31
32
  duration = Time.now - start_time
32
33
  req = "#{action.to_s.upcase} #{req}"
33
34
  profiler.performance(name.to_s, duration, status, desc, req)
data/spec/gateway_spec.rb CHANGED
@@ -1,5 +1,38 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
3
  describe "Gateway" do
4
- it "be worked on"
4
+ describe "Performance" do
5
+ before do
6
+ @profiler = Class.new do
7
+ attr_reader :args
8
+ def performance(*args) @args = args end
9
+ end.new
10
+
11
+ @class = Class.new do
12
+ include Gateway::Feature::Performance
13
+
14
+ attr_accessor :profiler
15
+ def name() 'hi' end
16
+ def initialize(p) @profiler = p end
17
+ end
18
+
19
+ @performer = @class.new @profiler
20
+ end
21
+
22
+ it "handles local jumps" do
23
+ def @performer.with_perf(*a) super{ return } end
24
+
25
+ @performer.with_perf(:foo, :req, {})
26
+
27
+ @performer.profiler.args.should eq ['hi', anything, 200, 'OK', 'FOO req']
28
+ end
29
+
30
+ it "handles local jumps with errors" do
31
+ def @performer.with_perf(*a) super{ raise 'hi' } end
32
+
33
+ expect { @performer.with_perf(:foo, :req, {}) }.to raise_error RuntimeError
34
+
35
+ @performer.profiler.args.should eq ['hi', anything, 500, 'RuntimeError - hi', 'FOO req']
36
+ end
37
+ end
5
38
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-18 00:00:00.000000000 Z
12
+ date: 2013-01-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -169,7 +169,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
169
169
  version: '0'
170
170
  segments:
171
171
  - 0
172
- hash: 3427182143372525761
172
+ hash: 3547257531865171305
173
173
  required_rubygems_version: !ruby/object:Gem::Requirement
174
174
  none: false
175
175
  requirements:
@@ -178,7 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
178
  version: '0'
179
179
  requirements: []
180
180
  rubyforge_project:
181
- rubygems_version: 1.8.19
181
+ rubygems_version: 1.8.24
182
182
  signing_key:
183
183
  specification_version: 3
184
184
  summary: Opinionated Generic IO Connection Manager