videojuicer-vj-sdk 0.1.5 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. data/Rakefile +3 -3
  2. data/VERSION.yml +1 -1
  3. data/lib/core_ext/hash.rb +13 -1
  4. data/lib/core_ext/object.rb +15 -0
  5. data/lib/core_ext/string.rb +11 -0
  6. data/lib/sdk_connection_harness.rb +25 -11
  7. data/lib/videojuicer.rb +13 -9
  8. data/lib/videojuicer/asset/audio.rb +5 -4
  9. data/lib/videojuicer/asset/base.rb +30 -15
  10. data/lib/videojuicer/asset/flash.rb +8 -0
  11. data/lib/videojuicer/asset/image.rb +2 -2
  12. data/lib/videojuicer/asset/video.rb +12 -9
  13. data/lib/videojuicer/campaign.rb +10 -1
  14. data/lib/videojuicer/campaign_policy.rb +116 -0
  15. data/lib/videojuicer/criterion/base.rb +56 -0
  16. data/lib/videojuicer/criterion/date_range.rb +7 -17
  17. data/lib/videojuicer/criterion/geolocation.rb +11 -20
  18. data/lib/videojuicer/criterion/request.rb +8 -17
  19. data/lib/videojuicer/criterion/time.rb +8 -18
  20. data/lib/videojuicer/criterion/week_day.rb +13 -17
  21. data/lib/videojuicer/oauth/request_proxy.rb +19 -13
  22. data/lib/videojuicer/presentation.rb +6 -0
  23. data/lib/videojuicer/promo/base.rb +72 -0
  24. data/lib/videojuicer/resource/base.rb +17 -15
  25. data/lib/videojuicer/resource/embeddable.rb +30 -0
  26. data/lib/videojuicer/resource/inferrable.rb +67 -7
  27. data/lib/videojuicer/resource/property_registry.rb +19 -0
  28. data/lib/videojuicer/resource/relationships/belongs_to.rb +2 -1
  29. data/lib/videojuicer/resource/types.rb +28 -0
  30. data/spec/assets/audio_spec.rb +24 -0
  31. data/spec/assets/flash_spec.rb +24 -0
  32. data/spec/assets/image_spec.rb +24 -0
  33. data/spec/assets/text_spec.rb +24 -0
  34. data/spec/assets/video_spec.rb +24 -0
  35. data/spec/campaign_policy_spec.rb +41 -0
  36. data/spec/campaign_spec.rb +0 -12
  37. data/spec/criterion/date_range_spec.rb +24 -0
  38. data/spec/criterion/geolocation_spec.rb +23 -0
  39. data/spec/criterion/request_spec.rb +23 -0
  40. data/spec/criterion/time_spec.rb +23 -0
  41. data/spec/criterion/week_day_spec.rb +23 -0
  42. data/spec/files/flash.swf +0 -0
  43. data/spec/helpers/be_equal_to.rb +26 -0
  44. data/spec/helpers/spec_fixtures.rb +214 -0
  45. data/spec/helpers/spec_helper.rb +27 -25
  46. data/spec/presentation_spec.rb +2 -15
  47. data/spec/promos/audio_spec.rb +23 -0
  48. data/spec/promos/image_spec.rb +24 -0
  49. data/spec/promos/text_spec.rb +23 -0
  50. data/spec/promos/video_spec.rb +23 -0
  51. data/spec/request_proxy_spec.rb +8 -12
  52. data/spec/session_spec.rb +3 -1
  53. data/spec/shared/dependent_spec.rb +40 -0
  54. data/spec/shared/embeddable_spec.rb +34 -0
  55. data/spec/shared/model_spec.rb +74 -0
  56. data/spec/shared/resource_spec.rb +12 -41
  57. data/spec/spec.opts +1 -1
  58. data/spec/user_spec.rb +5 -27
  59. data/tasks/vj-core.rb +3 -2
  60. data/vj-sdk.gemspec +56 -24
  61. metadata +53 -23
  62. data/lib/videojuicer/criterion/affiliate.rb +0 -21
  63. data/lib/videojuicer/criterion/embed.rb +0 -12
  64. data/spec/audio_spec.rb +0 -45
  65. data/spec/criteria/date_range_spec.rb +0 -37
  66. data/spec/criteria/geolocation_spec.rb +0 -38
  67. data/spec/criteria/request_spec.rb +0 -36
  68. data/spec/criteria/time_spec.rb +0 -37
  69. data/spec/criteria/week_day_spec.rb +0 -39
  70. data/spec/image_spec.rb +0 -44
  71. data/spec/text_spec.rb +0 -42
  72. data/spec/video_spec.rb +0 -50
@@ -1,38 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "helpers", "spec_helper")
2
-
3
- describe Videojuicer::Criterion::Geolocation do
4
-
5
- before(:all) do
6
- @klass = Videojuicer::Criterion::Geolocation
7
- configure_test_settings
8
- Videojuicer.enter_scope :seed_name => fixtures.seed.name,
9
- :consumer_key=>fixtures["write-master"].consumer.consumer_key,
10
- :consumer_secret=>fixtures["write-master"].consumer.consumer_secret,
11
- :token=>fixtures["write-master"].authorized_token.oauth_token,
12
- :token_secret=>fixtures["write-master"].authorized_token.oauth_token_secret
13
- end
14
-
15
- after(:all) do
16
- Videojuicer.exit_scope
17
- end
18
-
19
- describe "instantiation" do
20
- it_should_behave_like "a configurable"
21
- end
22
-
23
- describe "general interface:" do
24
- before(:all) do
25
- @singular_name = "criterion"
26
- @plural_name = "criteria/geolocation"
27
- @good_attributes = {
28
- :city => "Mountain View",
29
- :region => "CA",
30
- :country => "United States"
31
- }
32
- end
33
-
34
- it_should_behave_like "a RESTFUL resource model"
35
- end
36
-
37
-
38
- end
@@ -1,36 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "helpers", "spec_helper")
2
-
3
- describe Videojuicer::Criterion::Request do
4
-
5
- before(:all) do
6
- @klass = Videojuicer::Criterion::Request
7
- configure_test_settings
8
- Videojuicer.enter_scope :seed_name => fixtures.seed.name,
9
- :consumer_key=>fixtures["write-master"].consumer.consumer_key,
10
- :consumer_secret=>fixtures["write-master"].consumer.consumer_secret,
11
- :token=>fixtures["write-master"].authorized_token.oauth_token,
12
- :token_secret=>fixtures["write-master"].authorized_token.oauth_token_secret
13
- end
14
-
15
- after(:all) do
16
- Videojuicer.exit_scope
17
- end
18
-
19
- describe "instantiation" do
20
- it_should_behave_like "a configurable"
21
- end
22
-
23
- describe "general interface:" do
24
- before(:all) do
25
- @singular_name = "criterion"
26
- @plural_name = "criteria/request"
27
- @good_attributes = {
28
- :referrer => "http://www.google.com",
29
- }
30
- end
31
-
32
- it_should_behave_like "a RESTFUL resource model"
33
- end
34
-
35
-
36
- end
@@ -1,37 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "helpers", "spec_helper")
2
-
3
- describe Videojuicer::Criterion::Time do
4
-
5
- before(:all) do
6
- @klass = Videojuicer::Criterion::Time
7
- configure_test_settings
8
- Videojuicer.enter_scope :seed_name => fixtures.seed.name,
9
- :consumer_key=>fixtures["write-master"].consumer.consumer_key,
10
- :consumer_secret=>fixtures["write-master"].consumer.consumer_secret,
11
- :token=>fixtures["write-master"].authorized_token.oauth_token,
12
- :token_secret=>fixtures["write-master"].authorized_token.oauth_token_secret
13
- end
14
-
15
- after(:all) do
16
- Videojuicer.exit_scope
17
- end
18
-
19
- describe "instantiation" do
20
- it_should_behave_like "a configurable"
21
- end
22
-
23
- describe "general interface:" do
24
- before(:all) do
25
- @singular_name = "criterion"
26
- @plural_name = "criteria/time"
27
- @good_attributes = {
28
- :after => (Time.now - 3600).strftime("%H%M"),
29
- :until => (Time.now + 3600).strftime("%H%M")
30
- }
31
- end
32
-
33
- it_should_behave_like "a RESTFUL resource model"
34
- end
35
-
36
-
37
- end
@@ -1,39 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "helpers", "spec_helper")
2
-
3
- describe Videojuicer::Criterion::WeekDay do
4
-
5
- before(:all) do
6
- @klass = Videojuicer::Criterion::WeekDay
7
- configure_test_settings
8
- Videojuicer.enter_scope :seed_name => fixtures.seed.name,
9
- :consumer_key=>fixtures["write-master"].consumer.consumer_key,
10
- :consumer_secret=>fixtures["write-master"].consumer.consumer_secret,
11
- :token=>fixtures["write-master"].authorized_token.oauth_token,
12
- :token_secret=>fixtures["write-master"].authorized_token.oauth_token_secret
13
- end
14
-
15
- after(:all) do
16
- Videojuicer.exit_scope
17
- end
18
-
19
- describe "instantiation" do
20
- it_should_behave_like "a configurable"
21
- end
22
-
23
- describe "general interface:" do
24
- before(:all) do
25
- @singular_name = "criterion"
26
- @plural_name = "criteria/week_day"
27
- @good_attributes = {
28
- :day=>5
29
- }
30
- @random_attributes = {
31
- :day=> (0..6).to_a.sort_by{ rand }.first
32
- }
33
- end
34
-
35
- it_should_behave_like "a RESTFUL resource model"
36
- end
37
-
38
-
39
- end
@@ -1,44 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "helpers", "spec_helper")
2
-
3
- describe Videojuicer::Asset::Image do
4
-
5
- before(:all) do
6
- @klass = Videojuicer::Asset::Image
7
- configure_test_settings
8
- Videojuicer.enter_scope :seed_name => fixtures.seed.name,
9
- :consumer_key=>fixtures["write-master"].consumer.consumer_key,
10
- :consumer_secret=>fixtures["write-master"].consumer.consumer_secret,
11
- :token=>fixtures["write-master"].authorized_token.oauth_token,
12
- :token_secret=>fixtures["write-master"].authorized_token.oauth_token_secret
13
- end
14
-
15
- after(:all) do
16
- Videojuicer.exit_scope
17
- end
18
-
19
- describe "instantiation" do
20
- it_should_behave_like "a configurable"
21
- end
22
-
23
- describe "general interface:" do
24
- before(:all) do
25
- @singular_name = "asset"
26
- @plural_name = "assets/image"
27
- @good_attributes = {
28
- :user_id => rand(100) + 1,
29
- :licensed_at => Time.now,
30
- :licensed_by => "foo, bar",
31
- :licensed_under => "CC BY:NC:SA",
32
- :published_at => Time.now,
33
- :duration => 180000,
34
- :width => 640,
35
- :height => 480,
36
- :file => File.open(File.join(File.dirname(__FILE__), "files", "image.jpg"))
37
- }
38
- end
39
-
40
- it_should_behave_like "a RESTFUL resource model"
41
- end
42
-
43
-
44
- end
@@ -1,42 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "helpers", "spec_helper")
2
-
3
- describe Videojuicer::Asset::Text do
4
-
5
- before(:all) do
6
- @klass = Videojuicer::Asset::Text
7
- configure_test_settings
8
- Videojuicer.enter_scope :seed_name => fixtures.seed.name,
9
- :consumer_key=>fixtures["write-master"].consumer.consumer_key,
10
- :consumer_secret=>fixtures["write-master"].consumer.consumer_secret,
11
- :token=>fixtures["write-master"].authorized_token.oauth_token,
12
- :token_secret=>fixtures["write-master"].authorized_token.oauth_token_secret
13
- end
14
-
15
- after(:all) do
16
- Videojuicer.exit_scope
17
- end
18
-
19
- describe "instantiation" do
20
- it_should_behave_like "a configurable"
21
- end
22
-
23
- describe "general interface:" do
24
- before(:all) do
25
- @singular_name = "asset"
26
- @plural_name = "assets/text"
27
- @good_attributes = {
28
- :user_id => rand(100) + 1,
29
- :licensed_at => Time.now,
30
- :licensed_by => "foo, bar",
31
- :licensed_under => "CC BY:NC:SA",
32
- :published_at => Time.now,
33
- :duration => 180000,
34
- :file => File.open(File.join(File.dirname(__FILE__), "files", "text.txt"))
35
- }
36
- end
37
-
38
- it_should_behave_like "a RESTFUL resource model"
39
- end
40
-
41
-
42
- end
@@ -1,50 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "helpers", "spec_helper")
2
-
3
- describe Videojuicer::Asset::Video do
4
-
5
- before(:all) do
6
- @klass = Videojuicer::Asset::Video
7
- configure_test_settings
8
- Videojuicer.enter_scope :seed_name => fixtures.seed.name,
9
- :consumer_key=>fixtures["write-master"].consumer.consumer_key,
10
- :consumer_secret=>fixtures["write-master"].consumer.consumer_secret,
11
- :token=>fixtures["write-master"].authorized_token.oauth_token,
12
- :token_secret=>fixtures["write-master"].authorized_token.oauth_token_secret
13
- end
14
-
15
- after(:all) do
16
- Videojuicer.exit_scope
17
- end
18
-
19
- describe "instantiation" do
20
- it_should_behave_like "a configurable"
21
- end
22
-
23
- describe "general interface:" do
24
- before(:all) do
25
- @singular_name = "asset"
26
- @plural_name = "assets/video"
27
- @good_attributes = {
28
- :user_id => rand(100) + 1,
29
- :licensed_at => Time.now,
30
- :licensed_by => "foo, bar",
31
- :licensed_under => "CC BY:NC:SA",
32
- :published_at => Time.now,
33
- :duration => 14990,
34
- :audio_bit_rate => 354200,
35
- :audio_format => "QDesign Music 2",
36
- :audio_sample_rate => 22050,
37
- :audio_stereo => "mono",
38
- :video_bit_rate => 1000000,
39
- :video_format => "Sorenson Video 3 Decompressor",
40
- :width => 240,
41
- :height => 180,
42
- :file => File.open(File.join(File.dirname(__FILE__), "files", "video.mov"))
43
- }
44
- end
45
-
46
- it_should_behave_like "a RESTFUL resource model"
47
- end
48
-
49
-
50
- end