soundcloud-plus 0.0.1
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/.gitignore +3 -0
- data/.rvmrc +55 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +50 -0
- data/Guardfile +22 -0
- data/README.md +51 -0
- data/Rakefile +11 -0
- data/lib/soundcloud-plus.rb +127 -0
- data/lib/soundcloud-plus/functions.rb +15 -0
- data/lib/soundcloud-plus/version.rb +3 -0
- data/soundcloud-plus.gemspec +34 -0
- data/spec/soundcloud-plus/functions_spec.rb +8 -0
- data/spec/soundcloud-plus_spec.rb +106 -0
- data/spec/spec_helper.rb +21 -0
- metadata +117 -0
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
# This is an RVM Project .rvmrc file, used to automatically load the ruby
|
4
|
+
# development environment upon cd'ing into the directory
|
5
|
+
|
6
|
+
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
|
7
|
+
environment_id="ruby-1.9.2-p290@soundcloud-plus"
|
8
|
+
|
9
|
+
#
|
10
|
+
# Uncomment following line if you want options to be set only for given project.
|
11
|
+
#
|
12
|
+
# PROJECT_JRUBY_OPTS=( --1.9 )
|
13
|
+
|
14
|
+
#
|
15
|
+
# First we attempt to load the desired environment directly from the environment
|
16
|
+
# file. This is very fast and efficient compared to running through the entire
|
17
|
+
# CLI and selector. If you want feedback on which environment was used then
|
18
|
+
# insert the word 'use' after --create as this triggers verbose mode.
|
19
|
+
#
|
20
|
+
if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
|
21
|
+
&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
|
22
|
+
then
|
23
|
+
\. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
|
24
|
+
|
25
|
+
if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]]
|
26
|
+
then
|
27
|
+
. "${rvm_path:-$HOME/.rvm}/hooks/after_use"
|
28
|
+
fi
|
29
|
+
else
|
30
|
+
# If the environment file has not yet been created, use the RVM CLI to select.
|
31
|
+
if ! rvm --create "$environment_id"
|
32
|
+
then
|
33
|
+
echo "Failed to create RVM environment '${environment_id}'."
|
34
|
+
exit 1
|
35
|
+
fi
|
36
|
+
fi
|
37
|
+
|
38
|
+
#
|
39
|
+
# If you use an RVM gemset file to install a list of gems (*.gems), you can have
|
40
|
+
# it be automatically loaded. Uncomment the following and adjust the filename if
|
41
|
+
# necessary.
|
42
|
+
#
|
43
|
+
# filename=".gems"
|
44
|
+
# if [[ -s "$filename" ]]
|
45
|
+
# then
|
46
|
+
# rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
|
47
|
+
# fi
|
48
|
+
|
49
|
+
# If you use bundler, this might be useful to you:
|
50
|
+
# if command -v bundle && [[ -s Gemfile ]]
|
51
|
+
# then
|
52
|
+
# bundle install
|
53
|
+
# fi
|
54
|
+
|
55
|
+
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
soundcloud-plus (0.0.1)
|
5
|
+
active_support
|
6
|
+
soundcloud (~> 0.2.9)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: http://rubygems.org/
|
10
|
+
specs:
|
11
|
+
active_support (3.0.0)
|
12
|
+
activesupport (= 3.0.0)
|
13
|
+
activesupport (3.0.0)
|
14
|
+
crack (0.1.8)
|
15
|
+
diff-lcs (1.1.3)
|
16
|
+
ffi (1.0.11)
|
17
|
+
guard (0.10.0)
|
18
|
+
ffi (>= 0.5.0)
|
19
|
+
thor (~> 0.14.6)
|
20
|
+
guard-rspec (0.6.0)
|
21
|
+
guard (>= 0.10.0)
|
22
|
+
hashie (1.2.0)
|
23
|
+
httmultiparty (0.3.6)
|
24
|
+
httparty (>= 0.7.3)
|
25
|
+
multipart-post
|
26
|
+
httparty (0.7.8)
|
27
|
+
crack (= 0.1.8)
|
28
|
+
multipart-post (1.1.4)
|
29
|
+
rspec (2.8.0)
|
30
|
+
rspec-core (~> 2.8.0)
|
31
|
+
rspec-expectations (~> 2.8.0)
|
32
|
+
rspec-mocks (~> 2.8.0)
|
33
|
+
rspec-core (2.8.0)
|
34
|
+
rspec-expectations (2.8.0)
|
35
|
+
diff-lcs (~> 1.1.2)
|
36
|
+
rspec-mocks (2.8.0)
|
37
|
+
soundcloud (0.2.9)
|
38
|
+
hashie
|
39
|
+
httmultiparty (~> 0.3.0)
|
40
|
+
httparty (~> 0.7.3)
|
41
|
+
thor (0.14.6)
|
42
|
+
|
43
|
+
PLATFORMS
|
44
|
+
ruby
|
45
|
+
|
46
|
+
DEPENDENCIES
|
47
|
+
guard
|
48
|
+
guard-rspec
|
49
|
+
rspec
|
50
|
+
soundcloud-plus!
|
data/Guardfile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
guard 'rspec', :version => 2, :cli => "--drb", :all_on_start => false, :all_after_pass => false do
|
5
|
+
watch(%r{^spec/.+_spec\.rb$})
|
6
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
7
|
+
watch('spec/spec_helper.rb') { "spec" }
|
8
|
+
|
9
|
+
# Rails example
|
10
|
+
watch(%r{^spec/.+_spec\.rb$})
|
11
|
+
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
12
|
+
watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
13
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
14
|
+
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
15
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
16
|
+
watch('spec/spec_helper.rb') { "spec" }
|
17
|
+
watch('config/routes.rb') { "spec/routing" }
|
18
|
+
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
19
|
+
# Capybara request specs
|
20
|
+
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
|
21
|
+
end
|
22
|
+
|
data/README.md
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
About
|
2
|
+
=====
|
3
|
+
|
4
|
+
SoundcloudPlus is a lightweight wrapper for a lightweight wrapper for the Soundcloud web API.
|
5
|
+
|
6
|
+
The official soundcloud gem is pretty bare bones. This builds on top of the the soundclout gem and makes things a little more ruby. It doesn't do much that the soundcloud gem won't do, but it does it in a slightly nicer way.
|
7
|
+
|
8
|
+
Instead of
|
9
|
+
|
10
|
+
client = Soundcloud.new(:client_id => "123456789")
|
11
|
+
client.get("/users/1234/comments", :limit => 5)
|
12
|
+
|
13
|
+
You can do
|
14
|
+
|
15
|
+
client = SoundcloudPlus.new(:client_id => "123456789")
|
16
|
+
client.user(1234).comment.limit(5)
|
17
|
+
or
|
18
|
+
client.user(1234).comments(:limit => 5)
|
19
|
+
|
20
|
+
Like all abstractions this one is a little leaky so it helps to know what is going on under the hood. If nothing else, remember that the plurality of the method count.
|
21
|
+
|
22
|
+
## Singular methods add resources to the api fetch path
|
23
|
+
|
24
|
+
For example:
|
25
|
+
|
26
|
+
client = SoundcloudPlus.new(:client_id => "123456789")
|
27
|
+
client.track(1234).shared_to.email
|
28
|
+
client.path # => "/tracks/1234/shared-to/emails"
|
29
|
+
|
30
|
+
This path must match the soundcloud web api. You can't do something like
|
31
|
+
|
32
|
+
client.user(1234).comment(4321).track(2345) # Won't work
|
33
|
+
|
34
|
+
## Plural methods add resources to the api path and then fetch
|
35
|
+
|
36
|
+
For example
|
37
|
+
|
38
|
+
client = SoundcloudPlus.new(:client_id => "123456789")
|
39
|
+
client.user(1234).favorites # => Array of user 1234's favorites
|
40
|
+
or
|
41
|
+
client.users(1234) # => Hashie with user 1234's information
|
42
|
+
|
43
|
+
## Calls to resource properties will also result in a one time fetch
|
44
|
+
|
45
|
+
For example
|
46
|
+
|
47
|
+
client = SoundcloudPlus.new(:client_id => "123456789")
|
48
|
+
track = client.track(1234) # => SoundcloudPlus object with path = "/tracks/1234"
|
49
|
+
track.id # Makes fetch to "/tracks/1234", returns "1234"
|
50
|
+
# Subsequent property calls don't result in a fetch.
|
51
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
require 'rspec/core'
|
5
|
+
require 'rspec/core/rake_task'
|
6
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
7
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
8
|
+
end
|
9
|
+
|
10
|
+
task :test => :spec
|
11
|
+
task :default => :spec
|
@@ -0,0 +1,127 @@
|
|
1
|
+
|
2
|
+
require 'soundcloud'
|
3
|
+
require 'soundcloud-plus/functions'
|
4
|
+
require 'uri'
|
5
|
+
|
6
|
+
class SoundcloudPlus < Soundcloud
|
7
|
+
|
8
|
+
attr_accessor :path , :options
|
9
|
+
|
10
|
+
PLURAL_CALLS = %w(user track playlist group comment connection activity app following follower favorite favoriter email)
|
11
|
+
SINGULAR_CALLS = %w(shared-to secret-token all own affiliated exclusive)
|
12
|
+
PARAMETERS = %w(limit order)
|
13
|
+
|
14
|
+
def initialize(options={})
|
15
|
+
super options
|
16
|
+
@path = ""
|
17
|
+
end
|
18
|
+
|
19
|
+
# Call method on fetched results
|
20
|
+
def method_missing(method, *args, &block)
|
21
|
+
@results ||= self.fetch!
|
22
|
+
@results.send(method)
|
23
|
+
end
|
24
|
+
|
25
|
+
def me
|
26
|
+
@path = "/me"
|
27
|
+
end
|
28
|
+
|
29
|
+
# Tally look up methods
|
30
|
+
SINGULAR_CALLS.each do |call|
|
31
|
+
class_eval <<-METHOD
|
32
|
+
def #{call.gsub('-','_')}(value, options = {})
|
33
|
+
attach("#{call}",value, options)
|
34
|
+
end
|
35
|
+
METHOD
|
36
|
+
end
|
37
|
+
|
38
|
+
PLURAL_CALLS.each do |call|
|
39
|
+
class_eval <<-METHOD
|
40
|
+
def #{call.pluralize}(value = nil, options = {})
|
41
|
+
attach("#{call.pluralize}", value, options).fetch!
|
42
|
+
end
|
43
|
+
|
44
|
+
def #{call}(value = nil, options = {})
|
45
|
+
attach("#{call.pluralize}", value, options)
|
46
|
+
end
|
47
|
+
METHOD
|
48
|
+
end
|
49
|
+
|
50
|
+
PARAMETERS.each do |call|
|
51
|
+
class_eval <<-METHOD
|
52
|
+
def #{call}(value)
|
53
|
+
if value
|
54
|
+
@options[:#{call}] = value
|
55
|
+
self
|
56
|
+
else
|
57
|
+
@options[:#{call}]
|
58
|
+
end
|
59
|
+
end
|
60
|
+
METHOD
|
61
|
+
end
|
62
|
+
|
63
|
+
# Add parameters to the query options
|
64
|
+
#
|
65
|
+
# @example Adding limit to number of user returned
|
66
|
+
# client = SoundcloudPlus.new(:client_id => "client_id")
|
67
|
+
# client.user.where(:limit => 5)
|
68
|
+
#
|
69
|
+
# @return [SoundcloudPlus] self
|
70
|
+
#
|
71
|
+
def where(params = {})
|
72
|
+
@options.merge!(params)
|
73
|
+
self
|
74
|
+
end
|
75
|
+
|
76
|
+
# Attaches resource and resource id path
|
77
|
+
#
|
78
|
+
# @example Attach user resource to path
|
79
|
+
# client = SoundcloudPlus.new(:client_id => "client_id")
|
80
|
+
# client.attach("users", "bob")
|
81
|
+
# client.path # => /users/1234
|
82
|
+
#
|
83
|
+
# @return [ SoundcloudPlus ] self
|
84
|
+
#
|
85
|
+
def attach(resource, value = nil, options = {})
|
86
|
+
@path << "/#{resource}"
|
87
|
+
@options.merge!(options)
|
88
|
+
if value
|
89
|
+
@path << (value.class == Fixnum ? "/#{value}" : "/#{resolve(value).id}" )
|
90
|
+
end
|
91
|
+
self
|
92
|
+
end
|
93
|
+
|
94
|
+
# Fetches resources from current path with current options
|
95
|
+
#
|
96
|
+
# @example Fetching user
|
97
|
+
# client = SoundcloudPlus.new(:client_id => "client_id")
|
98
|
+
# user = client.user(1234).fetch!
|
99
|
+
# user.permalink # => "bob"
|
100
|
+
#
|
101
|
+
# @return [Hashie] Hashie containing resource from path
|
102
|
+
#
|
103
|
+
def fetch!
|
104
|
+
old_path = path
|
105
|
+
if old_path && path.length > 0
|
106
|
+
path = ""
|
107
|
+
@results = get(old_path, @options)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
alias :get! :fetch!
|
111
|
+
|
112
|
+
# Finds the soundcloud id for a soundcloud link or path
|
113
|
+
#
|
114
|
+
# @example Getting id of song with link
|
115
|
+
# client = SoundcloudPlus.new(:client_id => "client_id")
|
116
|
+
# track = client.resolve("http://soundcloud.com/poopyman/poopy-pants-song")
|
117
|
+
# track.name # => "Poopy Pants Song"
|
118
|
+
#
|
119
|
+
# @example Getting id of song with
|
120
|
+
#
|
121
|
+
def resolve(path)
|
122
|
+
path = URI.parse(path).path.sub(/\A\/+/,'')
|
123
|
+
url = "http://#{site}/#{path}"
|
124
|
+
@results = get("/resolve", :url => url)
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'active_support/inflector'
|
2
|
+
|
3
|
+
class String
|
4
|
+
|
5
|
+
# Uses active_support/infectors to determine if a string is singular or plural
|
6
|
+
#
|
7
|
+
# @example Determining if word is singular
|
8
|
+
# "poop".singular? # => true
|
9
|
+
# "farts".singular? # => false
|
10
|
+
#
|
11
|
+
def singular?
|
12
|
+
self.pluralize != self and self.singularize == self
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "soundcloud-plus/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "soundcloud-plus"
|
7
|
+
s.version = SCPlus::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Benjamin Guest"]
|
10
|
+
s.email = ["benguest@gmaill.com"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{Lightweight wrapper for a lightweight wrapper for the soundcloud api}
|
13
|
+
s.description = %q{makes calling soundcloud api simpler from ruby}
|
14
|
+
|
15
|
+
s.rubyforge_project = "soundcloud-plus"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
# specify any dependencies here; for example:
|
23
|
+
|
24
|
+
# General Dependency's
|
25
|
+
s.add_dependency "soundcloud", "~> 0.2.9"
|
26
|
+
s.add_dependency "active_support"
|
27
|
+
|
28
|
+
#Testing
|
29
|
+
s.add_development_dependency "rspec"
|
30
|
+
|
31
|
+
#Automated Testing
|
32
|
+
s.add_development_dependency "guard"
|
33
|
+
s.add_development_dependency "guard-rspec"
|
34
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SoundcloudPlus do
|
4
|
+
PARAMS = {:client_id => "client_id", :site => "example.com", :on_exchange_token => "token"}
|
5
|
+
|
6
|
+
let(:client){SoundcloudPlus.new(PARAMS)}
|
7
|
+
describe "#attach" do
|
8
|
+
it "should be able attach random to path" do
|
9
|
+
client.attach("poopsticks", 1234)
|
10
|
+
client.path.should == "/poopsticks/1234"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "#resolve" do
|
15
|
+
before(:each){client.should_receive(:get).with("/resolve",:url => "http://example.com/poopman/poopy-track")}
|
16
|
+
it{ client.resolve("http://example.com/poopman/poopy-track")}
|
17
|
+
it{ client.resolve("poopman/poopy-track")}
|
18
|
+
it{ client.resolve("/poopman/poopy-track")}
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "#fetch! (and alias)" do
|
22
|
+
before(:each){client.should_receive(:get).with("/tracks/1234",PARAMS)}
|
23
|
+
it{ client.track(1234).fetch!}
|
24
|
+
it{ client.tracks(1234)}
|
25
|
+
it{ client.track(1234).get!}
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "#me" do
|
29
|
+
it "should add /me to path" do
|
30
|
+
client.me
|
31
|
+
client.path.should == "/me"
|
32
|
+
end
|
33
|
+
it "should remove other stuff from path when called" do
|
34
|
+
client.track(1234).me
|
35
|
+
client.path.should == "/me"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "#user" do
|
40
|
+
it "should add user with id" do
|
41
|
+
client.user(1234)
|
42
|
+
client.path.should == "/users/1234"
|
43
|
+
end
|
44
|
+
it "should add user with permalink only" do
|
45
|
+
client.stub!(:resolve).and_return(client)
|
46
|
+
client.stub!(:id).and_return(1234)
|
47
|
+
client.user("bob")
|
48
|
+
client.path.should == "/users/1234"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "#users" do
|
53
|
+
it "should request users" do
|
54
|
+
client.should_receive(:get).with("/users", PARAMS)
|
55
|
+
client.users
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
%w(user track playlist group comment app).each do |method|
|
60
|
+
describe "##{method}(1234)" do
|
61
|
+
it "should add correct thing to path" do
|
62
|
+
client.send(method, 1234)
|
63
|
+
client.path.should == "/#{method.pluralize}/1234"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "##{method.pluralize}" do
|
68
|
+
it "should add list to end of path and fetch" do
|
69
|
+
client.should_receive(:get).with("/#{method.pluralize}", PARAMS)
|
70
|
+
client.send(method.pluralize)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
%w(shared_to secret_token all own exclusive).each do |method|
|
76
|
+
describe "##{method}" do
|
77
|
+
it "should add correct thing to path" do
|
78
|
+
client.send(method, 1234)
|
79
|
+
client.path.should == "/#{method.gsub('_','-')}/1234"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe "s ability to chain calls together" do
|
85
|
+
it "should chain track and comment together" do
|
86
|
+
client.track(1234).comment(5678)
|
87
|
+
client.path.should == "/tracks/1234/comments/5678"
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
%w(limit order).each do |method|
|
93
|
+
it "should add parameter to options" do
|
94
|
+
client.send(method,"param")
|
95
|
+
client.options[method.to_sym].should == "param"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe "#where" do
|
100
|
+
it "should add hash to parameters" do
|
101
|
+
client.where(:thing => "sweet")
|
102
|
+
client.options.should == PARAMS.merge({:thing => "sweet"})
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# spec_helper
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler/setup'
|
5
|
+
# Bundler.setup
|
6
|
+
|
7
|
+
require 'soundcloud-plus'
|
8
|
+
|
9
|
+
require 'rspec'
|
10
|
+
|
11
|
+
RSpec.configure do |config| # :nodoc: all
|
12
|
+
# == Mock Framework
|
13
|
+
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
14
|
+
config.mock_with :rspec
|
15
|
+
|
16
|
+
#Focus on one test with :focus
|
17
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
18
|
+
config.filter_run :focus => true
|
19
|
+
config.run_all_when_everything_filtered = true
|
20
|
+
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: soundcloud-plus
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Benjamin Guest
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-01-20 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: soundcloud
|
16
|
+
requirement: &70212389140440 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.2.9
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70212389140440
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: active_support
|
27
|
+
requirement: &70212389139660 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70212389139660
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &70212389138920 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70212389138920
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: guard
|
49
|
+
requirement: &70212389138160 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70212389138160
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: guard-rspec
|
60
|
+
requirement: &70212389137140 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70212389137140
|
69
|
+
description: makes calling soundcloud api simpler from ruby
|
70
|
+
email:
|
71
|
+
- benguest@gmaill.com
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- .gitignore
|
77
|
+
- .rvmrc
|
78
|
+
- Gemfile
|
79
|
+
- Gemfile.lock
|
80
|
+
- Guardfile
|
81
|
+
- README.md
|
82
|
+
- Rakefile
|
83
|
+
- lib/soundcloud-plus.rb
|
84
|
+
- lib/soundcloud-plus/functions.rb
|
85
|
+
- lib/soundcloud-plus/version.rb
|
86
|
+
- soundcloud-plus.gemspec
|
87
|
+
- spec/soundcloud-plus/functions_spec.rb
|
88
|
+
- spec/soundcloud-plus_spec.rb
|
89
|
+
- spec/spec_helper.rb
|
90
|
+
homepage: ''
|
91
|
+
licenses: []
|
92
|
+
post_install_message:
|
93
|
+
rdoc_options: []
|
94
|
+
require_paths:
|
95
|
+
- lib
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
104
|
+
requirements:
|
105
|
+
- - ! '>='
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
108
|
+
requirements: []
|
109
|
+
rubyforge_project: soundcloud-plus
|
110
|
+
rubygems_version: 1.8.10
|
111
|
+
signing_key:
|
112
|
+
specification_version: 3
|
113
|
+
summary: Lightweight wrapper for a lightweight wrapper for the soundcloud api
|
114
|
+
test_files:
|
115
|
+
- spec/soundcloud-plus/functions_spec.rb
|
116
|
+
- spec/soundcloud-plus_spec.rb
|
117
|
+
- spec/spec_helper.rb
|