vj-sdk 0.7.0 → 0.7.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/Gemfile CHANGED
@@ -16,4 +16,5 @@ gem "rspec", "1.3.0"
16
16
  gem "mash"
17
17
  gem "randexp"
18
18
  gem "ruby-hmac"
19
- gem "liquid", "2.0.0"
19
+ gem "liquid", "2.0.0"
20
+ gem "json", "1.4.6"
@@ -1,5 +1,5 @@
1
1
  ---
2
- :major: 0
3
2
  :build:
3
+ :major: 0
4
4
  :minor: 7
5
- :patch: 0
5
+ :patch: 1
@@ -37,7 +37,7 @@ require 'videojuicer/user'
37
37
  require 'videojuicer/campaign'
38
38
  require 'videojuicer/insert'
39
39
  require 'videojuicer/presentation'
40
- require 'videojuicer/asset/all'
40
+ require 'videojuicer/asset'
41
41
  require 'videojuicer/asset/audio'
42
42
  require 'videojuicer/asset/document'
43
43
  require 'videojuicer/asset/flash'
@@ -0,0 +1,21 @@
1
+ module Videojuicer
2
+ module Asset
3
+ def self.all(options = {})
4
+ proxy = Videojuicer::OAuth::RequestProxy.new(Videojuicer.current_scope)
5
+ response = proxy.get("/assets", "asset" => options)
6
+ items, count, offset, limit = JSON.parse(response.body).values_at("items", "count", "offset", "limit")
7
+ assets = items.map { |i| const_get(i.delete("type").capitalize).new(i) }
8
+
9
+ # TODO: this should really be taken care of in VJ:Resource::initialize
10
+ # then VJ::Resource::CMs.all can also omit this step
11
+ assets.each { |a| a.clean_dirty_attributes! }
12
+
13
+ Videojuicer::Resource::Collection.new(assets, count, offset, limit)
14
+ end
15
+
16
+ TYPES = %w(Audio Document Image Flash Text Video)
17
+ def self.types
18
+ TYPES.map { |t| const_get(t) }
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,40 @@
1
+ require File.join(File.dirname(__FILE__), "helpers", "spec_helper")
2
+
3
+ describe Videojuicer::Asset do
4
+ before :all do
5
+ configure_test_settings
6
+
7
+ @klass = Videojuicer::Asset
8
+ @assets = @klass.types.map do |t|
9
+ 4.of { t.gen } << t.gen(:friendly_name => "to_filter")
10
+ end.flatten
11
+ end
12
+
13
+ after :all do
14
+ @assets.each { |a| a.destroy }
15
+ end
16
+
17
+ describe "listing assets of all types" do
18
+ it "should list all assets" do
19
+ @assets = @klass.all
20
+ @assets.class.should == Videojuicer::Resource::Collection
21
+ @assets.total.should >= @assets.size
22
+ end
23
+
24
+ it "should limit results" do
25
+ @assets = @klass.all(:limit => 5)
26
+ @assets.length.should == 5
27
+ end
28
+
29
+ it "should paginate" do
30
+ @assets = @klass.all(:offset => 19, :limit => 10)
31
+ @assets.page_count.should > 2
32
+ @assets.page_number.should == 2
33
+ @assets.length.should == 10
34
+ end
35
+
36
+ it "should filter by friendly_name" do
37
+ @klass.all("friendly_name.like" => "to_filter").total.should == @klass.types.size
38
+ end
39
+ end
40
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{vj-sdk}
8
- s.version = "0.7.0"
8
+ s.version = "0.7.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["danski", "thejohnny", "knowtheory", "sixones", "btab", "lamp"]
12
- s.date = %q{2010-12-14}
12
+ s.date = %q{2011-01-10}
13
13
  s.email = %q{dan@videojuicer.com}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  "lib/core_ext/object.rb",
29
29
  "lib/core_ext/string.rb",
30
30
  "lib/videojuicer.rb",
31
- "lib/videojuicer/asset/all.rb",
31
+ "lib/videojuicer/asset.rb",
32
32
  "lib/videojuicer/asset/audio.rb",
33
33
  "lib/videojuicer/asset/base.rb",
34
34
  "lib/videojuicer/asset/document.rb",
@@ -62,7 +62,7 @@ Gem::Specification.new do |s|
62
62
  "lib/videojuicer/shared/exceptions.rb",
63
63
  "lib/videojuicer/shared/liquid_helper.rb",
64
64
  "lib/videojuicer/user.rb",
65
- "spec/assets/all.rb",
65
+ "spec/asset_spec.rb",
66
66
  "spec/assets/audio_spec.rb",
67
67
  "spec/assets/document_spec.rb",
68
68
  "spec/assets/flash_spec.rb",
