dashy4r 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA512:
3
- metadata.gz: 0482fc0cf879e7107c6029a587b337585af5ca7fa57d55c01a89451074f2c9b01b27b92bf1b24570cbdf5452cc6872057cfe9802f1c9920d8c8d46ee66d397c3
4
- data.tar.gz: 186720facbc6181ea25006fc8e6de009c1bd1ff655970c96a4140cf4e5074ebfec85f7527433037538fb571a632c32180bcbb9020a86ac7fcddd8c89b1463dad
5
2
  SHA1:
6
- metadata.gz: 7c3075e4b40103c02ec8ba498941419bf03c55af
7
- data.tar.gz: df5ae3f89aaedec648a90025f472af82bff87e2c
3
+ data.tar.gz: c140f083543cf8e640e9bb09b2c3fa6f0b2dee7f
4
+ metadata.gz: 1e023f46d7201c47f354833b98280b8baf900e43
5
+ SHA512:
6
+ data.tar.gz: e1a776e2d280b1240a06c93cc7184d56919788e164d4e47abdaee239a4b5c8afaa9c6748738b27c92db9778bc7409ead7f6e812dd803643fc1854f4ec91aae9a
7
+ metadata.gz: 74b4b3415d390a846d0ad938bc7f057ac06f676fde0c13c83cb6ff6387e614b3dd7f146cd613a7fbaca1af75681e94b51589a4685e60b62bf97a3d5adb2c150b
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 1.8.7
data/Gemfile CHANGED
@@ -1,10 +1,16 @@
1
1
  source "http://rubygems.org"
2
2
 
3
+ gem 'system_timer', '~> 1.2.4'
4
+ gem 'mime-types', '~> 1.16'
5
+ gem 'rest-client', '~> 1.6.7'
6
+ gem 'nokogiri', '~> 1.5.10'
7
+ gem "webmock"
8
+
3
9
  group :development do
4
- gem 'system_timer', '~> 1.2.4'
5
- gem 'mime-types', '~> 1.16'
6
- gem 'rest-client', '~> 1.6.7'
7
- gem 'nokogiri', '~> 1.5.10'
8
10
  gem "bundler", "~> 1.0"
9
11
  gem "jeweler", "~> 2.0.1"
10
12
  end
13
+
14
+ group :development, :test do
15
+ gem 'rspec', '~> 3.0.0'
16
+ end
data/Gemfile.lock CHANGED
@@ -3,6 +3,9 @@ GEM
3
3
  specs:
4
4
  addressable (2.3.6)
5
5
  builder (3.2.2)
6
+ crack (0.4.2)
7
+ safe_yaml (~> 1.0.0)
8
+ diff-lcs (1.2.5)
6
9
  faraday (0.8.9)
7
10
  multipart-post (~> 1.2.0)
8
11
  git (1.2.6)
@@ -43,7 +46,23 @@ GEM
43
46
  json (~> 1.4)
44
47
  rest-client (1.6.7)
45
48
  mime-types (>= 1.16)
49
+ rspec (3.0.0)
50
+ rspec-core (~> 3.0.0)
51
+ rspec-expectations (~> 3.0.0)
52
+ rspec-mocks (~> 3.0.0)
53
+ rspec-core (3.0.0)
54
+ rspec-support (~> 3.0.0)
55
+ rspec-expectations (3.0.0)
56
+ diff-lcs (>= 1.2.0, < 2.0)
57
+ rspec-support (~> 3.0.0)
58
+ rspec-mocks (3.0.0)
59
+ rspec-support (~> 3.0.0)
60
+ rspec-support (3.0.0)
61
+ safe_yaml (1.0.3)
46
62
  system_timer (1.2.4)
63
+ webmock (1.18.0)
64
+ addressable (>= 2.3.6)
65
+ crack (>= 0.3.2)
47
66
 
48
67
  PLATFORMS
49
68
  ruby
@@ -54,4 +73,6 @@ DEPENDENCIES
54
73
  mime-types (~> 1.16)
55
74
  nokogiri (~> 1.5.10)
56
75
  rest-client (~> 1.6.7)
76
+ rspec (~> 3.0.0)
57
77
  system_timer (~> 1.2.4)
