the_castle_client 0.0.5 → 0.0.6
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.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/Rakefile +10 -0
- data/lib/the_castle_client.rb +12 -5
- data/lib/the_castle_client/version.rb +1 -1
- data/test/helper.rb +1 -0
- data/test/test_the_castle_client.rb +33 -18
- data/the_castle_client.gemspec +17 -12
- metadata +93 -72
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5f5675741562106bb9cc16b80567d1c69e0d548c
|
4
|
+
data.tar.gz: 9dc42bfd20f2714463ce2a636d0631689282d541
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8a051e5c341b4e2b8f4c0487a0746cb80d25d4bba063d534c92ce8a2d9fcb7c91da7121f24b2ecb6b4ba7c003c5775d5f7afedf5890390d8e7394278cf539afe
|
7
|
+
data.tar.gz: 70d0ea86db29509d04c0cb9a5e61b77b1e6612713281e7f6ab2727e38795821a443709a2ffb2cad067b832d061a384cfe68ae1c2267f1e65a352f98d213c4a8e
|
data/.gitignore
CHANGED
data/Rakefile
CHANGED
data/lib/the_castle_client.rb
CHANGED
@@ -7,9 +7,10 @@ module TheCastleClient
|
|
7
7
|
|
8
8
|
attr_accessor :key, :secret, :scheme, :host, :port, :version
|
9
9
|
|
10
|
-
def
|
11
|
-
|
12
|
-
|
10
|
+
def most_listened_pieces(most_on=Date.today, limit=25)
|
11
|
+
most_on = Date.parse(most_on) if most_on.is_a?(String)
|
12
|
+
options = {'most_on'=>most_on.to_s, 'limit'=>limit}
|
13
|
+
url = "/api/#{version}/pieces/most_listened#{to_query(options)}"
|
13
14
|
get(url, {'Accept'=>'application/json', 'Content-Type'=>'application/json'})
|
14
15
|
end
|
15
16
|
|
@@ -22,11 +23,17 @@ module TheCastleClient
|
|
22
23
|
end
|
23
24
|
|
24
25
|
# these are just niceties around the query method; deprecate?
|
25
|
-
def account_data(id, opts={}); query(id, 'account',
|
26
|
+
def account_data(id, opts={}); query(id, 'account', nil, opts); end
|
26
27
|
def account_aggregates(id); query(id, 'account', 'aggregates'); end
|
27
|
-
def piece_data(id, opts={}); query(id, 'piece',
|
28
|
+
def piece_data(id, opts={}); query(id, 'piece', nil, opts); end
|
28
29
|
def piece_aggregates(id); query(id, 'piece', 'aggregates'); end
|
29
30
|
|
31
|
+
def query(id, model='account', data_type=nil, options={})
|
32
|
+
raise "Invalid data type #{data_type}" unless ['aggregates', 'referrers', 'embedders', '', nil].include?(data_type)
|
33
|
+
url = ['/api', version, model.pluralize, id, data_type].compact.join("/") + to_query(options)
|
34
|
+
get(url, {'Accept'=>'application/json', 'Content-Type'=>'application/json'})
|
35
|
+
end
|
36
|
+
|
30
37
|
protected
|
31
38
|
|
32
39
|
[:delete, :get, :head, :post, :put, :request].each do |method|
|
data/test/helper.rb
CHANGED
@@ -1,48 +1,63 @@
|
|
1
1
|
require 'helper'
|
2
|
+
require 'active_support/all'
|
2
3
|
|
3
4
|
class TestTheCastleClient < Test::Unit::TestCase
|
4
5
|
|
5
6
|
def setup
|
6
|
-
TheCastleClient.key = '
|
7
|
-
TheCastleClient.secret = '
|
8
|
-
TheCastleClient.host =
|
9
|
-
TheCastleClient.port =
|
10
|
-
TheCastleClient.version = 'v1'
|
7
|
+
TheCastleClient.key = ENV['CASTLE_KEY']
|
8
|
+
TheCastleClient.secret = ENV['CASTLE_SECRET']
|
9
|
+
TheCastleClient.host = ENV['CASTLE_HOST'] || 'thecastle.dev'
|
10
|
+
TheCastleClient.port = ENV['CASTLE_PORT'] || 80
|
11
|
+
TheCastleClient.version = ENV['CASTLE_VERSION'] || 'v1'
|
12
|
+
|
13
|
+
@end_on = Date.today
|
14
|
+
@start_on = @end_on - 3.months
|
15
|
+
|
16
|
+
@account_id = 3437
|
17
|
+
@piece_id = 73865
|
11
18
|
end
|
12
|
-
|
19
|
+
|
13
20
|
def test_account_data
|
14
|
-
response = TheCastleClient.account_data(
|
21
|
+
response = TheCastleClient.account_data(@account_id, {:scale=>'week', :start_on=>@start_on, :end_on=>@end_on})
|
15
22
|
puts response.read_body
|
16
23
|
end
|
17
24
|
|
18
25
|
def test_account_embedders
|
19
|
-
response = TheCastleClient.query(
|
20
|
-
puts response.read_body
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_account_referrers
|
24
|
-
response = TheCastleClient.query(128129, 'account', 'referrers', {:scale=>'week', :start_on=>'2011-10-24', :end_on=>'2011-11-02'})
|
26
|
+
response = TheCastleClient.query(@account_id, 'account', 'embedders', {:scale=>'week', :start_on=>@start_on, :end_on=>@end_on})
|
25
27
|
puts response.read_body
|
26
28
|
end
|
27
|
-
|
29
|
+
|
28
30
|
def test_account_aggregates
|
29
|
-
response = TheCastleClient.account_aggregates(
|
31
|
+
response = TheCastleClient.account_aggregates(@account_id)
|
30
32
|
puts response.read_body
|
31
33
|
end
|
32
34
|
|
33
35
|
def test_piece_aggregates
|
34
|
-
response = TheCastleClient.piece_aggregates(
|
36
|
+
response = TheCastleClient.piece_aggregates(@piece_id)
|
35
37
|
puts response.read_body
|
36
38
|
end
|
37
39
|
|
38
40
|
def test_piece_data
|
39
|
-
|
41
|
+
@end_on = Date.today
|
42
|
+
@start_on = @end_on - 3.months
|
43
|
+
response = TheCastleClient.piece_data(@piece_id, {:scale=>'week', :start_on=>@start_on, :end_on=>@end_on})
|
40
44
|
puts response.read_body
|
41
45
|
end
|
42
46
|
|
43
47
|
def test_popular_pieces
|
44
|
-
response = TheCastleClient.popular_pieces(
|
48
|
+
response = TheCastleClient.popular_pieces(@start_on, 10)
|
45
49
|
puts response.read_body
|
46
50
|
end
|
47
51
|
|
52
|
+
def test_most_listened_pieces
|
53
|
+
response = TheCastleClient.most_listened_pieces(@start_on, 10)
|
54
|
+
puts response.read_body
|
55
|
+
end
|
56
|
+
|
57
|
+
# this cube is not deployed to production yet
|
58
|
+
# def test_account_referrers
|
59
|
+
# response = TheCastleClient.query(128129, 'account', 'referrers', {:scale=>'week', :start_on=>'2011-10-24', :end_on=>'2011-11-02'})
|
60
|
+
# puts response.read_body
|
61
|
+
# end
|
62
|
+
|
48
63
|
end
|
data/the_castle_client.gemspec
CHANGED
@@ -1,24 +1,29 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
4
|
require "the_castle_client/version"
|
4
5
|
|
5
6
|
Gem::Specification.new do |s|
|
6
7
|
s.name = "the_castle_client"
|
7
8
|
s.version = TheCastleClient::VERSION
|
8
|
-
s.
|
9
|
-
s.authors = ["kookster"]
|
9
|
+
s.authors = ["Andrew Kuklewicz"]
|
10
10
|
s.email = ["andrew@prx.org"]
|
11
|
-
s.homepage = ""
|
12
|
-
s.summary = %q{Get data from the castle, the PRX data warehouse.}
|
13
11
|
s.description = %q{Client to connect via 2-legged oauth, and get data from the castle.}
|
12
|
+
s.summary = %q{Get data from the castle, the PRX data warehouse.}
|
13
|
+
s.homepage = "https://github.com/PRX/TheCastle"
|
14
|
+
s.license = 'MIT'
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split($/)
|
17
|
+
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
19
|
+
s.require_paths = ['lib']
|
14
20
|
|
15
|
-
s.
|
21
|
+
s.add_development_dependency('bundler')
|
22
|
+
s.add_development_dependency('rake')
|
23
|
+
# s.add_development_dependency('webmock')
|
16
24
|
|
17
|
-
s.
|
18
|
-
s.
|
25
|
+
s.add_runtime_dependency("activesupport")
|
26
|
+
s.add_runtime_dependency("oauth")
|
27
|
+
s.add_runtime_dependency("json")
|
19
28
|
|
20
|
-
s.files = `git ls-files`.split("\n")
|
21
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
22
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
23
|
-
s.require_paths = ["lib"]
|
24
29
|
end
|
metadata
CHANGED
@@ -1,61 +1,92 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: the_castle_client
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 5
|
10
|
-
version: 0.0.5
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.6
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
13
|
-
-
|
6
|
+
authors:
|
7
|
+
- Andrew Kuklewicz
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
11
|
+
date: 2014-02-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
23
35
|
prerelease: false
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activesupport
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
33
48
|
type: :runtime
|
34
|
-
|
35
|
-
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
36
56
|
name: oauth
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
37
63
|
prerelease: false
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: json
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
47
76
|
type: :runtime
|
48
|
-
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
49
83
|
description: Client to connect via 2-legged oauth, and get data from the castle.
|
50
|
-
email:
|
84
|
+
email:
|
51
85
|
- andrew@prx.org
|
52
86
|
executables: []
|
53
|
-
|
54
87
|
extensions: []
|
55
|
-
|
56
88
|
extra_rdoc_files: []
|
57
|
-
|
58
|
-
files:
|
89
|
+
files:
|
59
90
|
- .gitignore
|
60
91
|
- Gemfile
|
61
92
|
- README.md
|
@@ -65,40 +96,30 @@ files:
|
|
65
96
|
- test/helper.rb
|
66
97
|
- test/test_the_castle_client.rb
|
67
98
|
- the_castle_client.gemspec
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
99
|
+
homepage: https://github.com/PRX/TheCastle
|
100
|
+
licenses:
|
101
|
+
- MIT
|
102
|
+
metadata: {}
|
72
103
|
post_install_message:
|
73
104
|
rdoc_options: []
|
74
|
-
|
75
|
-
require_paths:
|
105
|
+
require_paths:
|
76
106
|
- lib
|
77
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
none: false
|
88
|
-
requirements:
|
89
|
-
- - ">="
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
hash: 3
|
92
|
-
segments:
|
93
|
-
- 0
|
94
|
-
version: "0"
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
95
117
|
requirements: []
|
96
|
-
|
97
|
-
|
98
|
-
rubygems_version: 1.4.2
|
118
|
+
rubyforge_project:
|
119
|
+
rubygems_version: 2.1.11
|
99
120
|
signing_key:
|
100
|
-
specification_version:
|
121
|
+
specification_version: 4
|
101
122
|
summary: Get data from the castle, the PRX data warehouse.
|
102
|
-
test_files:
|
123
|
+
test_files:
|
103
124
|
- test/helper.rb
|
104
125
|
- test/test_the_castle_client.rb
|