tangerine 0.3.1 → 0.4.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/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/VERSION +1 -1
- data/lib/tangerine.rb +2 -1
- data/lib/tangerine/backlot.rb +16 -6
- data/lib/tangerine/backlot/base.rb +27 -0
- data/lib/tangerine/backlot/channel.rb +14 -0
- data/lib/tangerine/backlot/channel_set.rb +15 -12
- data/lib/tangerine/backlot/video.rb +1 -1
- data/spec/support/tangerine_girl.rb +53 -0
- data/spec/support/vcr_cassettes/Tangerine_Backlot_API_get_channel_sets_list_.yml +47 -0
- data/spec/support/vcr_cassettes/Tangerine_Query_new_contentType_MultiChannel_.yml +4 -4
- data/spec/tangerine/backlot_spec.rb +19 -4
- data/spec/tangerine/base_spec.rb +7 -0
- data/spec/tangerine/channel_set_spec.rb +34 -24
- data/spec/tangerine/video_spec.rb +1 -2
- data/tangerine.gemspec +12 -3
- metadata +47 -25
- data/lib/tangerine/backlot/query.rb +0 -9
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -9,6 +9,7 @@ GEM
|
|
9
9
|
git (1.2.5)
|
10
10
|
httparty (0.7.4)
|
11
11
|
crack (= 0.1.8)
|
12
|
+
i18n (0.5.0)
|
12
13
|
jeweler (1.5.2)
|
13
14
|
bundler (~> 1.0.0)
|
14
15
|
git (>= 1.2.5)
|
@@ -41,6 +42,7 @@ DEPENDENCIES
|
|
41
42
|
bundler (~> 1.0.0)
|
42
43
|
fakeweb (= 1.3.0)
|
43
44
|
httparty (= 0.7.4)
|
45
|
+
i18n (= 0.5.0)
|
44
46
|
jeweler (~> 1.5.2)
|
45
47
|
rcov
|
46
48
|
rspec (~> 2.3.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/lib/tangerine.rb
CHANGED
data/lib/tangerine/backlot.rb
CHANGED
@@ -4,6 +4,7 @@ require 'digest/sha2'
|
|
4
4
|
|
5
5
|
module Tangerine
|
6
6
|
module Backlot
|
7
|
+
|
7
8
|
class HTTP
|
8
9
|
include HTTParty
|
9
10
|
base_uri 'http://api.ooyala.com/partner'
|
@@ -17,17 +18,22 @@ module Tangerine
|
|
17
18
|
end
|
18
19
|
|
19
20
|
def self.get(request_type, params={})
|
20
|
-
|
21
|
-
HTTP.default_params :pcode => @provider_code
|
21
|
+
set_params(params)
|
22
22
|
HTTP.get(request_type)
|
23
23
|
end
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
def self.set_params(params)
|
26
|
+
HTTP.default_params.clear
|
27
|
+
|
28
28
|
params['expires'] ||= (Time.now.to_i + 10).to_s
|
29
|
+
HTTP.default_params params
|
30
|
+
|
31
|
+
HTTP.default_params :pcode => @provider_code
|
32
|
+
HTTP.default_params :signature => self.signature(params)
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.signature(params)
|
29
36
|
string_to_sign = params.keys.sort.inject(@secret) do |memo, key|
|
30
|
-
HTTP.default_params key => params[key]
|
31
37
|
memo += "#{key}=#{params[key]}"
|
32
38
|
end
|
33
39
|
digest = Digest::SHA256.digest(string_to_sign)
|
@@ -37,5 +43,9 @@ module Tangerine
|
|
37
43
|
end
|
38
44
|
|
39
45
|
end
|
46
|
+
|
47
|
+
def self.query(options)
|
48
|
+
Tangerine::Backlot::API.get('/query', options)
|
49
|
+
end
|
40
50
|
end
|
41
51
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class Tangerine::Base
|
2
|
+
|
3
|
+
def initialize(options)
|
4
|
+
options.delete('content_type')
|
5
|
+
options.each do |k,v|
|
6
|
+
# TODO: Look into using Crack gem for reliably undercoring these
|
7
|
+
attr = k.to_s.underscore
|
8
|
+
self.send("#{attr}=", v)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.prepare_items(items)
|
13
|
+
# Yes, we are fully aware that type-checking sucks. Move along now, nothing to see here.
|
14
|
+
items.is_a?(Array) ? items : [items]
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.finder(&block)
|
18
|
+
@finder = block
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.find(embed_code)
|
22
|
+
results = @finder.call
|
23
|
+
results = self.prepare_items(results)
|
24
|
+
found_item = results.select { |item| item['embedCode'] == embed_code }.first
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class Tangerine::ChannelSet
|
1
|
+
class Tangerine::ChannelSet < Tangerine::Base
|
2
2
|
|
3
3
|
attr_accessor :embed_code,
|
4
4
|
:title,
|
@@ -12,19 +12,22 @@ class Tangerine::ChannelSet
|
|
12
12
|
:height,
|
13
13
|
:stat
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
# TODO: Look into using Crack gem for reliably undercoring these
|
19
|
-
attr = k.to_s.underscore
|
20
|
-
self.send("#{attr}=", v)
|
21
|
-
# TODO: move into Base class
|
22
|
-
end
|
15
|
+
finder do
|
16
|
+
response = Tangerine.query('contentType' => 'MultiChannel')
|
17
|
+
response.parsed_response['list']['item']
|
23
18
|
end
|
24
19
|
|
25
20
|
def self.find(embed_code)
|
26
|
-
|
27
|
-
|
28
|
-
Tangerine::ChannelSet.new(meh)
|
21
|
+
found = super(embed_code)
|
22
|
+
Tangerine::ChannelSet.new(found)
|
29
23
|
end
|
24
|
+
|
25
|
+
def channels
|
26
|
+
result = Tangerine::Backlot::API.get('/channel_sets', 'mode' => 'list', 'channelSetEmbedCode' => embed_code)
|
27
|
+
items = result.parsed_response['channelSet']['channel']
|
28
|
+
items = Tangerine::Base.prepare_items(items)
|
29
|
+
items.collect {|item| Tangerine::Channel.new(item) }
|
30
|
+
end
|
31
|
+
|
30
32
|
end
|
33
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module TangerineGirl
|
2
|
+
|
3
|
+
@@definitions = {}
|
4
|
+
|
5
|
+
def self.create(template_name, overrides={})
|
6
|
+
@@definitions[template_name].create(overrides)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.define(template_name)
|
10
|
+
template = TangerineGirl::Template.new(template_name)
|
11
|
+
yield template
|
12
|
+
@@definitions[template_name] = template
|
13
|
+
end
|
14
|
+
|
15
|
+
class Template
|
16
|
+
|
17
|
+
def initialize(name)
|
18
|
+
@name = name
|
19
|
+
@defaults = {}
|
20
|
+
end
|
21
|
+
|
22
|
+
def create(overrides)
|
23
|
+
options = @defaults.dup.merge(overrides)
|
24
|
+
subject = "Tangerine::#{@name.to_s.classify}".constantize
|
25
|
+
subject.new(options)
|
26
|
+
end
|
27
|
+
|
28
|
+
def method_missing(method, *args, &block)
|
29
|
+
if method.to_s =~ /=$/
|
30
|
+
attr_name = method.to_s.gsub(/=$/, '').to_sym
|
31
|
+
@defaults[attr_name] = *args
|
32
|
+
else
|
33
|
+
super(method, *args, &block)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
TangerineGirl.define(:channel_set) do |cs|
|
41
|
+
cs.embed_code = "BLABLABLALBLABLABLBAHHH!!!!"
|
42
|
+
cs.title = "an ode to channelsets"
|
43
|
+
# cs.description = nil
|
44
|
+
# cs.flight_start_time = "1294087113"
|
45
|
+
# cs.height = "3"
|
46
|
+
# cs.size = nil
|
47
|
+
# cs.stat = nil
|
48
|
+
# cs.status = "live"
|
49
|
+
# cs.updated_at = "1294087113"
|
50
|
+
# cs.uploaded_at = "1294087113"
|
51
|
+
# cs.width = "4"
|
52
|
+
end
|
53
|
+
|
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://api.ooyala.com:80/partner/channel_sets?channelSetEmbedCode=85aTdiMjoYR5K26Fp8TMgGtGQUCEC2Y1&pcode=lsNTrbQBqCQbH-VA6ALCshAHLWrV&signature=awYsnC3RpS4PN%2BXZGuFZTizUi5VAXTsAngkuuFwyoSg&expires=1325437210&mode=list
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
response: !ruby/struct:VCR::Response
|
9
|
+
status: !ruby/struct:VCR::ResponseStatus
|
10
|
+
code: 200
|
11
|
+
message: OK
|
12
|
+
headers:
|
13
|
+
last-modified:
|
14
|
+
- Thu, 10 Mar 2011 21:02:45 GMT
|
15
|
+
content-type:
|
16
|
+
- application/xml; charset=utf-8
|
17
|
+
date:
|
18
|
+
- Thu, 10 Mar 2011 21:02:45 GMT
|
19
|
+
content-length:
|
20
|
+
- "659"
|
21
|
+
set-cookie:
|
22
|
+
- ooyala-web-rails-session=BAh7CDoPdXBkYXRlZF9hdEl1OglUaW1lDVXJG4DkXtQKBjofQG1hcnNoYWxfd2l0aF91dGNfY29lcmNpb25UOg9zZXNzaW9uX2lkIiVlMjM0ZjgwNjRiMGM2NWNjNzk5ZjVkNGNjNjE1OGVmNToSY3JlYXRpb25fdGltZUAG--1930e6d8333b31d5ee4bb86dc935478d6db5b4bd; path=/; HttpOnly
|
23
|
+
vary:
|
24
|
+
- Accept-Encoding,User-Agent
|
25
|
+
cache-control:
|
26
|
+
- private, max-age=0
|
27
|
+
body: |
|
28
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
29
|
+
<channelSet>
|
30
|
+
<embedCode>85aTdiMjoYR5K26Fp8TMgGtGQUCEC2Y1</embedCode>
|
31
|
+
<title>Brand Site Video Gallery</title>
|
32
|
+
<status>live</status>
|
33
|
+
<channel>
|
34
|
+
<embedCode>9haTdiMjoVHPey7H15JCroS9tJ25Xzw2</embedCode>
|
35
|
+
<title><%= title %></title>
|
36
|
+
<description></description>
|
37
|
+
<status>live</status>
|
38
|
+
<content_type>Channel</content_type>
|
39
|
+
<uploadedAt>1299603290</uploadedAt>
|
40
|
+
<length>258007</length>
|
41
|
+
<thumbnail>http://cdn.videos.thenorthface.com/I3MHB2MTqP5zvA8dYvzbvGlPJdg7DxRK/M_-lZjo5g2zgfr_H5hMDoxOjA0O88asB</thumbnail>
|
42
|
+
<size>0</size>
|
43
|
+
<updatedAt>1299603448</updatedAt>
|
44
|
+
</channel>
|
45
|
+
</channelSet>
|
46
|
+
|
47
|
+
http_version: "1.1"
|
@@ -28,8 +28,8 @@
|
|
28
28
|
<?xml version="1.0" encoding="UTF-8"?>
|
29
29
|
<list totalResults="5" size="5" pageID="0" statistics-as-of_text="Wed Mar 09 21:40:01 UTC 2011" limit="500" statistics-as-of="1299706801">
|
30
30
|
<item>
|
31
|
-
<embedCode
|
32
|
-
<title
|
31
|
+
<embedCode>x5b214MTomu6ISJSgohKKZbNuR9bdUJ8</embedCode>
|
32
|
+
<title>Pitchfork Live</title>
|
33
33
|
<description></description>
|
34
34
|
<status>live</status>
|
35
35
|
<content_type>MultiChannel</content_type>
|
@@ -43,8 +43,8 @@
|
|
43
43
|
</stat>
|
44
44
|
</item>
|
45
45
|
<item>
|
46
|
-
<embedCode
|
47
|
-
<title
|
46
|
+
<embedCode><%= mock_channel_set.embed_code %></embedCode>
|
47
|
+
<title><%= mock_channel_set.title %></title>
|
48
48
|
<description></description>
|
49
49
|
<status>live</status>
|
50
50
|
<content_type>MultiChannel</content_type>
|
@@ -11,17 +11,32 @@ describe Tangerine::Backlot do
|
|
11
11
|
describe Tangerine::Backlot::API do
|
12
12
|
context 'class methods' do
|
13
13
|
subject { Tangerine::Backlot::API }
|
14
|
-
let(:params) { {'some_key' => 'some_value'} }
|
15
14
|
|
16
|
-
# it { puts subject.get('/query', 'contentType' => 'MultiChannel').inspect }
|
17
15
|
describe '.get' do
|
16
|
+
|
18
17
|
let(:response) { mock }
|
19
18
|
let(:request) { '/some-request-path' }
|
20
|
-
before { Tangerine::Backlot::HTTP.should_receive(:get).with(request).and_return(response) }
|
21
19
|
|
22
20
|
it 'returns the HTTP response' do
|
23
|
-
|
21
|
+
Tangerine::Backlot::HTTP.should_receive(:get).with(request).and_return(response)
|
22
|
+
subject.get(request).should == response
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'when making subsequent requests' do
|
26
|
+
|
27
|
+
let(:original_params) { { 'contentType' => 'Channel' } }
|
28
|
+
before do
|
29
|
+
Tangerine::Backlot::HTTP.stub(:get)
|
30
|
+
Tangerine::Backlot::API.get('/query', original_params)
|
31
|
+
end
|
32
|
+
subject { Tangerine::Backlot::HTTP }
|
33
|
+
|
34
|
+
it 'clears parameters before the new request' do
|
35
|
+
Tangerine::Backlot::API.get('/channel_sets', 'mode' => 'list')
|
36
|
+
subject.default_params.keys.should_not include('contentType')
|
37
|
+
end
|
24
38
|
end
|
39
|
+
|
25
40
|
end
|
26
41
|
|
27
42
|
end
|
@@ -3,41 +3,51 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
3
3
|
describe Tangerine::ChannelSet do
|
4
4
|
authenticate!
|
5
5
|
|
6
|
+
let(:embed_code) { 'My Awesome Embed Code' }
|
7
|
+
let(:title) { 'My Awesome Title' }
|
8
|
+
let(:mock_channel_set) { double(:embed_code => embed_code, :title => title) }
|
9
|
+
let(:vcr_erb) { {:mock_channel_set => mock_channel_set} }
|
10
|
+
let(:channel_set) do
|
11
|
+
TangerineGirl.create(:channel_set, :embed_code => embed_code, :title => title)
|
12
|
+
end
|
13
|
+
|
6
14
|
context 'retreiving a specific channelset' do
|
7
15
|
|
8
16
|
describe '.find' do
|
9
17
|
|
10
|
-
let(:title) { 'My Awesome Title' }
|
11
|
-
let(:embed_code) { 'My Awesome Embed Code' }
|
12
|
-
let(:mock_channel_set) { double(:embed_code => embed_code, :title => title) }
|
13
|
-
let(:vcr_erb) { {:mock_channel_set => mock_channel_set} }
|
14
|
-
|
15
|
-
# TODO: find a better way to build these up ala FactoryGirl sans ActiveRecord
|
16
|
-
let(:channel_set) do
|
17
|
-
Tangerine::ChannelSet.new(
|
18
|
-
:embed_code => embed_code,
|
19
|
-
:title => title,
|
20
|
-
:description => nil,
|
21
|
-
:flight_start_time => "1294087113",
|
22
|
-
:height => "3",
|
23
|
-
:size => nil,
|
24
|
-
:stat => nil,
|
25
|
-
:status => "live",
|
26
|
-
:title => "My Awesome Title",
|
27
|
-
:updated_at => "1294087113",
|
28
|
-
:uploaded_at => "1294087113",
|
29
|
-
:width => "4"
|
30
|
-
)
|
31
|
-
end
|
32
|
-
|
33
18
|
subject { Tangerine::ChannelSet.find(embed_code) }
|
34
19
|
before do
|
35
20
|
pause_vcr "Tangerine::Query.new('contentType' => 'MultiChannel')", vcr_erb
|
36
21
|
end
|
22
|
+
|
23
|
+
after { play_vcr }
|
24
|
+
# it { should be_functionally_equivalent_to(channel_set) }
|
25
|
+
its(:embed_code) { should == embed_code }
|
26
|
+
its(:title) { should == title }
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'retreiving its channels' do
|
32
|
+
describe '#channels' do
|
33
|
+
|
34
|
+
let(:embed_code) { '85aTdiMjoYR5K26Fp8TMgGtGQUCEC2Y1' }
|
35
|
+
let(:title) { 'Snowboarding' }
|
36
|
+
let(:vcr_erb) { {:title => title} }
|
37
|
+
|
38
|
+
before do
|
39
|
+
Tangerine::ChannelSet.stub(:find).with(embed_code).and_return(channel_set)
|
40
|
+
pause_vcr "Tangerine::Backlot::API.get('channel_sets', 'list')", vcr_erb
|
41
|
+
end
|
37
42
|
after { play_vcr }
|
38
|
-
|
43
|
+
subject { Tangerine::ChannelSet.find(embed_code) }
|
44
|
+
|
45
|
+
it 'returns a list of channels belonging to the channelset' do
|
46
|
+
subject.channels.first.title.should == title
|
47
|
+
end
|
39
48
|
|
40
49
|
end
|
41
50
|
end
|
51
|
+
|
42
52
|
end
|
43
53
|
|
@@ -9,10 +9,9 @@ describe Tangerine::Video do
|
|
9
9
|
describe '.all' do
|
10
10
|
|
11
11
|
let(:mock_response) { mock }
|
12
|
-
let(:query_double) { double(:response => mock_response) }
|
13
12
|
let(:params) { {'contentType' => 'Video'} }
|
14
13
|
subject { Tangerine::Video.all }
|
15
|
-
before { Tangerine
|
14
|
+
before { Tangerine.should_receive(:query).with(params).and_return(mock_response) }
|
16
15
|
|
17
16
|
it 'returns the response of the query' do
|
18
17
|
subject.should == mock_response
|
data/tangerine.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{tangerine}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Anthony Navarre"]
|
12
|
-
s.date = %q{2011-03-
|
12
|
+
s.date = %q{2011-03-10}
|
13
13
|
s.description = %q{Ooyala Backlot API Wrapper. Read more about the Ooyala Backlot API at http://www.ooyala.com/support/docs/backlot_api}
|
14
14
|
s.email = %q{anthony.navarre@factorylabs.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -30,16 +30,20 @@ Gem::Specification.new do |s|
|
|
30
30
|
"VERSION",
|
31
31
|
"lib/tangerine.rb",
|
32
32
|
"lib/tangerine/backlot.rb",
|
33
|
+
"lib/tangerine/backlot/base.rb",
|
34
|
+
"lib/tangerine/backlot/channel.rb",
|
33
35
|
"lib/tangerine/backlot/channel_set.rb",
|
34
|
-
"lib/tangerine/backlot/query.rb",
|
35
36
|
"lib/tangerine/backlot/video.rb",
|
36
37
|
"spec/spec_helper.rb",
|
37
38
|
"spec/support/authentication.rb",
|
38
39
|
"spec/support/functionally_equivalent.rb",
|
40
|
+
"spec/support/tangerine_girl.rb",
|
41
|
+
"spec/support/vcr_cassettes/Tangerine_Backlot_API_get_channel_sets_list_.yml",
|
39
42
|
"spec/support/vcr_cassettes/Tangerine_Query_new_contentType_MultiChannel_.yml",
|
40
43
|
"spec/support/vcr_cassettes/Tangerine_Video_all.yml",
|
41
44
|
"spec/support/vcr_support.rb",
|
42
45
|
"spec/tangerine/backlot_spec.rb",
|
46
|
+
"spec/tangerine/base_spec.rb",
|
43
47
|
"spec/tangerine/channel_set_spec.rb",
|
44
48
|
"spec/tangerine/video_spec.rb",
|
45
49
|
"tangerine.gemspec"
|
@@ -53,8 +57,10 @@ Gem::Specification.new do |s|
|
|
53
57
|
"spec/spec_helper.rb",
|
54
58
|
"spec/support/authentication.rb",
|
55
59
|
"spec/support/functionally_equivalent.rb",
|
60
|
+
"spec/support/tangerine_girl.rb",
|
56
61
|
"spec/support/vcr_support.rb",
|
57
62
|
"spec/tangerine/backlot_spec.rb",
|
63
|
+
"spec/tangerine/base_spec.rb",
|
58
64
|
"spec/tangerine/channel_set_spec.rb",
|
59
65
|
"spec/tangerine/video_spec.rb"
|
60
66
|
]
|
@@ -65,6 +71,7 @@ Gem::Specification.new do |s|
|
|
65
71
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
66
72
|
s.add_runtime_dependency(%q<httparty>, ["= 0.7.4"])
|
67
73
|
s.add_runtime_dependency(%q<activesupport>, ["= 3.0.5"])
|
74
|
+
s.add_runtime_dependency(%q<i18n>, ["= 0.5.0"])
|
68
75
|
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
69
76
|
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
70
77
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -78,6 +85,7 @@ Gem::Specification.new do |s|
|
|
78
85
|
else
|
79
86
|
s.add_dependency(%q<httparty>, ["= 0.7.4"])
|
80
87
|
s.add_dependency(%q<activesupport>, ["= 3.0.5"])
|
88
|
+
s.add_dependency(%q<i18n>, ["= 0.5.0"])
|
81
89
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
82
90
|
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
83
91
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -92,6 +100,7 @@ Gem::Specification.new do |s|
|
|
92
100
|
else
|
93
101
|
s.add_dependency(%q<httparty>, ["= 0.7.4"])
|
94
102
|
s.add_dependency(%q<activesupport>, ["= 3.0.5"])
|
103
|
+
s.add_dependency(%q<i18n>, ["= 0.5.0"])
|
95
104
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
96
105
|
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
97
106
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tangerine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 0.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Anthony Navarre
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-03-
|
18
|
+
date: 2011-03-10 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -52,6 +52,22 @@ dependencies:
|
|
52
52
|
type: :runtime
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - "="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 11
|
60
|
+
segments:
|
61
|
+
- 0
|
62
|
+
- 5
|
63
|
+
- 0
|
64
|
+
version: 0.5.0
|
65
|
+
version_requirements: *id003
|
66
|
+
name: i18n
|
67
|
+
prerelease: false
|
68
|
+
type: :runtime
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
55
71
|
none: false
|
56
72
|
requirements:
|
57
73
|
- - ~>
|
@@ -62,12 +78,12 @@ dependencies:
|
|
62
78
|
- 3
|
63
79
|
- 0
|
64
80
|
version: 2.3.0
|
65
|
-
version_requirements: *
|
81
|
+
version_requirements: *id004
|
66
82
|
name: rspec
|
67
83
|
prerelease: false
|
68
84
|
type: :development
|
69
85
|
- !ruby/object:Gem::Dependency
|
70
|
-
requirement: &
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
71
87
|
none: false
|
72
88
|
requirements:
|
73
89
|
- - ~>
|
@@ -78,12 +94,12 @@ dependencies:
|
|
78
94
|
- 6
|
79
95
|
- 0
|
80
96
|
version: 0.6.0
|
81
|
-
version_requirements: *
|
97
|
+
version_requirements: *id005
|
82
98
|
name: yard
|
83
99
|
prerelease: false
|
84
100
|
type: :development
|
85
101
|
- !ruby/object:Gem::Dependency
|
86
|
-
requirement: &
|
102
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
87
103
|
none: false
|
88
104
|
requirements:
|
89
105
|
- - ~>
|
@@ -94,12 +110,12 @@ dependencies:
|
|
94
110
|
- 0
|
95
111
|
- 0
|
96
112
|
version: 1.0.0
|
97
|
-
version_requirements: *
|
113
|
+
version_requirements: *id006
|
98
114
|
name: bundler
|
99
115
|
prerelease: false
|
100
116
|
type: :development
|
101
117
|
- !ruby/object:Gem::Dependency
|
102
|
-
requirement: &
|
118
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
103
119
|
none: false
|
104
120
|
requirements:
|
105
121
|
- - ~>
|
@@ -110,12 +126,12 @@ dependencies:
|
|
110
126
|
- 5
|
111
127
|
- 2
|
112
128
|
version: 1.5.2
|
113
|
-
version_requirements: *
|
129
|
+
version_requirements: *id007
|
114
130
|
name: jeweler
|
115
131
|
prerelease: false
|
116
132
|
type: :development
|
117
133
|
- !ruby/object:Gem::Dependency
|
118
|
-
requirement: &
|
134
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
119
135
|
none: false
|
120
136
|
requirements:
|
121
137
|
- - ">="
|
@@ -124,12 +140,12 @@ dependencies:
|
|
124
140
|
segments:
|
125
141
|
- 0
|
126
142
|
version: "0"
|
127
|
-
version_requirements: *
|
143
|
+
version_requirements: *id008
|
128
144
|
name: rcov
|
129
145
|
prerelease: false
|
130
146
|
type: :development
|
131
147
|
- !ruby/object:Gem::Dependency
|
132
|
-
requirement: &
|
148
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
133
149
|
none: false
|
134
150
|
requirements:
|
135
151
|
- - "="
|
@@ -140,12 +156,12 @@ dependencies:
|
|
140
156
|
- 7
|
141
157
|
- 0
|
142
158
|
version: 1.7.0
|
143
|
-
version_requirements: *
|
159
|
+
version_requirements: *id009
|
144
160
|
name: vcr
|
145
161
|
prerelease: false
|
146
162
|
type: :development
|
147
163
|
- !ruby/object:Gem::Dependency
|
148
|
-
requirement: &
|
164
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
149
165
|
none: false
|
150
166
|
requirements:
|
151
167
|
- - "="
|
@@ -156,12 +172,12 @@ dependencies:
|
|
156
172
|
- 3
|
157
173
|
- 0
|
158
174
|
version: 1.3.0
|
159
|
-
version_requirements: *
|
175
|
+
version_requirements: *id010
|
160
176
|
name: fakeweb
|
161
177
|
prerelease: false
|
162
178
|
type: :development
|
163
179
|
- !ruby/object:Gem::Dependency
|
164
|
-
requirement: &
|
180
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
165
181
|
none: false
|
166
182
|
requirements:
|
167
183
|
- - "="
|
@@ -172,12 +188,12 @@ dependencies:
|
|
172
188
|
- 3
|
173
189
|
- 5
|
174
190
|
version: 0.3.5
|
175
|
-
version_requirements: *
|
191
|
+
version_requirements: *id011
|
176
192
|
name: timecop
|
177
193
|
prerelease: false
|
178
194
|
type: :development
|
179
195
|
- !ruby/object:Gem::Dependency
|
180
|
-
requirement: &
|
196
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
181
197
|
none: false
|
182
198
|
requirements:
|
183
199
|
- - "="
|
@@ -188,12 +204,12 @@ dependencies:
|
|
188
204
|
- 10
|
189
205
|
- 4
|
190
206
|
version: 0.10.4
|
191
|
-
version_requirements: *
|
207
|
+
version_requirements: *id012
|
192
208
|
name: ruby-debug
|
193
209
|
prerelease: false
|
194
210
|
type: :development
|
195
211
|
- !ruby/object:Gem::Dependency
|
196
|
-
requirement: &
|
212
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
197
213
|
none: false
|
198
214
|
requirements:
|
199
215
|
- - ">="
|
@@ -202,7 +218,7 @@ dependencies:
|
|
202
218
|
segments:
|
203
219
|
- 0
|
204
220
|
version: "0"
|
205
|
-
version_requirements: *
|
221
|
+
version_requirements: *id013
|
206
222
|
name: httparty
|
207
223
|
prerelease: false
|
208
224
|
type: :runtime
|
@@ -229,16 +245,20 @@ files:
|
|
229
245
|
- VERSION
|
230
246
|
- lib/tangerine.rb
|
231
247
|
- lib/tangerine/backlot.rb
|
248
|
+
- lib/tangerine/backlot/base.rb
|
249
|
+
- lib/tangerine/backlot/channel.rb
|
232
250
|
- lib/tangerine/backlot/channel_set.rb
|
233
|
-
- lib/tangerine/backlot/query.rb
|
234
251
|
- lib/tangerine/backlot/video.rb
|
235
252
|
- spec/spec_helper.rb
|
236
253
|
- spec/support/authentication.rb
|
237
254
|
- spec/support/functionally_equivalent.rb
|
255
|
+
- spec/support/tangerine_girl.rb
|
256
|
+
- spec/support/vcr_cassettes/Tangerine_Backlot_API_get_channel_sets_list_.yml
|
238
257
|
- spec/support/vcr_cassettes/Tangerine_Query_new_contentType_MultiChannel_.yml
|
239
258
|
- spec/support/vcr_cassettes/Tangerine_Video_all.yml
|
240
259
|
- spec/support/vcr_support.rb
|
241
260
|
- spec/tangerine/backlot_spec.rb
|
261
|
+
- spec/tangerine/base_spec.rb
|
242
262
|
- spec/tangerine/channel_set_spec.rb
|
243
263
|
- spec/tangerine/video_spec.rb
|
244
264
|
- tangerine.gemspec
|
@@ -280,7 +300,9 @@ test_files:
|
|
280
300
|
- spec/spec_helper.rb
|
281
301
|
- spec/support/authentication.rb
|
282
302
|
- spec/support/functionally_equivalent.rb
|
303
|
+
- spec/support/tangerine_girl.rb
|
283
304
|
- spec/support/vcr_support.rb
|
284
305
|
- spec/tangerine/backlot_spec.rb
|
306
|
+
- spec/tangerine/base_spec.rb
|
285
307
|
- spec/tangerine/channel_set_spec.rb
|
286
308
|
- spec/tangerine/video_spec.rb
|