@@ -111,7 +111,7 @@ Gem::Specification.new do |s|
111
111
  s.rubygems_version = %q{1.3.7}
112
112
  s.summary = %q{Videojuicer core-sdk}
113
113
  s.test_files = [
114
- "spec/assets/all.rb",
114
+ "spec/asset_spec.rb",
115
115
  "spec/assets/audio_spec.rb",
116
116
  "spec/assets/document_spec.rb",
117
117
  "spec/assets/flash_spec.rb",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vj-sdk
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- - 0
10
- version: 0.7.0
9
+ - 1
10
+ version: 0.7.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - danski
@@ -20,7 +20,7 @@ autorequire:
20
20
  bindir: bin
21
21
  cert_chain: []
22
22
 
23
- date: 2010-12-14 00:00:00 +00:00
23
+ date: 2011-01-10 00:00:00 +00:00
24
24
  default_executable:
25
25
  dependencies:
26
26
  - !ruby/object:Gem::Dependency
@@ -108,7 +108,7 @@ files:
108
108
  - lib/core_ext/object.rb
109
109
  - lib/core_ext/string.rb
110
110
  - lib/videojuicer.rb
111
- - lib/videojuicer/asset/all.rb
111
+ - lib/videojuicer/asset.rb
112
112
  - lib/videojuicer/asset/audio.rb
113
113
  - lib/videojuicer/asset/base.rb
114
114
  - lib/videojuicer/asset/document.rb
@@ -142,7 +142,7 @@ files:
142
142
  - lib/videojuicer/shared/exceptions.rb
143
143
  - lib/videojuicer/shared/liquid_helper.rb
144
144
  - lib/videojuicer/user.rb
145
- - spec/assets/all.rb
145
+ - spec/asset_spec.rb
146
146
  - spec/assets/audio_spec.rb
147
147
  - spec/assets/document_spec.rb
148
148
  - spec/assets/flash_spec.rb
@@ -219,7 +219,7 @@ signing_key:
219
219
  specification_version: 3
220
220
  summary: Videojuicer core-sdk
221
221
  test_files:
222
- - spec/assets/all.rb
222
+ - spec/asset_spec.rb
223
223
  - spec/assets/audio_spec.rb
224
224
  - spec/assets/document_spec.rb
225
225
  - spec/assets/flash_spec.rb
@@ -1,45 +0,0 @@
1
- module Videojuicer
2
- module Asset
3
- class All
4
-
5
- include Videojuicer::Resource
6
- include Videojuicer::Exceptions
7
-
8
- property :name, String
9
- property :friendly_name, String
10
- property :type, String
11
- property :http_url, String
12
- property :created_at, DateTime
13
- property :updated_at, DateTime
14
-
15
- def self.singular_name
16
- "asset"
17
- end
18
-
19
- def self.base_path(options={})
20
- "/assets"
21
- end
22
-
23
- def derive(preset)
24
- response = proxy_for(config).post(resource_path, :preset_id => preset.id)
25
- self.class.new(JSON.parse(response.body))
26
- end
27
-
28
- def returnable_attributes
29
- attrs = super
30
- attrs.delete(:file) unless new_record?
31
- attrs
32
- end
33
-
34
- def set_derived(from_asset, preset)
35
- params = {
36
- :original_asset_type => from_asset.class.to_s.split("::").last,
37
- :original_asset_id => from_asset.id,
38
- :preset_id => preset.id
39
- }
40
- response = proxy_for(config).post(resource_path(:set_derived), params)
41
- self.attributes = JSON.parse(response.body)
42
- end
43
- end
44
- end
45
- end
@@ -1,41 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "helpers", "spec_helper")
2
-
3
- describe Videojuicer::Asset::All do
4
-
5
- before :all do
6
- configure_test_settings
7
- 5.of do
8
- Videojuicer::Asset::Video.gen :friendly_name => "test"
9
- end
10
- @klass = Videojuicer::Asset::All
11
- end
12
-
13
- describe "instantiation" do
14
- it_should_behave_like "a configurable"
15
- end
16
-
17
- describe "listing assets of all types" do
18
-
19
- it "should list assets" do
20
- @assets = @klass.all
21
- @assets.should_not == nil
22
- @assets.class.should == Videojuicer::Resource::Collection
23
- end
24
-
25
- it "should paginate" do
26
- @assets = @klass.all :page => 1, :limit => 5
27
- @assets.length.should == 5
28
- end
29
-
30
- end
31
-
32
- describe "searching" do
33
- it "should search" do
34
- @assets = @klass.all({"friendly_name.like" => "test"})
35
- @assets.should_not == nil
36
- @assets.class.should == Videojuicer::Resource::Collection
37
- @assets.first.friendly_name.should =~ /test/
38
- end
39
- end
40
-
41
- end