audiosocket 0.0.3 → 0.1.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.
- data/.gitignore +17 -0
- data/Gemfile +2 -0
- data/{README.rdoc → README.md} +4 -16
- data/Rakefile +1 -13
- data/audiosocket.gemspec +19 -0
- data/lib/audiosocket.rb +2 -46
- data/lib/audiosocket/client.rb +70 -0
- data/lib/audiosocket/version.rb +3 -0
- metadata +40 -130
- data/.autotest +0 -5
- data/.gemtest +0 -0
- data/CHANGELOG.rdoc +0 -3
- data/Isolate +0 -7
- data/Manifest.txt +0 -8
- data/test/test_audiosocket.rb +0 -10
data/.gitignore
ADDED
data/Gemfile
ADDED
data/{README.rdoc → README.md}
RENAMED
@@ -1,22 +1,10 @@
|
|
1
|
-
|
1
|
+
# Audiosocket Ruby Client
|
2
2
|
|
3
|
-
|
3
|
+
An authentication client for Audiosocket's music discovery and licensing API.
|
4
4
|
|
5
|
-
|
5
|
+
## License (MIT)
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
== Examples
|
10
|
-
|
11
|
-
FIX (code sample of usage)
|
12
|
-
|
13
|
-
== Installation
|
14
|
-
|
15
|
-
$ gem install audiosocket
|
16
|
-
|
17
|
-
== License
|
18
|
-
|
19
|
-
Copyright 2010 Audiosocket (it@audiosocket.com)
|
7
|
+
Copyright 2010-2011 Audiosocket (it@audiosocket.com)
|
20
8
|
|
21
9
|
Permission is hereby granted, free of charge, to any person obtaining
|
22
10
|
a copy of this software and associated documentation files (the
|
data/Rakefile
CHANGED
@@ -1,13 +1 @@
|
|
1
|
-
require "
|
2
|
-
|
3
|
-
Hoe.plugins.delete :rubyforge
|
4
|
-
Hoe.plugin :doofus, :git, :isolate
|
5
|
-
|
6
|
-
Hoe.spec "audiosocket" do
|
7
|
-
developer "Audiosocket", "it@audiosocket.com"
|
8
|
-
|
9
|
-
self.extra_rdoc_files = Dir["*.rdoc"]
|
10
|
-
self.history_file = "CHANGELOG.rdoc"
|
11
|
-
self.readme_file = "README.rdoc"
|
12
|
-
self.testlib = :minitest
|
13
|
-
end
|
1
|
+
require "bundler/gem_tasks"
|
data/audiosocket.gemspec
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
$:.unshift "lib"
|
2
|
+
require "audiosocket/version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Audiosocket"]
|
6
|
+
gem.email = ["it@audiosocket.com"]
|
7
|
+
gem.description = "An authentication client for the Audiosocket API."
|
8
|
+
gem.summary = "Helps authenticate users and generate Audiosocket API tokens."
|
9
|
+
|
10
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename f }
|
11
|
+
gem.files = `git ls-files`.split "\n"
|
12
|
+
gem.homepage = "https://github.com/audiosocket/ruby-client"
|
13
|
+
gem.name = "audiosocket"
|
14
|
+
gem.require_paths = ["lib"]
|
15
|
+
gem.test_files = `git ls-files -- test/*`.split "\n"
|
16
|
+
gem.version = Audiosocket::VERSION
|
17
|
+
|
18
|
+
gem.add_dependency "faraday", "~> 0.7"
|
19
|
+
end
|
data/lib/audiosocket.rb
CHANGED
@@ -1,46 +1,2 @@
|
|
1
|
-
require "
|
2
|
-
require "
|
3
|
-
|
4
|
-
module Audiosocket
|
5
|
-
extend Configlet
|
6
|
-
|
7
|
-
# Duh.
|
8
|
-
|
9
|
-
VERSION = "0.0.3"
|
10
|
-
|
11
|
-
config :audiosocket do
|
12
|
-
default :token => "no-token-provided"
|
13
|
-
default :url => "http://audiosocket.com/api/v3"
|
14
|
-
end
|
15
|
-
|
16
|
-
RestClient.add_before_execution_proc do |req, params|
|
17
|
-
if params[:url].include? self[:url]
|
18
|
-
req["X-Audiosocket-Token"] = self[:token]
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.delete url, headers = {}, &block
|
23
|
-
RestClient.delete maybe_prefix(url), headers, &block
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.get url, headers = {}, &block
|
27
|
-
RestClient.get maybe_prefix(url), headers, &block
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.head url, headers = {}, &block
|
31
|
-
RestClient.head maybe_prefix(url), headers, &block
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.post url, payload, headers = {}, &block
|
35
|
-
RestClient.post maybe_prefix(url), payload, headers, &block
|
36
|
-
end
|
37
|
-
|
38
|
-
def self.put url, payload, headers = {}, &block
|
39
|
-
RestClient.put maybe_prefix(url), payload, headers, &block
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.maybe_prefix url #:nodoc:
|
43
|
-
return url if /^http/ =~ url
|
44
|
-
File.join self[:url], url
|
45
|
-
end
|
46
|
-
end
|
1
|
+
require "audiosocket/client"
|
2
|
+
require "audiosocket/version"
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require "faraday"
|
2
|
+
require "json"
|
3
|
+
|
4
|
+
module Audiosocket
|
5
|
+
class Client
|
6
|
+
attr_reader :conn
|
7
|
+
attr_reader :url
|
8
|
+
|
9
|
+
def initialize options = {}
|
10
|
+
@url = options[:url] || "https://api.audiosocket.com/v5"
|
11
|
+
|
12
|
+
|
13
|
+
@conn = Faraday.new url: @url do |f|
|
14
|
+
f.use Faraday::Request::JSON
|
15
|
+
f.use Faraday::Adapter::NetHttp
|
16
|
+
end
|
17
|
+
|
18
|
+
@conn.headers["X-Audiosocket-Token"] =
|
19
|
+
options.values_at(:token, :uid).compact.join ":"
|
20
|
+
end
|
21
|
+
|
22
|
+
# Auth a user given a temporary token or email and password.
|
23
|
+
|
24
|
+
def auth email_or_token, password = nil
|
25
|
+
password ? post("auth", email: email_or_token, password: password) :
|
26
|
+
post("auth/#{email_or_token}")
|
27
|
+
end
|
28
|
+
|
29
|
+
# Send a GET to the API, handling the response.
|
30
|
+
|
31
|
+
def get *args, &block
|
32
|
+
handle @conn.get *args, &block
|
33
|
+
end
|
34
|
+
|
35
|
+
# Handle and transform Faraday's response. `404` responses return
|
36
|
+
# `nil`. Responses from `200` to `299` and `422` parse the body as
|
37
|
+
# JSON.
|
38
|
+
|
39
|
+
def handle res
|
40
|
+
case res.status
|
41
|
+
when 200..299, 422 then JSON.parse res.body
|
42
|
+
when 404 then nil
|
43
|
+
else raise "#{res.status}: #{res.body}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# Send a POST to the API, handling the response.
|
48
|
+
|
49
|
+
def post *args, &block
|
50
|
+
handle @conn.post *args, &block
|
51
|
+
end
|
52
|
+
|
53
|
+
# Send a PUT to the API, handling the response.
|
54
|
+
|
55
|
+
def put *args, &block
|
56
|
+
handle @conn.put *args, &block
|
57
|
+
end
|
58
|
+
|
59
|
+
def to_s
|
60
|
+
"#<Audiosocket::Client #{url}>"
|
61
|
+
end
|
62
|
+
|
63
|
+
# Create a temporary token for the client's current token/uid
|
64
|
+
# credentials.
|
65
|
+
|
66
|
+
def tokenize
|
67
|
+
post("token")["token"]
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
metadata
CHANGED
@@ -1,154 +1,64 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: audiosocket
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 3
|
10
|
-
version: 0.0.3
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Audiosocket
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
name: configlet
|
23
|
-
prerelease: false
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 2
|
32
|
-
- 0
|
33
|
-
version: "2.0"
|
34
|
-
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rest-client
|
38
|
-
prerelease: false
|
39
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
12
|
+
date: 2011-11-02 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: faraday
|
16
|
+
requirement: &70115962937120 !ruby/object:Gem::Requirement
|
40
17
|
none: false
|
41
|
-
requirements:
|
18
|
+
requirements:
|
42
19
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
segments:
|
46
|
-
- 1
|
47
|
-
- 5
|
48
|
-
version: "1.5"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.7'
|
49
22
|
type: :runtime
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: fakeweb
|
53
|
-
prerelease: false
|
54
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
|
-
requirements:
|
57
|
-
- - ~>
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
hash: 11
|
60
|
-
segments:
|
61
|
-
- 1
|
62
|
-
- 2
|
63
|
-
version: "1.2"
|
64
|
-
type: :development
|
65
|
-
version_requirements: *id003
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: minitest
|
68
|
-
prerelease: false
|
69
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
|
-
requirements:
|
72
|
-
- - ~>
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
hash: 3
|
75
|
-
segments:
|
76
|
-
- 1
|
77
|
-
- 6
|
78
|
-
version: "1.6"
|
79
|
-
type: :development
|
80
|
-
version_requirements: *id004
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: hoe
|
83
23
|
prerelease: false
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
hash: 41
|
90
|
-
segments:
|
91
|
-
- 2
|
92
|
-
- 9
|
93
|
-
- 1
|
94
|
-
version: 2.9.1
|
95
|
-
type: :development
|
96
|
-
version_requirements: *id005
|
97
|
-
description: Access to Audiosocket's music and media management API.
|
98
|
-
email:
|
24
|
+
version_requirements: *70115962937120
|
25
|
+
description: An authentication client for the Audiosocket API.
|
26
|
+
email:
|
99
27
|
- it@audiosocket.com
|
100
28
|
executables: []
|
101
|
-
|
102
29
|
extensions: []
|
103
|
-
|
104
|
-
|
105
|
-
-
|
106
|
-
-
|
107
|
-
- README.
|
108
|
-
files:
|
109
|
-
- .autotest
|
110
|
-
- CHANGELOG.rdoc
|
111
|
-
- Isolate
|
112
|
-
- Manifest.txt
|
113
|
-
- README.rdoc
|
30
|
+
extra_rdoc_files: []
|
31
|
+
files:
|
32
|
+
- .gitignore
|
33
|
+
- Gemfile
|
34
|
+
- README.md
|
114
35
|
- Rakefile
|
36
|
+
- audiosocket.gemspec
|
115
37
|
- lib/audiosocket.rb
|
116
|
-
-
|
117
|
-
- .
|
118
|
-
|
119
|
-
homepage: http://github.com/audiosocket/ruby-client
|
38
|
+
- lib/audiosocket/client.rb
|
39
|
+
- lib/audiosocket/version.rb
|
40
|
+
homepage: https://github.com/audiosocket/ruby-client
|
120
41
|
licenses: []
|
121
|
-
|
122
42
|
post_install_message:
|
123
|
-
rdoc_options:
|
124
|
-
|
125
|
-
- README.rdoc
|
126
|
-
require_paths:
|
43
|
+
rdoc_options: []
|
44
|
+
require_paths:
|
127
45
|
- lib
|
128
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
129
47
|
none: false
|
130
|
-
requirements:
|
131
|
-
- -
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
|
134
|
-
|
135
|
-
- 0
|
136
|
-
version: "0"
|
137
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ! '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
52
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
53
|
none: false
|
139
|
-
requirements:
|
140
|
-
- -
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
|
143
|
-
segments:
|
144
|
-
- 0
|
145
|
-
version: "0"
|
54
|
+
requirements:
|
55
|
+
- - ! '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
146
58
|
requirements: []
|
147
|
-
|
148
|
-
|
149
|
-
rubygems_version: 1.5.1
|
59
|
+
rubyforge_project:
|
60
|
+
rubygems_version: 1.8.11
|
150
61
|
signing_key:
|
151
62
|
specification_version: 3
|
152
|
-
summary:
|
153
|
-
test_files:
|
154
|
-
- test/test_audiosocket.rb
|
63
|
+
summary: Helps authenticate users and generate Audiosocket API tokens.
|
64
|
+
test_files: []
|
data/.autotest
DELETED
data/.gemtest
DELETED
File without changes
|
data/CHANGELOG.rdoc
DELETED
data/Isolate
DELETED
data/Manifest.txt
DELETED
data/test/test_audiosocket.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
require "isolate/now"
|
2
|
-
require "minitest/autorun"
|
3
|
-
require "audiosocket"
|
4
|
-
|
5
|
-
class TestAudiosocket < MiniTest::Unit::TestCase
|
6
|
-
def test_self_config_defaults
|
7
|
-
assert_equal "no-token-provided", Audiosocket[:token]
|
8
|
-
assert_equal "http://audiosocket.com/api/v3", Audiosocket[:url]
|
9
|
-
end
|
10
|
-
end
|