faraday-request-timer 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a4acb50f7c29f0c9cb71a7aca4403a1cdbeaa3c4
4
+ data.tar.gz: abb7464745186f8aaab4f57b8d7028714aeff60f
5
+ SHA512:
6
+ metadata.gz: 42d1541d2412873d07ae8100473db6662a69974a97326bff548e3b838e26f859b24873cc7535a4816d9df17c4366db83170717f0a0255e2a7f983228e16c07f7
7
+ data.tar.gz: e05a10eeb70f2fb2fa1f21e7f429ce89e11fce594e67d87c5473fb9a978c9d4b3098a7b7e6fcc31f63c5b1c7e543366cdcacc7b3323c02eef09e0cfa2af0f403
@@ -0,0 +1,16 @@
1
+ module Faraday
2
+ class Request::Timer < Faraday::Middleware
3
+
4
+ Faraday::Request.register_middleware :timer => self
5
+
6
+ def call(env)
7
+ started_at = Time.now
8
+ app = @app.call(env)
9
+ ended_at = Time.now
10
+
11
+ app.env[:duration] = ended_at - started_at
12
+ app
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,3 @@
1
+ module FaradayRequestTimer
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,2 @@
1
+ require "faraday"
2
+ require "faraday/request/timer"
@@ -0,0 +1,27 @@
1
+ require File.expand_path("../../../../test_helper", __FILE__)
2
+
3
+ describe Faraday::Request::Timer do
4
+
5
+ after do
6
+ Time.unstub(:now)
7
+ end
8
+
9
+ it "registers itself as request middleware" do
10
+ Faraday::Request.lookup_middleware(:timer).must_equal Faraday::Request::Timer
11
+ end
12
+
13
+ it "times a request" do
14
+ Time.stubs(:now).returns(Time.utc(2014, 1, 1, 6, 0, 0))
15
+
16
+ connection = connection do |stubs|
17
+ stubs.get("/") {
18
+ Time.stubs(:now).returns(Time.utc(2014, 1, 1, 6, 0, 2))
19
+ [200, {}, ""]
20
+ }
21
+ end
22
+
23
+ response = connection.get("/")
24
+ response.env[:duration].must_equal 2
25
+ end
26
+
27
+ end
@@ -0,0 +1,20 @@
1
+ require "rubygems"
2
+ require "bundler"
3
+ Bundler.require
4
+
5
+ require "minitest/autorun"
6
+ require "mocha/setup"
7
+
8
+ class Minitest::Spec
9
+
10
+ def connection
11
+ Faraday::Connection.new("http://example.net") do |builder|
12
+ builder.request :timer
13
+
14
+ builder.adapter :test do |stubs|
15
+ yield(stubs)
16
+ end
17
+ end
18
+ end
19
+
20
+ end
metadata ADDED
@@ -0,0 +1,93 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: faraday-request-timer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Brandon Weiss
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-05-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 0.9.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.9.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.5'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mocha
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 1.1.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.1.0
55
+ description: Includes the request time in a Faraday response
56
+ email:
57
+ - brandon@anti-pattern.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/faraday-request-timer.rb
63
+ - lib/faraday-request-timer/version.rb
64
+ - lib/faraday/request/timer.rb
65
+ - test/lib/faraday/request/timer_test.rb
66
+ - test/test_helper.rb
67
+ homepage: http://github.com/canaryup/faraday-request-timer
68
+ licenses:
69
+ - MIT
70
+ metadata: {}
71
+ post_install_message:
72
+ rdoc_options: []
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - '>='
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ requirements: []
86
+ rubyforge_project:
87
+ rubygems_version: 2.2.0
88
+ signing_key:
89
+ specification_version: 4
90
+ summary: Faraday request timing
91
+ test_files:
92
+ - test/lib/faraday/request/timer_test.rb
93
+ - test/test_helper.rb