next-big-sound-lite 0.2.0 → 1.0.0

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.
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ .DS_Store
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in next_big_sound_lite.gemspec
4
+ gemspec
@@ -0,0 +1,20 @@
1
+ Next Big Sound Lite
2
+ --
3
+
4
+ This gem wraps the Next Big Sound JSON API. Read the API docs {here}[http://api3.nextbigsound.com].
5
+
6
+ Done? Then you can use this API.
7
+
8
+ First setup the gem to use your API key:
9
+
10
+ NextBigSoundLite.api_key = 'my_key'
11
+
12
+ If you have a private key (for writing):
13
+
14
+ NextBigSoundLite.private_key = 'my_private_key'
15
+
16
+ The methods of this wrapper are organized in the same way as the subsections of the API docs. For example to call the endpoint 'profile' on Metrics you should call:
17
+
18
+ NextBigSoundLite::Metric.profile(200, :start => 2.months.ago)
19
+
20
+ Notice that the receiver has a singular name (ala Rails Models)
data/Rakefile CHANGED
@@ -1,15 +1,9 @@
1
- # Rakefile
2
- require 'rubygems'
3
- require 'rake'
4
- require 'echoe'
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
5
3
 
6
- Echoe.new('next-big-sound-lite', '0.2.0') do |p|
7
- p.description = "Thin wrapper for the Next Big Sound API."
8
- p.url = "http://github.com/rpbertp13/next-big-sound-lite"
9
- p.author = "Roberto Thais"
10
- p.email = "roberto.n.thais@gmail.com"
11
- p.ignore_pattern = ["tmp/*", "script/*"]
12
- p.development_dependencies = ["rest-client", "json"]
13
- end
4
+ require 'spec/rake/spectask'
14
5
 
15
- Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
6
+ Spec::Rake::SpecTask.new(:spec) do |t|
7
+ t.spec_files = Dir.glob('spec/**/*_spec.rb')
8
+ t.spec_opts << '--format specdoc'
9
+ end
@@ -1,30 +1 @@
1
- #For version 2.0 of the Next Big Sound API
2
-
3
- require 'rest_client'
4
- require 'json'
5
- require 'cgi'
6
-
7
- require 'next-big-sound-lite/resource'
8
- require 'next-big-sound-lite/artist'
9
- require 'next-big-sound-lite/genre'
10
- require 'next-big-sound-lite/metric'
11
- require 'next-big-sound-lite/profile'
12
- require 'next-big-sound-lite/service'
13
- require 'next-big-sound-lite/track'
14
- require 'next-big-sound-lite/youtube'
15
-
16
- module NBS
17
-
18
- class << self
19
- attr_reader :base
20
- attr_accessor :private_key
21
- end
22
-
23
- def self.api_key=(key)
24
- @base = RestClient::Resource.new("http://#{key}.api2.nextbigsound.com")
25
- end
26
-
27
- self.api_key = 'key'
28
-
29
- end
30
-
1
+ require 'next_big_sound_lite'
@@ -0,0 +1,27 @@
1
+ #For version 3.0 of the Next Big Sound API
2
+
3
+ require 'rest_client'
4
+ require 'json'
5
+ require 'hashie'
6
+
7
+ require 'next_big_sound_lite/resource'
8
+ require 'next_big_sound_lite/resources/artist'
9
+ require 'next_big_sound_lite/resources/genre'
10
+ require 'next_big_sound_lite/resources/metric'
11
+ require 'next_big_sound_lite/resources/profile'
12
+ require 'next_big_sound_lite/resources/service'
13
+
14
+ module NextBigSoundLite
15
+
16
+ class << self
17
+ attr_reader :base
18
+ attr_accessor :private_key
19
+ end
20
+
21
+ def self.api_key=(key)
22
+ @base = RestClient::Resource.new("http://#{key}.api3.nextbigsound.com")
23
+ end
24
+
25
+ self.api_key = 'key'
26
+
27
+ end
@@ -0,0 +1,59 @@
1
+ module NextBigSoundLite
2
+
3
+ class Resource
4
+ def self.resource(name)
5
+ NextBigSoundLite.base[name]
6
+ end
7
+
8
+ def self.get(resource)
9
+ begin
10
+ res = parse resource.get
11
+ if block_given?
12
+ yield res
13
+ else
14
+ res
15
+ end
16
+ # The API uses 400 Bad Request to indicate negative results
17
+ # such as 'no results found'.
18
+ rescue RestClient::BadRequest => e
19
+ false
20
+ end
21
+ end
22
+
23
+ def self.post(resource, params)
24
+ begin
25
+ parse resource.post(params)
26
+ rescue RestClient::BadRequest => e
27
+ false
28
+ end
29
+ end
30
+
31
+ def self.parse(response)
32
+ res = JSON.parse(response)
33
+ case res
34
+ when Array
35
+ if res.first.is_a? Hash
36
+ res.map { |hash| Hashie::Mash.new hash }
37
+ else
38
+ res
39
+ end
40
+ when Hash
41
+ Hashie::Mash.new res
42
+ else
43
+ res
44
+ end
45
+ end
46
+
47
+ # Next Big Sound returns some results as hashes with
48
+ # keys equal to id of the object and values as the
49
+ # relevant data. This creates an array that includes
50
+ # the id within the object.
51
+ def self.idfy(hash)
52
+ hash.to_a.map do |id, data|
53
+ data.dup.tap { |d| d.id = id }
54
+ end
55
+ end
56
+
57
+ end
58
+
59
+ end
@@ -0,0 +1,35 @@
1
+ module NextBigSoundLite
2
+
3
+ class Artist < Resource
4
+
5
+ def self.resource
6
+ super 'artists'
7
+ end
8
+
9
+ def self.find(id)
10
+ get resource["view/#{id}.json"]
11
+ end
12
+ class << self; alias :view :find; end
13
+
14
+ def self.search(q)
15
+ get resource["search.json?q=#{CGI.escape(q)}"] do |response|
16
+ idfy response
17
+ end
18
+ end
19
+
20
+ def self.ranking(type, ids)
21
+ ids = ids.join('-')
22
+ get resource["rank/#{type}/#{ids}.json"]
23
+ end
24
+
25
+ def self.add(name, profiles)
26
+ params = {
27
+ :key => NextBigSoundLite.private_key,
28
+ :name => name,
29
+ :profiles => profiles
30
+ }
31
+ post resource["add.json"], params
32
+ end
33
+ end
34
+
35
+ end
@@ -1,4 +1,4 @@
1
- module NBS
1
+ module NextBigSoundLite
2
2
 
3
3
  class Genre < Resource
4
4
 
@@ -7,8 +7,9 @@ module NBS
7
7
  end
8
8
 
9
9
  def self.artist(id)
10
- res = resource["artist/#{id}.json"].get
11
- JSON.parse(res)
10
+ get resource["artist/#{id}.json"] do |response|
11
+ idfy response
12
+ end
12
13
  end
13
14
  end
14
15
 
@@ -0,0 +1,49 @@
1
+ module NextBigSoundLite
2
+
3
+ class Metric < Resource
4
+
5
+ ALLOWED_METRICS = %w(all plays fans views comments downloads likes price)
6
+
7
+ def self.resource
8
+ super 'metrics'
9
+ end
10
+
11
+ # start and end can be either a Date or Time object
12
+ def self.profile(id, params = {})
13
+ get resource["profile/#{id}.json?#{querify params}"]
14
+ end
15
+
16
+ def self.artist(id, params = {})
17
+ get resource["artist/#{id}.json?#{querify params}"] do |response|
18
+ response.map do |metric|
19
+ Hashie::Mash.new Hash[metric.to_a.map { |k,v| [k.downcase, v] }]
20
+ end
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def self.querify(params)
27
+ params[:start] &&= format_time(params[:start])
28
+ params[:end] &&= format_time(params[:end])
29
+ params[:metric] = (ALLOWED_METRICS & [params[:metric]]).first
30
+ params.to_a.map do |k,v|
31
+ "#{k}=#{CGI.escape(v)}" if !!v
32
+ end.compact.join("&")
33
+ end
34
+
35
+ def self.format_time(obj)
36
+ out = case obj
37
+ when Date
38
+ Time.local(obj.year, obj.mon, obj.mday)
39
+ when Time
40
+ obj
41
+ else
42
+ raise ArgumentError, "start/end times need to be Date or Time objects"
43
+ end
44
+ out.to_i.to_s
45
+ end
46
+
47
+ end
48
+
49
+ end
@@ -0,0 +1,29 @@
1
+ module NextBigSoundLite
2
+
3
+ class Profile < Resource
4
+
5
+ def self.resource
6
+ super 'profiles'
7
+ end
8
+
9
+ def self.artist(id)
10
+ get resource["artist/#{id}.json"]
11
+ end
12
+
13
+ def self.search(url)
14
+ get resource["search.json?u=#{CGI.escape(url)}"] do |response|
15
+ idfy response
16
+ end
17
+ end
18
+
19
+ def self.add(artist_id, profiles)
20
+ params = {
21
+ :key => NextBigSoundLite.private_key,
22
+ :profiles => profiles
23
+ }
24
+ post resource["add/#{artist_id}.json"], params
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,19 @@
1
+ require 'cgi'
2
+
3
+ module NextBigSoundLite
4
+
5
+ class Service < Resource
6
+
7
+ def self.resource
8
+ super 'services.json'
9
+ end
10
+
11
+ def self.list
12
+ get resource do |response|
13
+ idfy response
14
+ end
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,3 @@
1
+ module NextBigSoundLite
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "next_big_sound_lite/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "next-big-sound-lite"
7
+ s.version = NextBigSoundLite::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Roberto Thais"]
10
+ s.email = ["roberto.thais@gigmaven.com"]
11
+ s.homepage = ""
12
+ s.summary = %q{A small wrapper around the Next Big Sound API}
13
+ s.description = %q{A small wrapper around the Next Big Sound API}
14
+
15
+ s.rubyforge_project = "next-big-sound-lite"
16
+
17
+ s.add_dependency "rest-client"
18
+ s.add_dependency "hashie"
19
+ s.add_dependency "json"
20
+
21
+ s.files = `git ls-files`.split("\n")
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
24
+ s.require_paths = ["lib"]
25
+ end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: next-big-sound-lite
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 2
8
- - 0
9
- version: 0.2.0
4
+ prerelease:
5
+ version: 1.0.0
10
6
  platform: ruby
11
7
  authors:
12
8
  - Roberto Thais
@@ -14,100 +10,93 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2010-06-11 00:00:00 -04:00
13
+ date: 2011-04-22 00:00:00 -04:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
21
17
  name: rest-client
22
18
  prerelease: false
23
19
  requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
24
21
  requirements:
25
22
  - - ">="
26
23
  - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
24
  version: "0"
30
- type: :development
25
+ type: :runtime
31
26
  version_requirements: *id001
32
27
  - !ruby/object:Gem::Dependency
33
- name: json
28
+ name: hashie
34
29
  prerelease: false
35
30
  requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
36
32
  requirements:
37
33
  - - ">="
38
34
  - !ruby/object:Gem::Version
39
- segments:
40
- - 0
41
35
  version: "0"
42
- type: :development
36
+ type: :runtime
43
37
  version_requirements: *id002
44
- description: Thin wrapper for the Next Big Sound API.
45
- email: roberto.n.thais@gmail.com
38
+ - !ruby/object:Gem::Dependency
39
+ name: json
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ type: :runtime
48
+ version_requirements: *id003
49
+ description: A small wrapper around the Next Big Sound API
50
+ email:
51
+ - roberto.thais@gigmaven.com
46
52
  executables: []
47
53
 
48
54
  extensions: []
49
55
 
50
- extra_rdoc_files:
51
- - README.rdoc
52
- - lib/next-big-sound-lite.rb
53
- - lib/next-big-sound-lite/artist.rb
54
- - lib/next-big-sound-lite/genre.rb
55
- - lib/next-big-sound-lite/metric.rb
56
- - lib/next-big-sound-lite/profile.rb
57
- - lib/next-big-sound-lite/resource.rb
58
- - lib/next-big-sound-lite/service.rb
59
- - lib/next-big-sound-lite/track.rb
60
- - lib/next-big-sound-lite/youtube.rb
56
+ extra_rdoc_files: []
57
+
61
58
  files:
62
- - Manifest
63
- - README.rdoc
59
+ - .gitignore
60
+ - Gemfile
61
+ - README.md
64
62
  - Rakefile
65
- - init.rb
66
63
  - lib/next-big-sound-lite.rb
67
- - lib/next-big-sound-lite/artist.rb
68
- - lib/next-big-sound-lite/genre.rb
69
- - lib/next-big-sound-lite/metric.rb
70
- - lib/next-big-sound-lite/profile.rb
71
- - lib/next-big-sound-lite/resource.rb
72
- - lib/next-big-sound-lite/service.rb
73
- - lib/next-big-sound-lite/track.rb
74
- - lib/next-big-sound-lite/youtube.rb
75
- - next-big-sound-lite.gemspec
64
+ - lib/next_big_sound_lite.rb
65
+ - lib/next_big_sound_lite/resource.rb
66
+ - lib/next_big_sound_lite/resources/artist.rb
67
+ - lib/next_big_sound_lite/resources/genre.rb
68
+ - lib/next_big_sound_lite/resources/metric.rb
69
+ - lib/next_big_sound_lite/resources/profile.rb
70
+ - lib/next_big_sound_lite/resources/service.rb
71
+ - lib/next_big_sound_lite/version.rb
72
+ - next_big_sound_lite.gemspec
76
73
  has_rdoc: true
77
- homepage: http://github.com/rpbertp13/next-big-sound-lite
74
+ homepage: ""
78
75
  licenses: []
79
76
 
80
77
  post_install_message:
81
- rdoc_options:
82
- - --line-numbers
83
- - --inline-source
84
- - --title
85
- - Next-big-sound-lite
86
- - --main
87
- - README.rdoc
78
+ rdoc_options: []
79
+
88
80
  require_paths:
89
81
  - lib
90
82
  required_ruby_version: !ruby/object:Gem::Requirement
83
+ none: false
91
84
  requirements:
92
85
  - - ">="
93
86
  - !ruby/object:Gem::Version
94
- segments:
95
- - 0
96
87
  version: "0"
97
88
  required_rubygems_version: !ruby/object:Gem::Requirement
89
+ none: false
98
90
  requirements:
99
91
  - - ">="
100
92
  - !ruby/object:Gem::Version
101
- segments:
102
- - 1
103
- - 2
104
- version: "1.2"
93
+ version: "0"
105
94
  requirements: []
106
95
 
107
96
  rubyforge_project: next-big-sound-lite
108
- rubygems_version: 1.3.6
97
+ rubygems_version: 1.6.2
109
98
  signing_key:
110
99
  specification_version: 3
111
- summary: Thin wrapper for the Next Big Sound API.
100
+ summary: A small wrapper around the Next Big Sound API
112
101
  test_files: []
113
102
 
data/Manifest DELETED
@@ -1,13 +0,0 @@
1
- Manifest
2
- README.rdoc
3
- Rakefile
4
- init.rb
5
- lib/next-big-sound-lite.rb
6
- lib/next-big-sound-lite/artist.rb
7
- lib/next-big-sound-lite/genre.rb
8
- lib/next-big-sound-lite/metric.rb
9
- lib/next-big-sound-lite/profile.rb
10
- lib/next-big-sound-lite/resource.rb
11
- lib/next-big-sound-lite/service.rb
12
- lib/next-big-sound-lite/track.rb
13
- lib/next-big-sound-lite/youtube.rb
@@ -1,27 +0,0 @@
1
- == Next Big Sound Lite
2
-
3
- This gem wraps the next big sound JSON api. Read the API docs {here}[http://api.nextbigsound.com].
4
-
5
- Done? Then you can use this API.
6
-
7
- First setup the gem to use your API key:
8
-
9
- NBS.api_key = 'your_key'
10
-
11
- The methods of this wrapper are organized in the same way as the subsections of the API docs. For example to call the endpoint 'view' on Artists you should call:
12
-
13
- NBS::Artist.view(id)
14
-
15
- Notice that the receiver has a singular name (ala Rails Models)
16
-
17
- Another example:
18
-
19
- NBS::Metric.profile(id)
20
-
21
- Would call the Profile endpoint defined under the Metrics subsection. And so on.
22
-
23
- The one gotcha is the rank endpoint on the Artists subsection. It expects a type and an array of ids. E.g.
24
-
25
- NBS::Artist.rank(type, [365, 654, 123])
26
-
27
- All methods return parsed an array or a hash. No effort is made at this point to create objects out of the raw data. This is where 'lite' comes from :)
data/init.rb DELETED
@@ -1,2 +0,0 @@
1
- # init.rb
2
- require 'next-big-sound-lite'
@@ -1,31 +0,0 @@
1
- module NBS
2
-
3
- class Artist < Resource
4
-
5
- def self.resource
6
- super 'artists'
7
- end
8
-
9
- def self.view(id)
10
- res = resource["view/#{id}.json"].get
11
- JSON.parse(res)
12
- end
13
-
14
- def self.search(q)
15
- res = resource["search.json?q=#{CGI.escape(q)}"].get
16
- JSON.parse(res)
17
- end
18
-
19
- def self.ranking(type, ids)
20
- ids = ids.join('-')
21
- res = resource["rank/#{type}/#{ids}.json"].get
22
- JSON.parse(res)
23
- end
24
-
25
- def self.add(name)
26
- res = resource["add.json?n=#{CGI.escape(name)}&k=#{NBS.private_key}"].get
27
- JSON.parse(res)
28
- end
29
- end
30
-
31
- end
@@ -1,20 +0,0 @@
1
- module NBS
2
-
3
- class Metric < Resource
4
-
5
- def self.resource
6
- super 'metrics'
7
- end
8
-
9
- def self.profile(id)
10
- res = resource["profile/#{id}.json"].get
11
- JSON.parse(res)
12
- end
13
-
14
- def self.artist(id)
15
- res = resource["artist/#{id}.json"].get
16
- JSON.parse(res)
17
- end
18
- end
19
-
20
- end
@@ -1,26 +0,0 @@
1
- module NBS
2
-
3
- class Profile < Resource
4
-
5
- def self.resource
6
- super 'profiles'
7
- end
8
-
9
- def self.artist(id)
10
- res = resource["artist/#{id}.json"].get
11
- JSON.parse(res)
12
- end
13
-
14
- def self.search(url)
15
- res = resource["search.json?u=#{CGI.escape(url)}"].get
16
- JSON.parse(res)
17
- end
18
-
19
- def self.add(artist_id, url)
20
- res = resource["add/#{artist_id}.json?u=#{CGI::escape(url)}&k=#{NBS.private_key}"].get
21
- JSON.parse(res)
22
- end
23
-
24
- end
25
-
26
- end
@@ -1,10 +0,0 @@
1
- module NBS
2
-
3
- class Resource
4
- def self.resource(name)
5
- NBS.base[name]
6
- end
7
- end
8
-
9
- end
10
-
@@ -1,15 +0,0 @@
1
- module NBS
2
-
3
- class Service < Resource
4
-
5
- def self.resource
6
- super 'services'
7
- end
8
-
9
- def self.list
10
- JSON.parse(resource['.json'].get)
11
- end
12
-
13
- end
14
-
15
- end
@@ -1,20 +0,0 @@
1
- module NBS
2
-
3
- class Track < Resource
4
-
5
- def self.resource
6
- super 'tracks'
7
- end
8
-
9
- def self.artist(id)
10
- res = resource["artist/#{id}.json"].get
11
- JSON.parse(res)
12
- end
13
-
14
- def self.profile(id)
15
- res = resource["profile/#{id}.json"].get
16
- JSON.parse(res)
17
- end
18
- end
19
-
20
- end
@@ -1,16 +0,0 @@
1
- module NBS
2
-
3
- class Youtube < Resource
4
-
5
- def self.resource
6
- super 'youtube'
7
- end
8
-
9
- def self.artist(id)
10
- res = resource["artist/#{id}.json"].get
11
- JSON.parse(res)
12
- end
13
-
14
- end
15
-
16
- end
@@ -1,36 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- Gem::Specification.new do |s|
4
- s.name = %q{next-big-sound-lite}
5
- s.version = "0.2.0"
6
-
7
- s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Roberto Thais"]
9
- s.date = %q{2010-06-11}
10
- s.description = %q{Thin wrapper for the Next Big Sound API.}
11
- s.email = %q{roberto.n.thais@gmail.com}
12
- s.extra_rdoc_files = ["README.rdoc", "lib/next-big-sound-lite.rb", "lib/next-big-sound-lite/artist.rb", "lib/next-big-sound-lite/genre.rb", "lib/next-big-sound-lite/metric.rb", "lib/next-big-sound-lite/profile.rb", "lib/next-big-sound-lite/resource.rb", "lib/next-big-sound-lite/service.rb", "lib/next-big-sound-lite/track.rb", "lib/next-big-sound-lite/youtube.rb"]
13
- s.files = ["Manifest", "README.rdoc", "Rakefile", "init.rb", "lib/next-big-sound-lite.rb", "lib/next-big-sound-lite/artist.rb", "lib/next-big-sound-lite/genre.rb", "lib/next-big-sound-lite/metric.rb", "lib/next-big-sound-lite/profile.rb", "lib/next-big-sound-lite/resource.rb", "lib/next-big-sound-lite/service.rb", "lib/next-big-sound-lite/track.rb", "lib/next-big-sound-lite/youtube.rb", "next-big-sound-lite.gemspec"]
14
- s.homepage = %q{http://github.com/rpbertp13/next-big-sound-lite}
15
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Next-big-sound-lite", "--main", "README.rdoc"]
16
- s.require_paths = ["lib"]
17
- s.rubyforge_project = %q{next-big-sound-lite}
18
- s.rubygems_version = %q{1.3.6}
19
- s.summary = %q{Thin wrapper for the Next Big Sound API.}
20
-
21
- if s.respond_to? :specification_version then
22
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
- s.specification_version = 3
24
-
25
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
- s.add_development_dependency(%q<rest-client>, [">= 0"])
27
- s.add_development_dependency(%q<json>, [">= 0"])
28
- else
29
- s.add_dependency(%q<rest-client>, [">= 0"])
30
- s.add_dependency(%q<json>, [">= 0"])
31
- end
32
- else
33
- s.add_dependency(%q<rest-client>, [">= 0"])
34
- s.add_dependency(%q<json>, [">= 0"])
35
- end
36
- end