78
+ webmock
data/README.md CHANGED
@@ -3,6 +3,8 @@ dashy4r
3
3
 
4
4
  dashy4r is a gem that helps you use ruby to integrate with [Dashy](https://github.com/thoughtworks/dashy)
5
5
 
6
+ [![Build Status](https://snap-ci.com/thoughtworks/dashy4r/branch/master/build_image)](https://snap-ci.com/thoughtworks/dashy4r/branch/master)
7
+
6
8
  ## Documentation
7
9
 
8
10
  ### Installing
data/Rakefile CHANGED
@@ -26,20 +26,13 @@ Jeweler::Tasks.new do |gem|
26
26
  end
27
27
  Jeweler::RubygemsDotOrgTasks.new
28
28
 
29
- require 'rake/testtask'
30
- Rake::TestTask.new(:test) do |test|
31
- test.libs << 'lib' << 'test'
32
- test.pattern = 'test/**/test_*.rb'
33
- test.verbose = true
29
+ require 'rspec/core'
30
+ require 'rspec/core/rake_task'
31
+ RSpec::Core::RakeTask.new(:spec) do |spec|
32
+ spec.pattern = FileList['spec/**/*_spec.rb']
34
33
  end
35
34
 
36
- desc "Code coverage detail"
37
- task :simplecov do
38
- ENV['COVERAGE'] = "true"
39
- Rake::Task['test'].execute
40
- end
41
-
42
- task :default => :test
35
+ task :default => :spec
43
36
 
44
37
  require 'rdoc/task'
45
38
  Rake::RDocTask.new do |rdoc|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
data/dashy4r.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "dashy4r"
8
- s.version = "0.1.2"
8
+ s.version = "0.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["ThoughtWorks"]
12
- s.date = "2014-06-03"
12
+ s.date = "2014-06-09"
13
13
  s.description = "Intercept endpoint calls to notify a Dash server about endpoint status"
14
14
  s.email = "aduarte@thoughtworks.com"
15
15
  s.extra_rdoc_files = [
@@ -17,6 +17,7 @@ Gem::Specification.new do |s|
17
17
  "README.md"
18
18
  ]
19
19
  s.files = [
20
+ ".ruby-version",
20
21
  "Gemfile",
21
22
  "Gemfile.lock",
22
23
  "LICENSE.txt",
@@ -28,7 +29,11 @@ Gem::Specification.new do |s|
28
29
  "lib/dashy/config_yml.rb",
29
30
  "lib/dashy/rest_interface.rb",
30
31
  "lib/dashy/runner.rb",
31
- "lib/dashy4r.rb"
32
+ "lib/dashy4r.rb",
33
+ "spec/dashy/base_spec.rb",
34
+ "spec/dashy/rest_interface_spec.rb",
35
+ "spec/dashy_config.yml",
36
+ "spec/spec_helper.rb"
32
37
  ]
33
38
  s.homepage = "http://github.com/thoughtworks/dashy4r"
34
39
  s.licenses = ["MIT"]
@@ -41,27 +46,33 @@ Gem::Specification.new do |s|
41
46
  s.specification_version = 4
42
47
 
43
48
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
44
- s.add_development_dependency(%q<system_timer>, ["~> 1.2.4"])
45
- s.add_development_dependency(%q<mime-types>, ["~> 1.16"])
46
- s.add_development_dependency(%q<rest-client>, ["~> 1.6.7"])
47
- s.add_development_dependency(%q<nokogiri>, ["~> 1.5.10"])
49
+ s.add_runtime_dependency(%q<system_timer>, ["~> 1.2.4"])
50
+ s.add_runtime_dependency(%q<mime-types>, ["~> 1.16"])
51
+ s.add_runtime_dependency(%q<rest-client>, ["~> 1.6.7"])
52
+ s.add_runtime_dependency(%q<nokogiri>, ["~> 1.5.10"])
53
+ s.add_runtime_dependency(%q<webmock>, [">= 0"])
48
54
  s.add_development_dependency(%q<bundler>, ["~> 1.0"])
49
55
  s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
56
+ s.add_development_dependency(%q<rspec>, ["~> 3.0.0"])
50
57
  else
51
58
  s.add_dependency(%q<system_timer>, ["~> 1.2.4"])
52
59
  s.add_dependency(%q<mime-types>, ["~> 1.16"])
53
60
  s.add_dependency(%q<rest-client>, ["~> 1.6.7"])
54
61
  s.add_dependency(%q<nokogiri>, ["~> 1.5.10"])
62
+ s.add_dependency(%q<webmock>, [">= 0"])
55
63
  s.add_dependency(%q<bundler>, ["~> 1.0"])
56
64
  s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
65
+ s.add_dependency(%q<rspec>, ["~> 3.0.0"])
57
66
  end
58
67
  else
59
68
  s.add_dependency(%q<system_timer>, ["~> 1.2.4"])
60
69
  s.add_dependency(%q<mime-types>, ["~> 1.16"])
61
70
  s.add_dependency(%q<rest-client>, ["~> 1.6.7"])
62
71
  s.add_dependency(%q<nokogiri>, ["~> 1.5.10"])
72
+ s.add_dependency(%q<webmock>, [">= 0"])
63
73
  s.add_dependency(%q<bundler>, ["~> 1.0"])
64
74
  s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
75
+ s.add_dependency(%q<rspec>, ["~> 3.0.0"])
65
76
  end
66
77
  end
67
78
 
@@ -9,7 +9,6 @@ module Dashy
9
9
  return unless Dashy::Base.enabled?
10
10
  begin
11
11
  config = Dashy::Base.config
12
- # TODO: change SystemTimer to use Timeout::timeout instead for ruby ~>1.9
13
12
  SystemTimer.timeout_after(config.timeout) do
14
13
  RestClient.post "#{config.url}/requests/#{config.app_id}", :request => options
15
14
  end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+ require './lib/dashy4r'
3
+
4
+ describe Dashy::Base do
5
+ it "should set config" do
6
+ file_path = "#{File.dirname(__FILE__)}/../dashy_config.yml"
7
+ Dashy::Base.enable_with_config file_path
8
+
9
+ config = Dashy::Base.config
10
+
11
+ expect(config.app_id).to eq 123
12
+ expect(config.url).to eq 'http://localhost:3000'
13
+ expect(config.timeout).to eq 1
14
+ end
15
+
16
+ it "should be enabled by default" do
17
+ file_path = "#{File.dirname(__FILE__)}/../dashy_config.yml"
18
+ Dashy::Base.enable_with_config file_path
19
+
20
+ expect(Dashy::Base.enabled?).to eq true
21
+ end
22
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+ require './lib/dashy4r'
3
+ require 'webmock/rspec'
4
+
5
+ describe Dashy::RestInterface do
6
+ let(:options) {{ :environment => 'test', :endpoint => 'a_service' }}
7
+ let(:success_report) { ({:success => true }).merge(options) }
8
+ let(:failure_report) { ({:success => false }).merge(options) }
9
+ let(:dashy_local_url) do
10
+ config = Dashy::Base.config
11
+ "#{config.url}/requests/#{config.app_id}"
12
+ end
13
+
14
+ before(:all) do
15
+ file_path = "#{File.dirname(__FILE__)}/../dashy_config.yml"
16
+ Dashy::Base.enable_with_config file_path
17
+ end
18
+
19
+ it "should report status with success" do
20
+ stub_report_request! :success => true
21
+
22
+ Dashy::RestInterface.report_status success_report
23
+
24
+ expect(WebMock).to have_requested(:post, dashy_local_url).with success_report
25
+ end
26
+
27
+ it "should report status with failure" do
28
+ stub_report_request! :success => false
29
+
30
+ Dashy::RestInterface.report_status failure_report
31
+
32
+ expect(WebMock).to have_requested(:post, dashy_local_url).with failure_report
33
+ end
34
+
35
+ def stub_report_request!(status)
36
+ stub_request(:post, dashy_local_url).
37
+ with(
38
+ :body =>
39
+ {"request"=>
40
+ {
41
+ "environment"=> options[:environment].to_s,
42
+ "endpoint"=> options[:endpoint].to_s,
43
+ "success"=> status[:success].to_s
44
+ }
45
+ },
46
+ :headers => {'Content-Type'=>'application/x-www-form-urlencoded'}
47
+ ).to_return(:status => 200, :body => "", :headers => {})
48
+ end
49
+ end
@@ -0,0 +1,3 @@
1
+ app_id: 123
2
+ url: http://localhost:3000
3
+ timeout: 1
@@ -0,0 +1,5 @@
1
+ Dir['./lib/**/*.rb'].each {|file| require file }
2
+ RSpec.configure do |config|
3
+ config.color = true
4
+ config.formatter = :documentation
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dashy4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ThoughtWorks
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2014-06-03 00:00:00 Z
12
+ date: 2014-06-09 00:00:00 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  requirement: &id001 !ruby/object:Gem::Requirement
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: 1.2.4
20
20
  version_requirements: *id001
21
21
  prerelease: false
22
- type: :development
22
+ type: :runtime
23
23
  name: system_timer
24
24
  - !ruby/object:Gem::Dependency
25
25
  requirement: &id002 !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: "1.16"
30
30
  version_requirements: *id002
31
31
  prerelease: false
32
- type: :development
32
+ type: :runtime
33
33
  name: mime-types
34
34
  - !ruby/object:Gem::Dependency
35
35
  requirement: &id003 !ruby/object:Gem::Requirement
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: 1.6.7
40
40
  version_requirements: *id003
41
41
  prerelease: false
42
- type: :development
42
+ type: :runtime
43
43
  name: rest-client
44
44
  - !ruby/object:Gem::Dependency
45
45
  requirement: &id004 !ruby/object:Gem::Requirement
@@ -49,28 +49,49 @@ dependencies:
49
49
  version: 1.5.10
50
50
  version_requirements: *id004
51
51
  prerelease: false
52
- type: :development
52
+ type: :runtime
53
53
  name: nokogiri
54
54
  - !ruby/object:Gem::Dependency
55
55
  requirement: &id005 !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - &id009
58
+ - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: "0"
61
+ version_requirements: *id005
62
+ prerelease: false
63
+ type: :runtime
64
+ name: webmock
65
+ - !ruby/object:Gem::Dependency
66
+ requirement: &id006 !ruby/object:Gem::Requirement
56
67
  requirements:
57
68
  - - ~>
58
69
  - !ruby/object:Gem::Version
59
70
  version: "1.0"
60
- version_requirements: *id005
71
+ version_requirements: *id006
61
72
  prerelease: false
62
73
  type: :development
63
74
  name: bundler
64
75
  - !ruby/object:Gem::Dependency
65
- requirement: &id006 !ruby/object:Gem::Requirement
76
+ requirement: &id007 !ruby/object:Gem::Requirement
66
77
  requirements:
67
78
  - - ~>
68
79
  - !ruby/object:Gem::Version
69
80
  version: 2.0.1
70
- version_requirements: *id006
81
+ version_requirements: *id007
71
82
  prerelease: false
72
83
  type: :development
73
84
  name: jeweler
85
+ - !ruby/object:Gem::Dependency
86
+ requirement: &id008 !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ version: 3.0.0
91
+ version_requirements: *id008
92
+ prerelease: false
93
+ type: :development
94
+ name: rspec
74
95
  description: Intercept endpoint calls to notify a Dash server about endpoint status
75
96
  email: aduarte@thoughtworks.com
76
97
  executables: []
@@ -81,6 +102,7 @@ extra_rdoc_files:
81
102
  - LICENSE.txt
82
103
  - README.md
83
104
  files:
105
+ - .ruby-version
84
106
  - Gemfile
85
107
  - Gemfile.lock
86
108
  - LICENSE.txt
@@ -93,6 +115,10 @@ files:
93
115
  - lib/dashy/rest_interface.rb
94
116
  - lib/dashy/runner.rb
95
117
  - lib/dashy4r.rb
118
+ - spec/dashy/base_spec.rb
119
+ - spec/dashy/rest_interface_spec.rb
120
+ - spec/dashy_config.yml
121
+ - spec/spec_helper.rb
96
122
  homepage: http://github.com/thoughtworks/dashy4r
97
123
  licenses:
98
124
  - MIT
@@ -110,9 +136,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
136
  version: 1.8.7
111
137
  required_rubygems_version: !ruby/object:Gem::Requirement
112
138
  requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: "0"
139
+ - *id009
116
140
  requirements: []
117
141
 
118
142
  rubyforge_project: