dashy4r 0.1.2 → 0.1.3

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.
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: