vj-sdk 0.6.4 → 0.6.5
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/VERSION.yml +1 -1
- data/lib/videojuicer/presentation.rb +1 -1
- data/lib/videojuicer/resource/property_registry.rb +7 -1
- data/spec/helpers/spec_fixtures.rb +1 -1
- data/spec/presentation_spec.rb +12 -4
- data/spec/property_registry_spec.rb +19 -0
- data/vj-sdk.gemspec +2 -2
- metadata +8 -8
data/VERSION.yml
CHANGED
@@ -62,7 +62,7 @@ module Videojuicer
|
|
62
62
|
end
|
63
63
|
define_method "#{type}_assets" do
|
64
64
|
@assets ||= {}
|
65
|
-
@assets[sym_type] ||= Videojuicer::Asset.const_get(type.capitalize.to_sym).all :id => asset_ids[sym_type].join(',')
|
65
|
+
@assets[sym_type] ||= Videojuicer::Asset.const_get(type.capitalize.to_sym).all :id => asset_ids[sym_type].join(',') rescue nil
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
@@ -45,7 +45,8 @@ module Videojuicer
|
|
45
45
|
def attributes=(arg)
|
46
46
|
raise ArgumentError, "Attributes must be set as a Hash" unless arg.is_a?(Hash)
|
47
47
|
arg.each do |key, value|
|
48
|
-
|
48
|
+
#set any attributes, ignoring all those that are invalid
|
49
|
+
self.send("#{key}=", value) rescue invalid_attributes[key] = value
|
49
50
|
end
|
50
51
|
end
|
51
52
|
|
@@ -122,6 +123,7 @@ module Videojuicer
|
|
122
123
|
def coerce_value(key, value)
|
123
124
|
return value unless value
|
124
125
|
klass = self.class.attributes[key][:class]
|
126
|
+
|
125
127
|
if value.is_a?(String) and value.any?
|
126
128
|
# In-built types
|
127
129
|
if klass.kind_of?(Videojuicer::Resource::Types::Base)
|
@@ -160,6 +162,10 @@ module Videojuicer
|
|
160
162
|
attrs
|
161
163
|
end
|
162
164
|
|
165
|
+
def invalid_attributes
|
166
|
+
@invalid_attributes ||= {}
|
167
|
+
end
|
168
|
+
|
163
169
|
module SingletonMethods
|
164
170
|
|
165
171
|
# Registers an attribute using a datamapper-style syntax.
|
data/spec/presentation_spec.rb
CHANGED
@@ -56,10 +56,17 @@ describe Videojuicer::Presentation do
|
|
56
56
|
end
|
57
57
|
|
58
58
|
it "should also fetch assets" do
|
59
|
-
|
59
|
+
id = Videojuicer::Asset::Video.first.id
|
60
|
+
@presentation.document_content = "{% video %}{% id #{id} %}{% endvideo %}"
|
60
61
|
@presentation.asset_ids
|
61
62
|
@presentation.video_assets.first.should_not == nil
|
62
|
-
@presentation.video_assets.first.id.should ==
|
63
|
+
@presentation.video_assets.first.id.should == id
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should should return nil when there are not assets of that type" do
|
67
|
+
@presentation.document_content = "<img src=\"/my-image.png\"/>"
|
68
|
+
@presentation.asset_ids
|
69
|
+
@presentation.video_assets.should == nil
|
63
70
|
end
|
64
71
|
|
65
72
|
it "should return the image asset" do
|
@@ -69,9 +76,10 @@ describe Videojuicer::Presentation do
|
|
69
76
|
end
|
70
77
|
|
71
78
|
it "should also take a block and pass the image_asset to that block" do
|
72
|
-
|
79
|
+
id = Videojuicer::Asset::Image.first.id
|
80
|
+
@presentation.image_asset_id = id
|
73
81
|
@presentation.image_asset do |image|
|
74
|
-
image.id.should ==
|
82
|
+
image.id.should == id
|
75
83
|
end
|
76
84
|
end
|
77
85
|
|
@@ -37,11 +37,20 @@ describe Videojuicer::Resource::PropertyRegistry do
|
|
37
37
|
|
38
38
|
property :date, DateTime
|
39
39
|
end
|
40
|
+
|
41
|
+
class ::InvalidAttributeRegistry
|
42
|
+
|
43
|
+
include Videojuicer::Resource::PropertyRegistry
|
44
|
+
|
45
|
+
property :foo, String
|
46
|
+
end
|
47
|
+
|
40
48
|
end
|
41
49
|
before(:each) do
|
42
50
|
@example_registry = ::FooAttributeRegistry.new
|
43
51
|
@example_private_prop_registry = ::PrivatePropertyRegistry.new
|
44
52
|
@date_registry = ::DateRegistry.new
|
53
|
+
|
45
54
|
end
|
46
55
|
|
47
56
|
it "registers an attribute with a type at the class scope" do
|
@@ -150,5 +159,15 @@ describe Videojuicer::Resource::PropertyRegistry do
|
|
150
159
|
created.name.should == "name set"
|
151
160
|
created.email.should == "gooooo"
|
152
161
|
end
|
162
|
+
|
163
|
+
it "allows you to set arbitrary attributes" do
|
164
|
+
lambda { ::InvalidAttributeRegistry.new({:bar => 'bar'}) }.should_not raise_error(NoMethodError)
|
165
|
+
end
|
166
|
+
|
167
|
+
it "should store invalid attributes in a separate hash" do
|
168
|
+
invalid = ::InvalidAttributeRegistry.new({:bar => 'bar'})
|
169
|
+
invalid.invalid_attributes.should_not == {}
|
170
|
+
end
|
171
|
+
|
153
172
|
end
|
154
173
|
end
|
data/vj-sdk.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{vj-sdk}
|
8
|
-
s.version = "0.6.
|
8
|
+
s.version = "0.6.5"
|
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"]
|
12
|
-
s.date = %q{2010-08-
|
12
|
+
s.date = %q{2010-08-24}
|
13
13
|
s.email = %q{dan@videojuicer.com}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE",
|
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:
|
4
|
+
hash: 13
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
9
|
+
- 5
|
10
|
+
version: 0.6.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- danski
|
@@ -19,12 +19,11 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date: 2010-08-
|
22
|
+
date: 2010-08-24 00:00:00 +01:00
|
23
23
|
default_executable:
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
prerelease: false
|
27
|
-
name: json
|
28
27
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
29
|
requirements:
|
@@ -35,11 +34,11 @@ dependencies:
|
|
35
34
|
- 1
|
36
35
|
- 0
|
37
36
|
version: "1.0"
|
37
|
+
name: json
|
38
38
|
requirement: *id001
|
39
39
|
type: :runtime
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
prerelease: false
|
42
|
-
name: ruby-hmac
|
43
42
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
44
43
|
none: false
|
45
44
|
requirements:
|
@@ -51,11 +50,11 @@ dependencies:
|
|
51
50
|
- 3
|
52
51
|
- 2
|
53
52
|
version: 0.3.2
|
53
|
+
name: ruby-hmac
|
54
54
|
requirement: *id002
|
55
55
|
type: :runtime
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
prerelease: false
|
58
|
-
name: mash
|
59
58
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
60
59
|
none: false
|
61
60
|
requirements:
|
@@ -67,11 +66,11 @@ dependencies:
|
|
67
66
|
- 0
|
68
67
|
- 3
|
69
68
|
version: 0.0.3
|
69
|
+
name: mash
|
70
70
|
requirement: *id003
|
71
71
|
type: :runtime
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
prerelease: false
|
74
|
-
name: liquid
|
75
74
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
76
75
|
none: false
|
77
76
|
requirements:
|
@@ -83,6 +82,7 @@ dependencies:
|
|
83
82
|
- 0
|
84
83
|
- 0
|
85
84
|
version: 2.0.0
|
85
|
+
name: liquid
|
86
86
|
requirement: *id004
|
87
87
|
type: :runtime
|
88
88
|
description:
|