mineral 0.1.1 → 0.2.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.
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