mineral 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/mineral.rb +31 -6
  3. data/mineral.gemspec +4 -4
  4. metadata +5 -16
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.2.0
data/lib/mineral.rb CHANGED
@@ -43,16 +43,41 @@ module Mineral
43
43
  if app.methods.include?(request.request_method) && matcher = app.regex.match(request.path_info)
44
44
  args = []
45
45
  1.step(matcher.size - 1){|group| args << matcher[group]}
46
- result = app.send(request.request_method.downcase, request, *args)
47
- if result.is_a?(Array)
48
- return result
49
- elsif result.is_a?(::Mineral::Response)
50
- return result.to_rack
51
- end
46
+
47
+ return call_mineral_endpoint(app, request.request_method.downcase, request, *args)
52
48
  end
53
49
  end
54
50
  @app.call(env)
55
51
  end
52
+
53
+ def call_mineral_endpoint(app, method, request, *args)
54
+ result = app.send(request.request_method.downcase, request, *args)
55
+
56
+ if result.is_a?(Array)
57
+ return result
58
+ elsif result.is_a?(::Mineral::Response)
59
+ return result.to_rack
60
+ end
61
+ end
62
+ end
63
+
64
+ begin
65
+ require 'new_relic/agent/instrumentation/controller_instrumentation.rb'
66
+ rescue LoadError
67
+ nil
68
+ end
69
+ if defined?(NewRelic)
70
+ class Mineral
71
+ include ::NewRelic::Agent::Instrumentation::ControllerInstrumentation
72
+
73
+ def call_mineral_endpoint_with_newrelic(app, method, request, *args)
74
+ perform_action_with_newrelic_trace(:category => :rack, :name => "#{app}.#{method}", :request => request) do
75
+ call_mineral_endpoint_without_newrelic(app, method, request, *args)
76
+ end
77
+ end
78
+
79
+ alias_method_chain :call_mineral_endpoint, :newrelic
80
+ end
56
81
  end
57
82
  end
58
83
  end
data/mineral.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mineral}
8
- s.version = "0.1.1"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["jonbell"]
12
- s.date = %q{2010-11-04}
12
+ s.date = %q{2011-09-30}
13
13
  s.description = %q{Rack metal with a better interface}
14
14
  s.email = %q{jonbell@spamcop.net}
15
15
  s.extra_rdoc_files = [
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
31
31
  s.homepage = %q{http://github.com/jonbell/mineral}
32
32
  s.rdoc_options = ["--charset=UTF-8"]
33
33
  s.require_paths = ["lib"]
34
- s.rubygems_version = %q{1.3.7}
34
+ s.rubygems_version = %q{1.3.6}
35
35
  s.summary = %q{Rack metal with a better interface}
36
36
  s.test_files = [
37
37
  "test/app/mineral/handler.rb",
@@ -43,7 +43,7 @@ Gem::Specification.new do |s|
43
43
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
44
44
  s.specification_version = 3
45
45
 
46
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
47
47
  s.add_runtime_dependency(%q<rack>, [">= 1.0.0"])
48
48
  s.add_development_dependency(%q<shoulda>, [">= 2.10.0"])
49
49
  s.add_development_dependency(%q<mocha>, [">= 0.9.0"])
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mineral
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
11
10
  platform: ruby
12
11
  authors:
13
12
  - jonbell
@@ -15,18 +14,16 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-11-04 00:00:00 -05:00
17
+ date: 2011-09-30 00:00:00 -05:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: rack
23
22
  prerelease: false
24
23
  requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
25
  - - ">="
28
26
  - !ruby/object:Gem::Version
29
- hash: 23
30
27
  segments:
31
28
  - 1
32
29
  - 0
@@ -38,11 +35,9 @@ dependencies:
38
35
  name: shoulda
39
36
  prerelease: false
40
37
  requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
38
  requirements:
43
39
  - - ">="
44
40
  - !ruby/object:Gem::Version
45
- hash: 39
46
41
  segments:
47
42
  - 2
48
43
  - 10
@@ -54,11 +49,9 @@ dependencies:
54
49
  name: mocha
55
50
  prerelease: false
56
51
  requirement: &id003 !ruby/object:Gem::Requirement
57
- none: false
58
52
  requirements:
59
53
  - - ">="
60
54
  - !ruby/object:Gem::Version
61
- hash: 59
62
55
  segments:
63
56
  - 0
64
57
  - 9
@@ -96,27 +89,23 @@ rdoc_options:
96
89
  require_paths:
97
90
  - lib
98
91
  required_ruby_version: !ruby/object:Gem::Requirement
99
- none: false
100
92
  requirements:
101
93
  - - ">="
102
94
  - !ruby/object:Gem::Version
103
- hash: 3
104
95
  segments:
105
96
  - 0
106
97
  version: "0"
107
98
  required_rubygems_version: !ruby/object:Gem::Requirement
108
- none: false
109
99
  requirements:
110
100
  - - ">="
111
101
  - !ruby/object:Gem::Version
112
- hash: 3
113
102
  segments:
114
103
  - 0
115
104
  version: "0"
116
105
  requirements: []
117
106
 
118
107
  rubyforge_project:
119
- rubygems_version: 1.3.7
108
+ rubygems_version: 1.3.6
120
109
  signing_key:
121
110
  specification_version: 3
122
111
  summary: Rack metal with a better interface