juju 0.0.1 → 0.0.2

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.
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in juju.gemspec
4
+ gemspec
5
+
6
+
data/Gemfile.lock ADDED
@@ -0,0 +1,21 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ juju (0.0.2)
5
+ rest-client
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ mime-types (1.23)
11
+ rake (10.1.0)
12
+ rest-client (1.6.7)
13
+ mime-types (>= 1.16)
14
+
15
+ PLATFORMS
16
+ ruby
17
+
18
+ DEPENDENCIES
19
+ bundler (~> 1.3)
20
+ juju!
21
+ rake
data/README.rdoc CHANGED
@@ -4,4 +4,4 @@ Gem for searching jobs based on certain parameters using Juju API.
4
4
 
5
5
  == Install
6
6
 
7
-
7
+ gem install juju
data/lib/juju.rb CHANGED
@@ -14,30 +14,34 @@ class Juju
14
14
 
15
15
  def search(params)
16
16
  check_required params
17
- begin
18
- response = RestClient.get URL, {:params => params}
19
- rescue RestClient::BadRequest
20
- raise JujuError, 'Request failed: invalid parameters'
21
- end
17
+ response = RestClient.get URL, {:params => params}
22
18
  parse_xml response
19
+ rescue RestClient::BadRequest
20
+ raise JujuError, 'Request failed: invalid parameters'
23
21
  end
24
22
 
25
23
  protected
26
24
  def parse_xml(xml)
27
- begin
28
- data = Hash.from_xml(xml)['rss']['channel']
29
- rescue REXML::ParseException
30
- raise JujuError, 'Did not get a valid XML response from Juju'
31
- end
32
- jobs = data['item'].each {|item| item['link'].squish!}
25
+ data = Hash.from_xml(xml)['rss']['channel']
26
+ jobs = remove_tags_and_spaces data['item']
33
27
  JujuResult.new(jobs, data['totalresults'], data['startindex'], data['itemsperpage'])
28
+ rescue REXML::ParseException
29
+ raise JujuError, 'Did not get a valid XML response from Juju'
30
+ end
31
+
32
+ def remove_tags_and_spaces(jobs)
33
+ jobs.each do |item|
34
+ item['link'].squish!
35
+ item['title'] = strip_tags(item['title']).squish!
36
+ item['description'] = strip_tags(item['description']).squish!
37
+ end
34
38
  end
35
39
 
36
40
  def check_required(params)
37
- raise JujuError.new('Partner ID was not provided') unless params[:partnerid]
38
- raise JujuError.new('IP Address was not provided') unless params[:ipaddress]
39
- raise JujuError.new('User-Agent was not provided') unless params[:useragent]
40
- raise JujuError.new('Required parameters were not provided') unless params[:k] || params[:l] || params[:c]
41
+ raise ArgumentError.new('Partner ID was not provided') unless params[:partnerid]
42
+ raise ArgumentError.new('IP Address was not provided') unless params[:ipaddress]
43
+ raise ArgumentError.new('User-Agent was not provided') unless params[:useragent]
44
+ raise ArgumentError.new('Required parameters were not provided') unless params[:k] || params[:l] || params[:c]
41
45
  end
42
46
 
43
47
  end
@@ -0,0 +1,4 @@
1
+ module Juju
2
+ VERSION = "0.0.2"
3
+ end
4
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: juju
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-18 00:00:00.000000000 Z
12
+ date: 2013-07-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -67,10 +67,13 @@ extensions: []
67
67
  extra_rdoc_files: []
68
68
  files:
69
69
  - .gitignore
70
+ - Gemfile
71
+ - Gemfile.lock
70
72
  - README.rdoc
71
73
  - Rakefile
72
74
  - juju.gemspec
73
75
  - lib/juju.rb
76
+ - lib/juju/version.rb
74
77
  homepage: ''
75
78
  licenses:
76
79
  - MIT