juju 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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