futures_pipeline 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -3,5 +3,6 @@ rvm:
3
3
  - 1.9.1
4
4
  - 1.9.2
5
5
  - jruby
6
+ - rbx
6
7
  - ree
7
8
  - ruby-head
data/Gemfile CHANGED
@@ -4,9 +4,5 @@ platforms :jruby do
4
4
  gem 'jruby-openssl', '~> 0.7'
5
5
  end
6
6
 
7
- group :development do
8
- gem 'yard', :git => 'https://github.com/lsegal/yard.git'
9
- end
10
-
11
7
  # Specify your gem's dependencies in gem_template.gemspec
12
8
  gemspec
data/README.md CHANGED
@@ -64,6 +64,10 @@ Submitting a Pull Request
64
64
  8. Commit and push your changes.
65
65
  9. Submit a pull request. Please do not include changes to the gemspec, version, or history file. (If you want to create your own version for some reason, please do so in a separate commit.)
66
66
 
67
+ Credits
68
+ -------
69
+ Futures, Inc. REST API developed by [Tom Harris](https://github.com/tomharris).
70
+
67
71
  Copyright
68
72
  ---------
69
73
  Copyright (c) 2011 Code for America.
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ #!/usr/bin/env rake
2
+
1
3
  require 'bundler'
2
4
  Bundler::GemHelper.install_tasks
3
5
 
@@ -2,18 +2,19 @@
2
2
  require File.expand_path('../lib/futures_pipeline/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.add_development_dependency('ZenTest', '~> 4.5')
6
- gem.add_development_dependency('maruku', '~> 0.6')
7
- gem.add_development_dependency('rake', '~> 0.8')
8
- gem.add_development_dependency('rspec', '~> 2.6')
9
- gem.add_development_dependency('simplecov', '~> 0.4')
10
- # gem.add_development_dependency('yard', '~> 0.7')
11
- gem.add_runtime_dependency('faraday', '~> 0.6.1')
12
- gem.add_runtime_dependency('faraday_middleware', '~> 0.6.3')
13
- gem.add_runtime_dependency('hashie', '~> 1.0.0')
14
- gem.add_runtime_dependency('json', '~> 1.5.1')
15
- gem.add_runtime_dependency('multi_json', '~> 1.0.1')
16
- gem.add_runtime_dependency('rash', '~> 0.3.0')
5
+ gem.add_development_dependency 'ZenTest', '~> 4.5'
6
+ gem.add_development_dependency 'maruku', '~> 0.6'
7
+ gem.add_development_dependency 'rake', '~> 0.9'
8
+ gem.add_development_dependency 'rspec', '~> 2.6'
9
+ gem.add_development_dependency 'simplecov', '~> 0.4'
10
+ gem.add_development_dependency 'webmock', '~> 1.6'
11
+ gem.add_development_dependency 'yard', '~> 0.7'
12
+ gem.add_runtime_dependency 'faraday', '~> 0.6.1'
13
+ gem.add_runtime_dependency 'faraday_middleware', '~> 0.6.3'
14
+ gem.add_runtime_dependency 'hashie', '~> 1.0.0'
15
+ gem.add_runtime_dependency 'json', '~> 1.5.1'
16
+ gem.add_runtime_dependency 'multi_json', '~> 1.0.2'
17
+ gem.add_runtime_dependency 'rash', '~> 0.3.0'
17
18
  gem.authors = ["Erik Michaels-Ober", "Ryan Resella"]
18
19
  gem.description = %q{Ruby wrapper for the Futures, Inc. US Military Pipeline API}
19
20
  gem.email = ['erik@codeforamerica.org', 'ryan@codeforamerica.org']
@@ -31,5 +31,18 @@ module FuturesPipeline
31
31
  api_safe_onet_soc_code = onet_soc_code.tr(".", "-")
32
32
  get("/api/v1/careers/#{api_safe_onet_soc_code}.json", options)
33
33
  end
34
+
35
+ # Search for careers by MOC code. Returns a list of careers related to the MOC.
36
+ #
37
+ # @param moc [String] The MOC
38
+ # @param options [Hash] A customizable set of options.
39
+ # @return [Hashie::Mash]
40
+ # @example
41
+ # @client = FuturesPipeline.new
42
+ # @client.search("11b")
43
+ def search(moc, options={})
44
+ get("/api/v1/careers/search.json?moc=#{moc}", options)
45
+ end
46
+
34
47
  end
35
48
  end
@@ -1,3 +1,3 @@
1
1
  module FuturesPipeline
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -18,10 +18,15 @@ describe Faraday::Response do
18
18
  }.each do |status, exception|
19
19
  context "when HTTP status is #{status}" do
20
20
 
21
+ before do
22
+ stub_get("api/v1/careers/11-1011-01.json").
23
+ to_return(:status => status, :body => fixture("career.json"))
24
+ end
25
+
21
26
  it "should raise #{exception.name} error" do
22
27
  lambda do
23
28
  @client.career("11-1011.01")
24
- end.should raise_error(exception)
29
+ end.should raise_error exception
25
30
  end
26
31
  end
27
32
  end
@@ -0,0 +1 @@
1
+ [{"onet_soc_code":"13-1073.00","api_safe_onet_soc_code":"13-1073-00","title":"Training and Development Specialists","link":"http://militarydemo.pipelinenc.com/careers/89-training-and-development-specialists","average_national_salary":47830},{"onet_soc_code":"33-9032.00","api_safe_onet_soc_code":"33-9032-00","title":"Security Guards","link":"http://militarydemo.pipelinenc.com/careers/586-security-guards","average_national_salary":21530}]
@@ -6,25 +6,68 @@ describe FuturesPipeline::Client do
6
6
  end
7
7
 
8
8
  describe "#careers" do
9
+ before do
10
+ stub_get("api/v1/careers.json").
11
+ to_return(:status => 200, :body => fixture("careers.json"))
12
+ end
13
+
9
14
  it "should fetch all careers" do
10
15
  careers = @client.careers
11
16
  careers.first.title.should == "Chief Executives"
12
17
  end
13
18
  end
14
-
15
- describe "#career" do
19
+
20
+ describe "#career" do
16
21
  context "with API-safe O*NET code" do
22
+ before do
23
+ stub_get("api/v1/careers/11-1011-00.json").
24
+ to_return(:status => 200, :body => fixture("career.json"))
25
+ end
26
+
17
27
  it "should fetch one career" do
18
28
  career = @client.career("11-1011-00")
19
29
  career.title.should == "Chief Executives"
20
30
  end
21
31
  end
32
+
22
33
  context "with O*NET status code" do
34
+ before do
35
+ stub_get("api/v1/careers/11-1011-00.json").
36
+ to_return(:status => 200, :body => fixture("career.json"))
37
+ end
38
+
23
39
  it "should fetch one career" do
24
- career = @client.career("11-1011.00")
25
- career.title.should == "Chief Executives"
40
+ career = @client.career("11-1011.00")
41
+ career.title.should == "Chief Executives"
26
42
  end
27
43
  end
28
44
  end
29
-
45
+
46
+ describe "#search" do
47
+ context "with no paramaters" do
48
+ before do
49
+ stub_get("api/v1/careers/search.json").
50
+ to_return(:status => 200, :body => fixture("search.json"))
51
+ end
52
+
53
+ it "should return a search of careers" do
54
+ lambda do
55
+ @client.search
56
+ end.should raise_error ArgumentError
57
+ end
58
+ end
59
+
60
+ context "with MOC parameter" do
61
+ before do
62
+ stub_get("api/v1/careers/search.json?moc=11b").
63
+ to_return(:status => 200, :body => fixture("search.json"))
64
+ end
65
+
66
+ it "should return one career related to the MOC" do
67
+ search = @client.search("11b")
68
+ search.first.title.should == "Training and Development Specialists"
69
+ end
70
+ end
71
+ end
72
+
30
73
  end
data/spec/helper.rb CHANGED
@@ -1,4 +1,45 @@
1
1
  require 'simplecov'
2
2
  SimpleCov.start
3
3
  require 'rspec'
4
+ require 'webmock/rspec'
4
5
  require 'futures_pipeline'
6
+
7
+ def a_delete(path)
8
+ a_request(:delete, 'http://militarydemo.pipelinenc.com/' + path)
9
+ end
10
+
11
+ def a_get(path)
12
+ a_request(:get, 'http://militarydemo.pipelinenc.com/' + path)
13
+ end
14
+
15
+ def a_post(path)
16
+ a_request(:post, 'http://militarydemo.pipelinenc.com/' + path)
17
+ end
18
+
19
+ def a_put(path)
20
+ a_request(:put, 'http://militarydemo.pipelinenc.com/' + path)
21
+ end
22
+
23
+ def stub_delete(path)
24
+ stub_request(:delete, 'http://militarydemo.pipelinenc.com/' + path)
25
+ end
26
+
27
+ def stub_get(path)
28
+ stub_request(:get, 'http://militarydemo.pipelinenc.com/' + path)
29
+ end
30
+
31
+ def stub_post(path)
32
+ stub_request(:post, 'http://militarydemo.pipelinenc.com/' + path)
33
+ end
34
+
35
+ def stub_put(path)
36
+ stub_request(:put, 'http://militarydemo.pipelinenc.com/' + path)
37
+ end
38
+
39
+ def fixture_path
40
+ File.expand_path('../fixtures', __FILE__)
41
+ end
42
+
43
+ def fixture(file)
44
+ File.new(fixture_path + '/' + file)
45
+ end
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: futures_pipeline
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
5
4
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
5
+ version: 0.0.3
11
6
  platform: ruby
12
7
  authors:
13
8
  - Erik Michaels-Ober
@@ -16,7 +11,8 @@ autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
13
 
19
- date: 2011-05-13 00:00:00 Z
14
+ date: 2011-05-23 00:00:00 -07:00
15
+ default_executable:
20
16
  dependencies:
21
17
  - !ruby/object:Gem::Dependency
22
18
  name: ZenTest
@@ -26,10 +22,6 @@ dependencies:
26
22
  requirements:
27
23
  - - ~>
28
24
  - !ruby/object:Gem::Version
29
- hash: 17
30
- segments:
31
- - 4
32
- - 5
33
25
  version: "4.5"
34
26
  type: :development
35
27
  version_requirements: *id001
@@ -41,10 +33,6 @@ dependencies:
41
33
  requirements:
42
34
  - - ~>
43
35
  - !ruby/object:Gem::Version
44
- hash: 7
45
- segments:
46
- - 0
47
- - 6
48
36
  version: "0.6"
49
37
  type: :development
50
38
  version_requirements: *id002
@@ -56,11 +44,7 @@ dependencies:
56
44
  requirements:
57
45
  - - ~>
58
46
  - !ruby/object:Gem::Version
59
- hash: 27
60
- segments:
61
- - 0
62
- - 8
63
- version: "0.8"
47
+ version: "0.9"
64
48
  type: :development
65
49
  version_requirements: *id003
66
50
  - !ruby/object:Gem::Dependency
@@ -71,10 +55,6 @@ dependencies:
71
55
  requirements:
72
56
  - - ~>
73
57
  - !ruby/object:Gem::Version
74
- hash: 15
75
- segments:
76
- - 2
77
- - 6
78
58
  version: "2.6"
79
59
  type: :development
80
60
  version_requirements: *id004
@@ -86,109 +66,97 @@ dependencies:
86
66
  requirements:
87
67
  - - ~>
88
68
  - !ruby/object:Gem::Version
89
- hash: 3
90
- segments:
91
- - 0
92
- - 4
93
69
  version: "0.4"
94
70
  type: :development
95
71
  version_requirements: *id005
96
72
  - !ruby/object:Gem::Dependency
97
- name: faraday
73
+ name: webmock
98
74
  prerelease: false
99
75
  requirement: &id006 !ruby/object:Gem::Requirement
100
76
  none: false
101
77
  requirements:
102
78
  - - ~>
103
79
  - !ruby/object:Gem::Version
104
- hash: 5
105
- segments:
106
- - 0
107
- - 6
108
- - 1
80
+ version: "1.6"
81
+ type: :development
82
+ version_requirements: *id006
83
+ - !ruby/object:Gem::Dependency
84
+ name: yard
85
+ prerelease: false
86
+ requirement: &id007 !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ~>
90
+ - !ruby/object:Gem::Version
91
+ version: "0.7"
92
+ type: :development
93
+ version_requirements: *id007
94
+ - !ruby/object:Gem::Dependency
95
+ name: faraday
96
+ prerelease: false
97
+ requirement: &id008 !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
109
102
  version: 0.6.1
110
103
  type: :runtime
111
- version_requirements: *id006
104
+ version_requirements: *id008
112
105
  - !ruby/object:Gem::Dependency
113
106
  name: faraday_middleware
114
107
  prerelease: false
115
- requirement: &id007 !ruby/object:Gem::Requirement
108
+ requirement: &id009 !ruby/object:Gem::Requirement
116
109
  none: false
117
110
  requirements:
118
111
  - - ~>
119
112
  - !ruby/object:Gem::Version
120
- hash: 1
121
- segments:
122
- - 0
123
- - 6
124
- - 3
125
113
  version: 0.6.3
126
114
  type: :runtime
127
- version_requirements: *id007
115
+ version_requirements: *id009
128
116
  - !ruby/object:Gem::Dependency
129
117
  name: hashie
130
118
  prerelease: false
131
- requirement: &id008 !ruby/object:Gem::Requirement
119
+ requirement: &id010 !ruby/object:Gem::Requirement
132
120
  none: false
133
121
  requirements:
134
122
  - - ~>
135
123
  - !ruby/object:Gem::Version
136
- hash: 23
137
- segments:
138
- - 1
139
- - 0
140
- - 0
141
124
  version: 1.0.0
142
125
  type: :runtime
143
- version_requirements: *id008
126
+ version_requirements: *id010
144
127
  - !ruby/object:Gem::Dependency
145
128
  name: json
146
129
  prerelease: false
147
- requirement: &id009 !ruby/object:Gem::Requirement
130
+ requirement: &id011 !ruby/object:Gem::Requirement
148
131
  none: false
149
132
  requirements:
150
133
  - - ~>
151
134
  - !ruby/object:Gem::Version
152
- hash: 1
153
- segments:
154
- - 1
155
- - 5
156
- - 1
157
135
  version: 1.5.1
158
136
  type: :runtime
159
- version_requirements: *id009
137
+ version_requirements: *id011
160
138
  - !ruby/object:Gem::Dependency
161
139
  name: multi_json
162
140
  prerelease: false
163
- requirement: &id010 !ruby/object:Gem::Requirement
141
+ requirement: &id012 !ruby/object:Gem::Requirement
164
142
  none: false
165
143
  requirements:
166
144
  - - ~>
167
145
  - !ruby/object:Gem::Version
168
- hash: 21
169
- segments:
170
- - 1
171
- - 0
172
- - 1
173
- version: 1.0.1
146
+ version: 1.0.2
174
147
  type: :runtime
175
- version_requirements: *id010
148
+ version_requirements: *id012
176
149
  - !ruby/object:Gem::Dependency
177
150
  name: rash
178
151
  prerelease: false
179
- requirement: &id011 !ruby/object:Gem::Requirement
152
+ requirement: &id013 !ruby/object:Gem::Requirement
180
153
  none: false
181
154
  requirements:
182
155
  - - ~>
183
156
  - !ruby/object:Gem::Version
184
- hash: 19
185
- segments:
186
- - 0
187
- - 3
188
- - 0
189
157
  version: 0.3.0
190
158
  type: :runtime
191
- version_requirements: *id011
159
+ version_requirements: *id013
192
160
  description: Ruby wrapper for the Futures, Inc. US Military Pipeline API
193
161
  email:
194
162
  - erik@codeforamerica.org
@@ -219,9 +187,11 @@ files:
219
187
  - spec/fixtures/career.json
220
188
  - spec/fixtures/careers.json
221
189
  - spec/fixtures/not_found.json
190
+ - spec/fixtures/search.json
222
191
  - spec/futures_pipeline/client_spec.rb
223
192
  - spec/futures_pipeline_spec.rb
224
193
  - spec/helper.rb
194
+ has_rdoc: true
225
195
  homepage: https://github.com/codeforamerica/futures_pipeline
226
196
  licenses: []
227
197
 
@@ -235,23 +205,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
235
205
  requirements:
236
206
  - - ">="
237
207
  - !ruby/object:Gem::Version
238
- hash: 3
239
- segments:
240
- - 0
241
208
  version: "0"
242
209
  required_rubygems_version: !ruby/object:Gem::Requirement
243
210
  none: false
244
211
  requirements:
245
212
  - - ">="
246
213
  - !ruby/object:Gem::Version
247
- hash: 3
248
- segments:
249
- - 0
250
214
  version: "0"
251
215
  requirements: []
252
216
 
253
217
  rubyforge_project:
254
- rubygems_version: 1.8.2
218
+ rubygems_version: 1.6.2
255
219
  signing_key:
256
220
  specification_version: 3
257
221
  summary: Ruby wrapper for the Futures, Inc. US Military Pipeline API
@@ -260,6 +224,7 @@ test_files:
260
224
  - spec/fixtures/career.json
261
225
  - spec/fixtures/careers.json
262
226
  - spec/fixtures/not_found.json
227
+ - spec/fixtures/search.json
263
228
  - spec/futures_pipeline/client_spec.rb
264
229
  - spec/futures_pipeline_spec.rb
265
230
  - spec/helper.rb