restful_metrics 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/.gitignore ADDED
@@ -0,0 +1,23 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## PROJECT::GENERAL
17
+ coverage
18
+ rdoc
19
+ pkg
20
+
21
+ ## PROJECT::SPECIFIC
22
+ .bundle
23
+ nbproject
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --colour
2
+ --format nested
3
+ --backtrace
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm --create use 1.9.3-p125@restful_metrics-ruby
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,66 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ couchlogic (1.1.0)
5
+ rest-client (~> 1.6.0)
6
+ yajl-ruby (~> 0.8.1)
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ abstract (1.0.0)
12
+ actionpack (3.0.11)
13
+ activemodel (= 3.0.11)
14
+ activesupport (= 3.0.11)
15
+ builder (~> 2.1.2)
16
+ erubis (~> 2.6.6)
17
+ i18n (~> 0.5.0)
18
+ rack (~> 1.2.1)
19
+ rack-mount (~> 0.6.14)
20
+ rack-test (~> 0.5.7)
21
+ tzinfo (~> 0.3.23)
22
+ activemodel (3.0.11)
23
+ activesupport (= 3.0.11)
24
+ builder (~> 2.1.2)
25
+ i18n (~> 0.5.0)
26
+ activesupport (3.0.11)
27
+ builder (2.1.2)
28
+ delayed_job (3.0.1)
29
+ activesupport (~> 3.0)
30
+ diff-lcs (1.1.3)
31
+ erubis (2.6.6)
32
+ abstract (>= 1.0.0)
33
+ i18n (0.5.0)
34
+ metaclass (0.0.1)
35
+ mime-types (1.17.2)
36
+ mocha (0.10.4)
37
+ metaclass (~> 0.0.1)
38
+ rack (1.2.5)
39
+ rack-mount (0.6.14)
40
+ rack (>= 1.0.0)
41
+ rack-test (0.5.7)
42
+ rack (>= 1.0)
43
+ rest-client (1.6.7)
44
+ mime-types (>= 1.16)
45
+ rspec (2.8.0)
46
+ rspec-core (~> 2.8.0)
47
+ rspec-expectations (~> 2.8.0)
48
+ rspec-mocks (~> 2.8.0)
49
+ rspec-core (2.8.0)
50
+ rspec-expectations (2.8.0)
51
+ diff-lcs (~> 1.1.2)
52
+ rspec-mocks (2.8.0)
53
+ tzinfo (0.3.31)
54
+ yajl-ruby (0.8.3)
55
+
56
+ PLATFORMS
57
+ ruby
58
+
59
+ DEPENDENCIES
60
+ actionpack (~> 3.0.0)
61
+ activesupport (~> 3.0.0)
62
+ couchlogic!
63
+ delayed_job (~> 3.0.1)
64
+ mocha (~> 0.10.4)
65
+ rack (~> 1.2.5)
66
+ rspec (~> 2.8.0)
data/Rakefile ADDED
@@ -0,0 +1,22 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rake'
5
+ require 'rspec/core'
6
+ require 'rspec/core/rake_task'
7
+
8
+ RSpec::Core::RakeTask.new(:spec) do |spec|
9
+ spec.pattern = FileList['spec/**/*_spec.rb']
10
+ end
11
+
12
+ task :default => :spec
13
+
14
+ require 'rake/rdoctask'
15
+ Rake::RDocTask.new do |rdoc|
16
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
17
+
18
+ rdoc.rdoc_dir = 'rdoc'
19
+ rdoc.title = "test #{version}"
20
+ rdoc.rdoc_files.include('README*')
21
+ rdoc.rdoc_files.include('lib/**/*.rb')
22
+ end
@@ -1,7 +1,7 @@
1
1
  module RestfulMetrics
2
2
 
3
3
  class Client
4
-
4
+
5
5
  extend LogTools
6
6
 
7
7
  @@connection = nil
@@ -23,27 +23,27 @@ module RestfulMetrics
23
23
  def debug
24
24
  @@debug
25
25
  end
26
-
26
+
27
27
  def async=(async_flag)
28
28
  # DelayedJob integration
29
29
  require 'delayed_job' if async_flag
30
-
30
+
31
31
  @@async = async_flag && (defined?(Delayed) != nil)
32
32
  @@connection.async = @@async if @@connection
33
33
  end
34
-
34
+
35
35
  def async?
36
36
  @@async
37
37
  end
38
-
38
+
39
39
  def disabled=(disabled_flag)
40
40
  @@disabled = disabled_flag
41
41
  end
42
-
42
+
43
43
  def disabled?
44
44
  @@disabled
45
45
  end
46
-
46
+
47
47
  def add_metric(fqdn, name, value, distinct_id = nil)
48
48
  params = Hash.new
49
49
  params[:metric] = Hash.new
@@ -53,11 +53,11 @@ module RestfulMetrics
53
53
  unless distinct_id.nil?
54
54
  params[:metric][:distinct_id] = distinct_id
55
55
  end
56
-
56
+
57
57
  post(Endpoint.metrics, params)
58
58
  end
59
-
60
- def add_compound_metric(fqdn, name, values, distinct_id = nil)
59
+
60
+ def add_compound_metric(fqdn, name, values, distinct_id = nil)
61
61
  params = Hash.new
62
62
  params[:compound_metric] = Hash.new
63
63
  params[:compound_metric][:fqdn] = fqdn
@@ -66,14 +66,18 @@ module RestfulMetrics
66
66
  unless distinct_id.nil?
67
67
  params[:compound_metric][:distinct_id] = distinct_id
68
68
  end
69
-
69
+
70
70
  post(Endpoint.compound_metrics, params)
71
71
  end
72
72
 
73
73
  private
74
-
74
+
75
75
  def post(endpoint, data=nil)
76
- return false if disabled?
76
+ if disabled?
77
+ logger "Skipping data points (client disabled)", :info
78
+ return false
79
+ end
80
+
77
81
  if @@connection.nil?
78
82
  if ENV["RESTFUL_METRICS_API_KEY"]
79
83
  @@connection = Connection.new(ENV["RESTFUL_METRICS_API_KEY"])
@@ -81,20 +85,15 @@ module RestfulMetrics
81
85
  raise NoConnectionEstablished
82
86
  end
83
87
  end
84
-
85
- unless production_env?
86
- logger "Skipping while not in production", :info
87
- return false
88
- end
89
-
88
+
90
89
  if async?
91
- self.delay.transmit endpoint, data
90
+ self.delay.transmit(endpoint, data)
92
91
  true
93
92
  else
94
- transmit endpoint, data
93
+ transmit(endpoint, data)
95
94
  end
96
95
  end
97
-
96
+
98
97
  def transmit(endpoint, data)
99
98
  begin
100
99
  @@connection.post(endpoint, data)
@@ -113,17 +112,6 @@ module RestfulMetrics
113
112
  end
114
113
  end
115
114
 
116
- def production_env?
117
- return true if defined?(RAILS_ENV) && RAILS_ENV == "production"
118
- return true if defined?(RACK_ENV) && RACK_ENV == "production"
119
-
120
- if defined?(Rails.env) && Rails.env == "production"
121
- return true
122
- end
123
-
124
- false
125
- end
126
-
127
115
  end
128
116
 
129
117
  end
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = %q{restful_metrics}
6
+ s.summary = %q{Ruby client for the RESTful Metrics service.}
7
+ s.description = %q{Ruby client for the RESTful Metrics service.}
8
+ s.homepage = %q{http://github.com/restful-labs/resetful_metrics-ruby}
9
+ s.version = "1.1.0"
10
+ s.authors = ["Mauricio Gomes"]
11
+ s.email = "mauricio@restful-labs.com"
12
+
13
+ s.add_dependency "yajl-ruby", "~> 0.8.1"
14
+ s.add_dependency "rest-client", "~> 1.6.0"
15
+
16
+ s.add_development_dependency "rspec", "~> 2.8.0"
17
+ s.add_development_dependency "mocha", "~> 0.10.4"
18
+ s.add_development_dependency "actionpack", "~> 3.0.0"
19
+ s.add_development_dependency "rack", "~> 1.2.5"
20
+ s.add_development_dependency "activesupport", "~> 3.0.0"
21
+ s.add_development_dependency "delayed_job", "~> 3.0.1"
22
+
23
+ s.files = `git ls-files`.split("\n")
24
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
25
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
26
+ s.require_paths = ["lib"]
27
+ end
28
+
data/spec/client_spec.rb CHANGED
@@ -1,155 +1,119 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
3
  describe "A NON-initialized Restful Metrics client" do
4
-
4
+
5
5
  it "should NOT send a metric data point" do
6
- lambda {
6
+ lambda {
7
7
  RestfulMetrics::Client.add_metric("foo.bar.org", "hit", 1)
8
8
  }.should raise_error(RestfulMetrics::NoConnectionEstablished)
9
9
  end
10
-
10
+
11
11
  it "should NOT send a compound metric data point" do
12
- lambda {
12
+ lambda {
13
13
  RestfulMetrics::Client.add_compound_metric("foo.bar.org", "hit", [1,2,3])
14
14
  }.should raise_error(RestfulMetrics::NoConnectionEstablished)
15
15
  end
16
-
16
+
17
17
  describe "in a Heroku environment" do
18
-
18
+
19
19
  before(:each) do
20
20
  ENV["RESTFUL_METRICS_API_KEY"] = "xyz123"
21
21
  RestfulMetrics::Connection.any_instance.stubs(:post).returns(100)
22
22
  end
23
-
23
+
24
24
  it "should send a metric data point" do
25
- rails_env "production" do
26
- RestfulMetrics::Client.add_metric("foo.bar.org", "hit", 1).should be_true
27
- end
25
+ RestfulMetrics::Client.add_metric("foo.bar.org", "hit", 1).should be_true
28
26
  end
29
-
27
+
30
28
  it "should send a compound metric data point" do
31
- rails_env "production" do
32
- RestfulMetrics::Client.add_compound_metric("foo.bar.org", "hit", [1,2,3]).should be_true
33
- end
29
+ RestfulMetrics::Client.add_compound_metric("foo.bar.org", "hit", [1,2,3]).should be_true
34
30
  end
35
-
31
+
36
32
  end
37
-
33
+
38
34
  end
39
35
 
40
36
  describe "A disabled Restful Metrics client" do
41
-
37
+
42
38
  before(:each) do
43
39
  RestfulMetrics::Client.disabled = true
44
40
  end
45
-
41
+
46
42
  it "should identify itself as disabled" do
47
43
  RestfulMetrics::Client.disabled?.should == true
48
44
  end
49
-
45
+
50
46
  it "should NOT send a metric if the client is in disabled-mode" do
51
47
  RestfulMetrics::Client.expects(:transmit).never
52
48
  RestfulMetrics::Client.add_metric("foo.bar.org", "hit", 1).should == false
53
49
  end
54
-
50
+
55
51
  it "should NOT send a compound metric if the client is in disabled-mode" do
56
52
  RestfulMetrics::Client.expects(:transmit).never
57
53
  RestfulMetrics::Client.add_compound_metric("foo.bar.org", "hit", [1,2,3]).should == false
58
54
  end
59
-
55
+
60
56
  end
61
57
 
62
58
  describe "An initialized Restful Metrics client" do
63
-
59
+
64
60
  before(:each) do
65
61
  @connection = RestfulMetrics::Connection
66
62
  @connection.any_instance.stubs(:post).returns(true)
67
63
  RestfulMetrics::Client.set_credentials('xyz123')
68
64
  RestfulMetrics::Client.disabled = false
69
- Delayed::Job.reset
65
+ Delayed::Job.delete_all
70
66
  end
71
-
67
+
72
68
  describe "initializing the client" do
73
-
69
+
74
70
  it "should set the API key" do
75
71
  RestfulMetrics::Client.set_credentials('4ed4ef44e44ed4').should be_true
76
72
  end
77
-
73
+
78
74
  it "should set async mode when delayed_job is loaded" do
79
75
  RestfulMetrics::Client.async = true
80
76
  RestfulMetrics::Client.async?.should be_true
81
77
  end
82
-
83
- end
84
-
85
- describe "environment detection" do
86
-
87
- it "should return false if NOT in production" do
88
- rails_env "development" do
89
- RestfulMetrics::Client.expects(:logger).returns('')
90
- RestfulMetrics::Client.add_metric("foo.bar.org", "hit", 1).should be_false
91
- end
92
- end
93
-
94
- it "should successfully send the request if in Rails production mode" do
95
- rails_env "production" do
96
- @connection.any_instance.stubs(:post).returns(100)
97
- RestfulMetrics::Client.add_metric("foo.bar.org", "hit", 1).should be_true
98
- end
99
- end
100
-
101
- it "should successfully send the request if in Rack production mode" do
102
- RACK_ENV = "production"
103
- @connection.any_instance.stubs(:post).returns(100)
104
- RestfulMetrics::Client.add_metric("foo.bar.org", "hit", 1).should be_true
105
- end
106
-
78
+
107
79
  end
108
80
 
109
81
  describe "adding metrics synchronously" do
110
-
82
+
111
83
  before(:all) do
112
84
  RestfulMetrics::Client.async = false
113
85
  RestfulMetrics::Client.async?.should be_false
114
86
  end
115
-
87
+
116
88
  it "should send the metric to Restful Metrics" do
117
- rails_env "production" do
118
- @connection.any_instance.expects(:post).at_least_once.returns({})
119
- RestfulMetrics::Client.add_metric("foo.bar.org", "hit", 1).should be_true
120
- end
89
+ @connection.any_instance.expects(:post).at_least_once.returns({})
90
+ RestfulMetrics::Client.add_metric("foo.bar.org", "hit", 1).should be_true
121
91
  end
122
-
92
+
123
93
  it "should send the compound metric to Restful Metrics" do
124
- rails_env "production" do
125
- @connection.any_instance.expects(:post).at_least_once.returns({})
126
- RestfulMetrics::Client.add_compound_metric("foo.bar.org", "hit", [1,2,3]).should be_true
127
- end
94
+ @connection.any_instance.expects(:post).at_least_once.returns({})
95
+ RestfulMetrics::Client.add_compound_metric("foo.bar.org", "hit", [1,2,3]).should be_true
128
96
  end
129
-
97
+
130
98
  end
131
99
 
132
100
  describe "adding metrics asynchronously" do
133
-
101
+
134
102
  before(:all) do
135
103
  RestfulMetrics::Client.async = true
136
104
  RestfulMetrics::Client.async?.should be_true
137
105
  end
138
-
106
+
139
107
  it "should create a delayed job for the metric" do
140
- rails_env "production" do
141
- RestfulMetrics::Client.add_metric("foo.bar.org", "hit", 1).should be_true
142
- Delayed::Job.count.should == 1
143
- end
108
+ RestfulMetrics::Client.add_metric("foo.bar.org", "hit", 1).should be_true
109
+ Delayed::Job.count.should == 1
144
110
  end
145
-
111
+
146
112
  it "should create a delayed job for the compound metric" do
147
- rails_env "production" do
148
- RestfulMetrics::Client.add_compound_metric("foo.bar.org", "hit", [1,2,3]).should be_true
149
- Delayed::Job.count.should == 1
150
- end
113
+ RestfulMetrics::Client.add_compound_metric("foo.bar.org", "hit", [1,2,3]).should be_true
114
+ Delayed::Job.count.should == 1
151
115
  end
152
-
116
+
153
117
  end
154
-
118
+
155
119
  end
@@ -1,19 +1,19 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
3
  describe "Rails controller integration" do
4
-
4
+
5
5
  class ApplicationController < ActionController::Base
6
-
6
+
7
7
  before_filter :track_impression
8
-
8
+
9
9
  private
10
-
10
+
11
11
  def track_impression
12
12
  RestfulMetrics::Client.add_metric("foo.bar.org", "impression", 1, restful_metrics_cookie)
13
13
  end
14
14
 
15
15
  end
16
-
16
+
17
17
  class TestController < ApplicationController
18
18
 
19
19
  def index
@@ -24,19 +24,21 @@ describe "Rails controller integration" do
24
24
 
25
25
  def rescue_action(e); raise(e); end
26
26
  end
27
- ActionController::Routing::Routes.draw {|map| map.resources :test }
28
-
27
+
29
28
  before(:each) do
29
+ ActionDispatch::Request.any_instance.stubs(:cookie_jar).returns({})
30
30
  RestfulMetrics::Connection.any_instance.stubs(:post).returns(true)
31
31
  RestfulMetrics::Client.set_credentials('xyz123')
32
- @request = ActionController::TestRequest.new
33
- @request.action = 'index'
34
- @request.path = "/index"
35
32
  end
36
-
33
+
37
34
  it "should track all metrics in the stack" do
38
35
  RestfulMetrics::Client.expects(:add_metric).twice.returns(true)
39
- TestController.new.process(@request, ActionController::TestResponse.new).code.should == "200"
36
+
37
+ env = Rack::MockRequest.env_for('/', :params => {'id' => '1'})
38
+ status, headers, body = TestController.action(:index).call(env)
39
+ @response = ActionDispatch::TestResponse.new(status, headers, body)
40
+
41
+ @response.code.should == "200"
40
42
  end
41
-
43
+
42
44
  end
@@ -0,0 +1,112 @@
1
+ require 'ostruct'
2
+
3
+ # An in-memory backend suitable only for testing. Tries to behave as if it were an ORM.
4
+ module Delayed
5
+ module Backend
6
+ module Mock
7
+ class Job
8
+ attr_accessor :id
9
+ attr_accessor :priority
10
+ attr_accessor :attempts
11
+ attr_accessor :handler
12
+ attr_accessor :last_error
13
+ attr_accessor :run_at
14
+ attr_accessor :locked_at
15
+ attr_accessor :locked_by
16
+ attr_accessor :failed_at
17
+ attr_accessor :queue
18
+
19
+ include Delayed::Backend::Base
20
+
21
+ cattr_accessor :id
22
+ self.id = 0
23
+
24
+ def initialize(hash = {})
25
+ self.attempts = 0
26
+ self.priority = 0
27
+ self.id = (self.class.id += 1)
28
+ hash.each{|k,v| send(:"#{k}=", v)}
29
+ end
30
+
31
+ @jobs = []
32
+ def self.all
33
+ @jobs
34
+ end
35
+
36
+ def self.count
37
+ all.size
38
+ end
39
+
40
+ def self.delete_all
41
+ all.clear
42
+ end
43
+
44
+ def self.create(attrs = {})
45
+ new(attrs).tap do |o|
46
+ o.save
47
+ end
48
+ end
49
+
50
+ def self.create!(*args); create(*args); end
51
+
52
+ def self.clear_locks!(worker_name)
53
+ all.select{|j| j.locked_by == worker_name}.each {|j| j.locked_by = nil; j.locked_at = nil}
54
+ end
55
+
56
+ # Find a few candidate jobs to run (in case some immediately get locked by others).
57
+ def self.find_available(worker_name, limit = 5, max_run_time = Worker.max_run_time)
58
+ jobs = all.select do |j|
59
+ j.run_at <= db_time_now &&
60
+ (j.locked_at.nil? || j.locked_at < db_time_now - max_run_time || j.locked_by == worker_name) &&
61
+ j.failed_at.nil?
62
+ end
63
+
64
+ jobs = jobs.select{|j| Worker.queues.include?(j.queue)} if Worker.queues.any?
65
+ jobs = jobs.select{|j| j.priority >= Worker.min_priority} if Worker.min_priority
66
+ jobs = jobs.select{|j| j.priority <= Worker.max_priority} if Worker.max_priority
67
+ jobs.sort_by{|j| [j.priority, j.run_at]}[0..limit-1]
68
+ end
69
+
70
+ # Lock this job for this worker.
71
+ # Returns true if we have the lock, false otherwise.
72
+ def lock_exclusively!(max_run_time, worker)
73
+ now = self.class.db_time_now
74
+ if locked_by != worker
75
+ # We don't own this job so we will update the locked_by name and the locked_at
76
+ self.locked_at = now
77
+ self.locked_by = worker
78
+ end
79
+
80
+ return true
81
+ end
82
+
83
+ def self.db_time_now
84
+ Time.current
85
+ end
86
+
87
+ def update_attributes(attrs = {})
88
+ attrs.each{|k,v| send(:"#{k}=", v)}
89
+ save
90
+ end
91
+
92
+ def destroy
93
+ self.class.all.delete(self)
94
+ end
95
+
96
+ def save
97
+ self.run_at ||= Time.current
98
+
99
+ self.class.all << self unless self.class.all.include?(self)
100
+ true
101
+ end
102
+
103
+ def save!; save; end
104
+
105
+ def reload
106
+ reset
107
+ self
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
File without changes
data/spec/spec_helper.rb CHANGED
@@ -2,15 +2,21 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
 
4
4
  require 'active_support'
5
+ require 'active_support/core_ext'
5
6
  require 'active_support/test_case'
6
7
  require 'action_controller'
7
- require 'action_controller/test_process'
8
+ require 'action_dispatch/testing/test_process'
9
+ require 'action_dispatch/testing/test_request'
10
+ require 'action_dispatch/testing/test_response'
8
11
 
9
12
  require 'rspec'
10
13
  require 'mocha'
11
14
  require 'restful_metrics'
15
+
12
16
  require 'delayed_job'
13
17
 
18
+ include Rack::Test::Methods
19
+
14
20
  # Requires supporting files with custom matchers and macros, etc,
15
21
  # in ./support/ and its subdirectories.
16
22
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
@@ -19,20 +25,4 @@ RSpec.configure do |config|
19
25
  config.mock_framework = :mocha
20
26
  end
21
27
 
22
- #
23
- # Use a mock backend for testing
24
- #
25
28
  Delayed::Worker.backend = :mock
26
-
27
- #
28
- # Fake the rails environment for testing
29
- #
30
- class Rails; cattr_accessor :env; end
31
-
32
- # Simulate Rails enviornments
33
- def rails_env(env, &block)
34
- old_env = Rails.env
35
- Rails.env = env
36
- yield
37
- Rails.env = old_env
38
- end
metadata CHANGED
@@ -1,251 +1,161 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: restful_metrics
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
4
5
  prerelease:
5
- version: 1.0.1
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Mauricio Gomes
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-09-12 00:00:00 -04:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2012-02-19 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: yajl-ruby
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70354861209440 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
18
+ requirements:
21
19
  - - ~>
22
- - !ruby/object:Gem::Version
20
+ - !ruby/object:Gem::Version
23
21
  version: 0.8.1
24
22
  type: :runtime
25
23
  prerelease: false
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *70354861209440
25
+ - !ruby/object:Gem::Dependency
28
26
  name: rest-client
29
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ requirement: &70354861208320 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
29
+ requirements:
32
30
  - - ~>
33
- - !ruby/object:Gem::Version
31
+ - !ruby/object:Gem::Version
34
32
  version: 1.6.0
35
33
  type: :runtime
36
34
  prerelease: false
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: jeweler
40
- requirement: &id003 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
46
- type: :development
47
- prerelease: false
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: i18n
51
- requirement: &id004 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "0"
57
- type: :development
58
- prerelease: false
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: actionpack
62
- requirement: &id005 !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - ~>
66
- - !ruby/object:Gem::Version
67
- version: 2.3.9
68
- type: :development
69
- prerelease: false
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: activesupport
73
- requirement: &id006 !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ~>
77
- - !ruby/object:Gem::Version
78
- version: 2.3.9
79
- type: :development
80
- prerelease: false
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: delayed_job
84
- requirement: &id007 !ruby/object:Gem::Requirement
85
- none: false
86
- requirements:
87
- - - ~>
88
- - !ruby/object:Gem::Version
89
- version: 2.0.0
90
- type: :development
91
- prerelease: false
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *70354861208320
36
+ - !ruby/object:Gem::Dependency
94
37
  name: rspec
95
- requirement: &id008 !ruby/object:Gem::Requirement
38
+ requirement: &70354861207620 !ruby/object:Gem::Requirement
96
39
  none: false
97
- requirements:
40
+ requirements:
98
41
  - - ~>
99
- - !ruby/object:Gem::Version
100
- version: 2.5.0
42
+ - !ruby/object:Gem::Version
43
+ version: 2.8.0
101
44
  type: :development
102
45
  prerelease: false
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
46
+ version_requirements: *70354861207620
47
+ - !ruby/object:Gem::Dependency
105
48
  name: mocha
106
- requirement: &id009 !ruby/object:Gem::Requirement
107
- none: false
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- version: "0"
112
- type: :development
113
- prerelease: false
114
- version_requirements: *id009
115
- - !ruby/object:Gem::Dependency
116
- name: yajl-ruby
117
- requirement: &id010 !ruby/object:Gem::Requirement
49
+ requirement: &70354861206880 !ruby/object:Gem::Requirement
118
50
  none: false
119
- requirements:
51
+ requirements:
120
52
  - - ~>
121
- - !ruby/object:Gem::Version
122
- version: 0.8.2
123
- type: :runtime
53
+ - !ruby/object:Gem::Version
54
+ version: 0.10.4
55
+ type: :development
124
56
  prerelease: false
125
- version_requirements: *id010
126
- - !ruby/object:Gem::Dependency
127
- name: rest-client
128
- requirement: &id011 !ruby/object:Gem::Requirement
57
+ version_requirements: *70354861206880
58
+ - !ruby/object:Gem::Dependency
59
+ name: actionpack
60
+ requirement: &70354861206140 !ruby/object:Gem::Requirement
129
61
  none: false
130
- requirements:
62
+ requirements:
131
63
  - - ~>
132
- - !ruby/object:Gem::Version
133
- version: 1.6.0
134
- type: :runtime
135
- prerelease: false
136
- version_requirements: *id011
137
- - !ruby/object:Gem::Dependency
138
- name: rack
139
- requirement: &id012 !ruby/object:Gem::Requirement
140
- none: false
141
- requirements:
142
- - - ">"
143
- - !ruby/object:Gem::Version
144
- version: 1.0.0
64
+ - !ruby/object:Gem::Version
65
+ version: 3.0.0
145
66
  type: :development
146
67
  prerelease: false
147
- version_requirements: *id012
148
- - !ruby/object:Gem::Dependency
149
- name: i18n
150
- requirement: &id013 !ruby/object:Gem::Requirement
68
+ version_requirements: *70354861206140
69
+ - !ruby/object:Gem::Dependency
70
+ name: rack
71
+ requirement: &70354861205400 !ruby/object:Gem::Requirement
151
72
  none: false
152
- requirements:
153
- - - ">="
154
- - !ruby/object:Gem::Version
155
- version: "0"
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 1.2.5
156
77
  type: :development
157
78
  prerelease: false
158
- version_requirements: *id013
159
- - !ruby/object:Gem::Dependency
79
+ version_requirements: *70354861205400
80
+ - !ruby/object:Gem::Dependency
160
81
  name: activesupport
161
- requirement: &id014 !ruby/object:Gem::Requirement
82
+ requirement: &70354861204600 !ruby/object:Gem::Requirement
162
83
  none: false
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: "0"
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 3.0.0
167
88
  type: :development
168
89
  prerelease: false
169
- version_requirements: *id014
170
- - !ruby/object:Gem::Dependency
90
+ version_requirements: *70354861204600
91
+ - !ruby/object:Gem::Dependency
171
92
  name: delayed_job
172
- requirement: &id015 !ruby/object:Gem::Requirement
93
+ requirement: &70354861203940 !ruby/object:Gem::Requirement
173
94
  none: false
174
- requirements:
175
- - - <
176
- - !ruby/object:Gem::Version
177
- version: 2.1.0
178
- type: :development
179
- prerelease: false
180
- version_requirements: *id015
181
- - !ruby/object:Gem::Dependency
182
- name: rspec
183
- requirement: &id016 !ruby/object:Gem::Requirement
184
- none: false
185
- requirements:
186
- - - <
187
- - !ruby/object:Gem::Version
188
- version: 2.0.0
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ version: 3.0.1
189
99
  type: :development
190
100
  prerelease: false
191
- version_requirements: *id016
101
+ version_requirements: *70354861203940
192
102
  description: Ruby client for the RESTful Metrics service.
193
103
  email: mauricio@restful-labs.com
194
104
  executables: []
195
-
196
105
  extensions: []
197
-
198
- extra_rdoc_files:
199
- - LICENSE
200
- - README.md
201
- files:
106
+ extra_rdoc_files: []
107
+ files:
108
+ - .document
109
+ - .gitignore
110
+ - .rspec
111
+ - .rvmrc
112
+ - Gemfile
113
+ - Gemfile.lock
202
114
  - LICENSE
203
115
  - README.md
116
+ - Rakefile
204
117
  - VERSION
205
- - lib/delayed/backend/mock.rb
206
118
  - lib/restful_metrics.rb
207
119
  - lib/restful_metrics/client.rb
208
120
  - lib/restful_metrics/connection.rb
209
121
  - lib/restful_metrics/endpoint.rb
210
122
  - lib/restful_metrics/log_tools.rb
211
123
  - lib/restful_metrics/railtie/cookie_integration.rb
124
+ - restful_metrics.gemspec
212
125
  - spec/client_spec.rb
213
126
  - spec/cookie_integration_spec.rb
127
+ - spec/delayed/backend/mock.rb
128
+ - spec/delayed/serialization/mock.rb
214
129
  - spec/endpoint_spec.rb
215
130
  - spec/spec_helper.rb
216
- has_rdoc: true
217
- homepage: http://restfulmetrics.com
131
+ homepage: http://github.com/restful-labs/resetful_metrics-ruby
218
132
  licenses: []
219
-
220
133
  post_install_message:
221
134
  rdoc_options: []
222
-
223
- require_paths:
135
+ require_paths:
224
136
  - lib
225
- required_ruby_version: !ruby/object:Gem::Requirement
137
+ required_ruby_version: !ruby/object:Gem::Requirement
226
138
  none: false
227
- requirements:
228
- - - ">="
229
- - !ruby/object:Gem::Version
230
- hash: 174319405052663915
231
- segments:
232
- - 0
233
- version: "0"
234
- required_rubygems_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ required_rubygems_version: !ruby/object:Gem::Requirement
235
144
  none: false
236
- requirements:
237
- - - ">="
238
- - !ruby/object:Gem::Version
239
- version: "0"
145
+ requirements:
146
+ - - ! '>='
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
240
149
  requirements: []
241
-
242
150
  rubyforge_project:
243
- rubygems_version: 1.5.2
151
+ rubygems_version: 1.8.16
244
152
  signing_key:
245
153
  specification_version: 3
246
- summary: Ruby client for RESTful Metrics
247
- test_files:
154
+ summary: Ruby client for the RESTful Metrics service.
155
+ test_files:
248
156
  - spec/client_spec.rb
249
157
  - spec/cookie_integration_spec.rb
158
+ - spec/delayed/backend/mock.rb
159
+ - spec/delayed/serialization/mock.rb
250
160
  - spec/endpoint_spec.rb
251
161
  - spec/spec_helper.rb
@@ -1,25 +0,0 @@
1
- # Used by Delayed::Job during testing
2
-
3
- module Delayed
4
- module Backend
5
- module Mock
6
- class Job
7
- include Delayed::Backend::Base
8
-
9
- @@job_count = 0
10
-
11
- def self.create(params)
12
- @@job_count += 1
13
- end
14
-
15
- def self.count
16
- @@job_count
17
- end
18
-
19
- def self.reset
20
- @@job_count = 0
21
- end
22
- end
23
- end
24
- end
25
- end