kaltura_box 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +24 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +22 -0
- data/README.md +60 -0
- data/Rakefile +2 -0
- data/kaltura_box.gemspec +28 -0
- data/lib/generators/kaltura_box/install_generator.rb +16 -0
- data/lib/generators/templates/kaltura_box.rb +18 -0
- data/lib/generators/templates/kaltura_upload.js +67 -0
- data/lib/kaltura_box.rb +10 -0
- data/lib/kaltura_box/api.rb +13 -0
- data/lib/kaltura_box/category.rb +18 -0
- data/lib/kaltura_box/category/class_methods.rb +50 -0
- data/lib/kaltura_box/category/instance_methods.rb +30 -0
- data/lib/kaltura_box/client.rb +45 -0
- data/lib/kaltura_box/configuration.rb +22 -0
- data/lib/kaltura_box/entry.rb +36 -0
- data/lib/kaltura_box/entry/class_methods.rb +51 -0
- data/lib/kaltura_box/entry/instance_methods.rb +13 -0
- data/lib/kaltura_box/entry/metadata.rb +152 -0
- data/lib/kaltura_box/entry/metadata/class_and_instance_methods.rb +54 -0
- data/lib/kaltura_box/entry/metadata/class_methods.rb +69 -0
- data/lib/kaltura_box/version.rb +3 -0
- data/spec/api_spec.rb +22 -0
- data/spec/category_spec.rb +51 -0
- data/spec/entry_spec.rb +38 -0
- data/spec/metadata_spec.rb +256 -0
- data/spec/spec_helper.rb +68 -0
- data/spec/support/video.flv +0 -0
- data/vendor/kaltura-ruby-client/README +20 -0
- data/vendor/kaltura-ruby-client/Rakefile +19 -0
- data/vendor/kaltura-ruby-client/kaltura.gemspec +15 -0
- data/vendor/kaltura-ruby-client/kaltura.yml +7 -0
- data/vendor/kaltura-ruby-client/lib/kaltura.rb +31 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_client.rb +14450 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_client_base.rb +432 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_abc_screeners_watermark_access_control_client_plugin.rb +37 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_ad_cue_point_client_plugin.rb +108 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_annotation_client_plugin.rb +237 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_aspera_client_plugin.rb +61 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_attachment_client_plugin.rb +227 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_audit_client_plugin.rb +349 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_bulk_upload_client_plugin.rb +109 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_bulk_upload_csv_client_plugin.rb +55 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_bulk_upload_filter_client_plugin.rb +46 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_bulk_upload_xml_client_plugin.rb +40 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_caption_client_plugin.rb +406 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_caption_search_client_plugin.rb +138 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_code_cue_point_client_plugin.rb +97 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_content_distribution_client_plugin.rb +1717 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_cue_point_client_plugin.rb +290 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_document_client_plugin.rb +522 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_drm_client_plugin.rb +204 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_drop_folder_client_plugin.rb +810 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_drop_folder_xml_bulk_upload_client_plugin.rb +39 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_email_notification_client_plugin.rb +276 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_event_notification_client_plugin.rb +405 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_external_media_client_plugin.rb +203 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_file_sync_client_plugin.rb +151 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_http_notification_client_plugin.rb +309 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_kontiki_client_plugin.rb +72 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_like_client_plugin.rb +82 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_metadata_client_plugin.rb +788 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_multi_centers_client_plugin.rb +45 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_short_link_client_plugin.rb +231 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_tag_search_client_plugin.rb +145 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_var_console_client_plugin.rb +238 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_velocix_client_plugin.rb +40 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_virus_scan_client_plugin.rb +263 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_webex_drop_folder_client_plugin.rb +121 -0
- data/vendor/kaltura-ruby-client/lib/kaltura_plugins/kaltura_widevine_client_plugin.rb +195 -0
- data/vendor/kaltura-ruby-client/license.txt +674 -0
- data/vendor/kaltura-ruby-client/test/access_control_service_test.rb +75 -0
- data/vendor/kaltura-ruby-client/test/base_entry_service_test.rb +267 -0
- data/vendor/kaltura-ruby-client/test/configuration_test.rb +178 -0
- data/vendor/kaltura-ruby-client/test/cue_point_service_test.rb +67 -0
- data/vendor/kaltura-ruby-client/test/data_service_test.rb +76 -0
- data/vendor/kaltura-ruby-client/test/document_service_test.rb +41 -0
- data/vendor/kaltura-ruby-client/test/media/test.mov +0 -0
- data/vendor/kaltura-ruby-client/test/media/test.pdf +0 -0
- data/vendor/kaltura-ruby-client/test/media/test.png +0 -0
- data/vendor/kaltura-ruby-client/test/media/test.swf +0 -0
- data/vendor/kaltura-ruby-client/test/media/test.wmv +0 -0
- data/vendor/kaltura-ruby-client/test/media_service_test.rb +294 -0
- data/vendor/kaltura-ruby-client/test/metadata_profile_service_test.rb +63 -0
- data/vendor/kaltura-ruby-client/test/test_helper.rb +59 -0
- metadata +220 -0
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
|
3
|
+
module KalturaBox
|
4
|
+
class Config
|
5
|
+
include Singleton
|
6
|
+
|
7
|
+
ATTRIBUTES = [ :login_email, :login_password, :partner_id, :subpartner_id,
|
8
|
+
:administrator_secret, :user_secret, :thumb_width, :thumb_height,
|
9
|
+
:player_conf_id, :service_url, :logger ]
|
10
|
+
|
11
|
+
attr_accessor *ATTRIBUTES
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.config
|
15
|
+
if block_given?
|
16
|
+
yield Config.instance
|
17
|
+
else
|
18
|
+
Config.instance
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'kaltura_box/entry/class_methods'
|
2
|
+
require 'kaltura_box/entry/instance_methods'
|
3
|
+
require 'kaltura_box/entry/metadata'
|
4
|
+
|
5
|
+
module KalturaBox
|
6
|
+
module Entry
|
7
|
+
|
8
|
+
#
|
9
|
+
# Entry object should have the following attributes:
|
10
|
+
#
|
11
|
+
# entry_id
|
12
|
+
# title
|
13
|
+
# description
|
14
|
+
# title
|
15
|
+
# description
|
16
|
+
# thumbnail_url
|
17
|
+
# data_url
|
18
|
+
# download_url
|
19
|
+
# ms_duration
|
20
|
+
# tags
|
21
|
+
# plays
|
22
|
+
# views
|
23
|
+
#
|
24
|
+
|
25
|
+
def self.included(base)
|
26
|
+
base.extend ClassMethods
|
27
|
+
base.class_eval do
|
28
|
+
include InstanceMethods
|
29
|
+
include ClassMethods
|
30
|
+
include Metadata
|
31
|
+
end
|
32
|
+
super
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'kaltura'
|
2
|
+
require 'kaltura_box/client'
|
3
|
+
require 'active_record'
|
4
|
+
|
5
|
+
module KalturaBox
|
6
|
+
module Entry
|
7
|
+
module ClassMethods
|
8
|
+
|
9
|
+
def upload(upload_object, options={})
|
10
|
+
client = KalturaBox::Client.update_session
|
11
|
+
media_entry = Kaltura::KalturaMediaEntry.new
|
12
|
+
|
13
|
+
options.each do |key, value|
|
14
|
+
media_entry.send("#{key}=", value) if valid_entry_attribute?(key)
|
15
|
+
end
|
16
|
+
|
17
|
+
media_entry.media_type = Kaltura::KalturaMediaType::VIDEO unless options[:media_type]
|
18
|
+
|
19
|
+
if options[:source] == :file
|
20
|
+
upload_token = client.media_service.upload(upload_object)
|
21
|
+
client.media_service.add_from_uploaded_file(media_entry,upload_token).id
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def video_list
|
26
|
+
client = KalturaBox::Client.update_session
|
27
|
+
media = Kaltura::KalturaMediaService.new(client)
|
28
|
+
media_list = media.list
|
29
|
+
media_list.objects.reject { |v| v.media_type != 1 }
|
30
|
+
end
|
31
|
+
|
32
|
+
def update_all_videos!
|
33
|
+
video_list.each do |v|
|
34
|
+
self.create(
|
35
|
+
entry_id: v.id,
|
36
|
+
title: v.name,
|
37
|
+
description: v.description,
|
38
|
+
thumbnail_url: v.thumbnail_url,
|
39
|
+
data_url: v.data_url,
|
40
|
+
download_url: v.download_url,
|
41
|
+
ms_duration: v.ms_duration,
|
42
|
+
tags: v.tags,
|
43
|
+
plays: v.plays,
|
44
|
+
views: v.views
|
45
|
+
)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,152 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
require 'kaltura_box/entry/metadata/class_methods'
|
3
|
+
require 'kaltura_box/entry/metadata/class_and_instance_methods'
|
4
|
+
|
5
|
+
module KalturaBox
|
6
|
+
module Entry
|
7
|
+
|
8
|
+
##
|
9
|
+
# The Metadata module provides methods that get/set and add metadata to the
|
10
|
+
# Kaltura installation.
|
11
|
+
#
|
12
|
+
# @author Patrick Robertson
|
13
|
+
##
|
14
|
+
module Metadata
|
15
|
+
|
16
|
+
##
|
17
|
+
# @private
|
18
|
+
##
|
19
|
+
def self.included(base)
|
20
|
+
base.extend ClassAndInstanceMethods
|
21
|
+
base.extend ClassMethods
|
22
|
+
base.class_eval do
|
23
|
+
include ClassAndInstanceMethods
|
24
|
+
end
|
25
|
+
super
|
26
|
+
end
|
27
|
+
|
28
|
+
##
|
29
|
+
# @private
|
30
|
+
##
|
31
|
+
def method_missing(name, *args)
|
32
|
+
method_name = name.to_s
|
33
|
+
unless self.class.generated_methods?
|
34
|
+
self.class.define_attribute_methods
|
35
|
+
if self.class.generated_methods.include?(method_name)
|
36
|
+
return self.send(name,*args)
|
37
|
+
else
|
38
|
+
super
|
39
|
+
end
|
40
|
+
else
|
41
|
+
super
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
##
|
46
|
+
# @private
|
47
|
+
##
|
48
|
+
def respond_to?(method)
|
49
|
+
case method.to_s
|
50
|
+
when /^(get|set)_(.*)/
|
51
|
+
valid_entry_attribute?($2.to_sym) || super
|
52
|
+
when /^(add)_(.*)/
|
53
|
+
(valid_entry_attribute?($2.pluralize.to_sym) && valid_add_attribute?($2) ) || super
|
54
|
+
else
|
55
|
+
super
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
##
|
60
|
+
# Gets a Kaltura::MediaEntry given a Kaltura entry.
|
61
|
+
#
|
62
|
+
# @param [String] video_id Kaltura entry_id of the video.
|
63
|
+
#
|
64
|
+
# @return [Kaltura::MediaEntry] The MediaEntry object for the Kaltura entry.
|
65
|
+
# @raose [Kaltura::APIError] Raises a kaltura error if it can't find the entry.
|
66
|
+
##
|
67
|
+
def get_entry(entry_id)
|
68
|
+
client = KalturaBox::Client.update_session
|
69
|
+
client.media_service.get(entry_id)
|
70
|
+
end
|
71
|
+
|
72
|
+
##
|
73
|
+
# Sets a specific Kaltura::MediaEntry attribute given a Kaltura entry.
|
74
|
+
# This method is called by method_missing, allowing this module set attributes based
|
75
|
+
# off of the current API wrapper, rather than having to update along side the API wrapper.
|
76
|
+
#
|
77
|
+
# @param [String] attr_name The attribute to set.
|
78
|
+
# @param [String] entry_id The Kaltura entry ID.
|
79
|
+
# @param [String] value The value you wish to set the attribute to.
|
80
|
+
#
|
81
|
+
# @return [String] Returns the value as stored in the Kaltura database. Tag strings come back
|
82
|
+
# slightly funny.
|
83
|
+
#
|
84
|
+
# @raise [Kaltura::APIError] Passes Kaltura API errors directly through.
|
85
|
+
##
|
86
|
+
def set_attribute(attr_name,entry_id,value)
|
87
|
+
client = KalturaBox::Client.update_session
|
88
|
+
media_entry = Kaltura::KalturaMediaEntry.new
|
89
|
+
media_entry.send("#{attr_name}=",value)
|
90
|
+
client.media_service.update(entry_id,media_entry).send(attr_name.to_sym)
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
##
|
95
|
+
# Sets multiple Kaltura::MediaEntry attributes in one convienant method.
|
96
|
+
#
|
97
|
+
# @param [String] entry_id The Kaltura entry ID.
|
98
|
+
# @param [Hash] attributes
|
99
|
+
# @option attributes [String] :attribute A Kaltura::MediaEntry attribute to set
|
100
|
+
##
|
101
|
+
def set(entry_id, attributes={})
|
102
|
+
KalturaBox::Client.update_session
|
103
|
+
|
104
|
+
attributes.each do |key,value|
|
105
|
+
attribute = key.to_s
|
106
|
+
set_attribute(attribute,entry_id,value) if valid_entry_attribute?(key)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
##
|
111
|
+
# @private
|
112
|
+
##
|
113
|
+
def category_exists?(category_name)
|
114
|
+
client = KalturaBox::Client.update_session
|
115
|
+
|
116
|
+
category_filter = Kaltura::KalturaCategoryFilter.new
|
117
|
+
category_filter.full_name_equal = category_name
|
118
|
+
category_check = client.category_service.list(category_filter).objects
|
119
|
+
if category_check.nil?
|
120
|
+
false
|
121
|
+
else
|
122
|
+
category_check
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
|
127
|
+
##
|
128
|
+
# Appends a specific Kaltura::MediaEntry attribute to the end of the original attribute given a Kaltura entry.
|
129
|
+
# This method is called by method_missing, allowing this module add attributes based
|
130
|
+
# off of the current API wrapper, rather than having to update along side the API wrapper.
|
131
|
+
#
|
132
|
+
# @param [String] attr_name The attribute to set.
|
133
|
+
# @param [String] entry_id The Kaltura entry ID.
|
134
|
+
# @param [String] value The value you wish to append the attribute with.
|
135
|
+
#
|
136
|
+
# @return [String] Returns the value as stored in the Kaltura database. Tag strings come back
|
137
|
+
# slightly funny.
|
138
|
+
#
|
139
|
+
# @raise [Kaltura::APIError] Passes Kaltura API errors directly through.
|
140
|
+
##
|
141
|
+
def add_attribute(attr_name,entry_id,value)
|
142
|
+
client = KalturaBox::Client.update_session
|
143
|
+
|
144
|
+
old_attributes = client.media_service.get(entry_id).send(attr_name.to_sym)
|
145
|
+
media_entry = Kaltura::KalturaMediaEntry.new
|
146
|
+
media_entry.send("#{attr_name}=","#{old_attributes},#{value}")
|
147
|
+
client.media_service.update(entry_id,media_entry).send(attr_name.to_sym)
|
148
|
+
end
|
149
|
+
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module KalturaBox
|
2
|
+
module Entry
|
3
|
+
module Metadata
|
4
|
+
|
5
|
+
##
|
6
|
+
# It is necessary to have the check for valid Kaltura MediaEntry methods available at both
|
7
|
+
# the class and instance level, so they are thrown into this module.
|
8
|
+
##
|
9
|
+
module ClassAndInstanceMethods
|
10
|
+
|
11
|
+
##
|
12
|
+
# Checks if a requested attribute is in fact a valid MediaEntry atrribute.
|
13
|
+
##
|
14
|
+
def valid_entry_attribute?(request_attribute)
|
15
|
+
object_methods, media_entry_methods = Object.instance_methods , Kaltura::KalturaMediaEntry.instance_methods
|
16
|
+
|
17
|
+
#clean out all the setter methods from the media entry methods
|
18
|
+
valid_media_entry_methods = media_entry_methods.map{|m| m unless m =~/^(.*)=/}.compact!
|
19
|
+
|
20
|
+
valid_media_entry_methods -= object_methods
|
21
|
+
valid_entry_attributes.include?(request_attribute.to_sym)
|
22
|
+
end
|
23
|
+
|
24
|
+
##
|
25
|
+
# @private
|
26
|
+
##
|
27
|
+
def valid_entry_attributes
|
28
|
+
object_methods, media_entry_methods = Object.instance_methods , Kaltura::KalturaMediaEntry.instance_methods
|
29
|
+
|
30
|
+
#clean out all the setter methods from the media entry methods
|
31
|
+
valid_media_entry_methods = media_entry_methods.map{|m| m.to_sym unless m =~/^(.*)=/}.compact!
|
32
|
+
|
33
|
+
valid_media_entry_methods -= object_methods
|
34
|
+
end
|
35
|
+
##
|
36
|
+
# Determines if an attribute is valid in the sense of the add method making sense. Only
|
37
|
+
# categories and tags are currently considered valid.
|
38
|
+
##
|
39
|
+
def valid_add_attribute?(request_attribute)
|
40
|
+
case request_attribute.to_s
|
41
|
+
when /^(.*)_(categories|tags)/
|
42
|
+
return true
|
43
|
+
when /^(categories|tags)/
|
44
|
+
return true
|
45
|
+
else
|
46
|
+
return false
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module KalturaBox
|
2
|
+
module Entry
|
3
|
+
module Metadata
|
4
|
+
module ClassMethods
|
5
|
+
|
6
|
+
# Contains the names of the generated attribute methods.
|
7
|
+
def generated_methods #:nodoc:
|
8
|
+
@generated_methods ||= Set.new
|
9
|
+
end
|
10
|
+
|
11
|
+
def generated_methods?
|
12
|
+
!generated_methods.empty?
|
13
|
+
end
|
14
|
+
|
15
|
+
##
|
16
|
+
# This method is called from with method_missing. It generates
|
17
|
+
# actual methods for all the valid Kaltura::Media Entry methods
|
18
|
+
# the first time a dynamic getter/setter/adder is called.
|
19
|
+
##
|
20
|
+
def define_attribute_methods
|
21
|
+
return if generated_methods?
|
22
|
+
valid_entry_attributes.each do |name|
|
23
|
+
define_set_method(name)
|
24
|
+
define_get_method(name)
|
25
|
+
define_add_method(name) if valid_add_attribute?(name)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
##
|
30
|
+
# Defines the set method for a specific Media Entry attribute
|
31
|
+
##
|
32
|
+
def define_set_method(attr_name)
|
33
|
+
evaluate_attribute_method( attr_name,
|
34
|
+
"def set_#{attr_name}(new_value);set_attribute('#{attr_name}',self.entry_id,new_value);end",
|
35
|
+
"set_#{attr_name}"
|
36
|
+
)
|
37
|
+
end
|
38
|
+
|
39
|
+
##
|
40
|
+
# defines a get methods
|
41
|
+
##
|
42
|
+
def define_get_method(attr_name)
|
43
|
+
evaluate_attribute_method( attr_name,
|
44
|
+
"def get_#{attr_name};get_entry(self.entry_id).send('#{attr_name}');end",
|
45
|
+
"get_#{attr_name}"
|
46
|
+
)
|
47
|
+
end
|
48
|
+
|
49
|
+
def define_add_method(attr_name)
|
50
|
+
evaluate_attribute_method( attr_name,
|
51
|
+
"def add_#{attr_name}(new_value);add_attribute('#{attr_name}',self.entry_id,new_value);end",
|
52
|
+
"add_#{attr_name}"
|
53
|
+
)
|
54
|
+
end
|
55
|
+
|
56
|
+
def evaluate_attribute_method(attr_name, method_definition, method_name=attr_name)
|
57
|
+
generated_methods << method_name
|
58
|
+
|
59
|
+
begin
|
60
|
+
class_eval(method_definition, __FILE__, __LINE__)
|
61
|
+
rescue SyntaxError => err
|
62
|
+
generated_methods.delete(attr_name)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/spec/api_spec.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "KalturaBox::APIWrapper" do
|
4
|
+
let(:api) { KalturaBox::APIWrapper.new }
|
5
|
+
|
6
|
+
before(:all) { KalturaBoxTest.setup! }
|
7
|
+
|
8
|
+
describe "config values" do
|
9
|
+
it { expect( api.client.config.login_email ).to eq(KalturaBox.config.login_email) }
|
10
|
+
it { expect( api.client.config.login_password ).to eq(KalturaBox.config.login_password) }
|
11
|
+
it { expect( api.client.config.partner_id ).to eq(KalturaBox.config.partner_id) }
|
12
|
+
it { expect( api.client.config.subpartner_id ).to eq(KalturaBox.config.subpartner_id) }
|
13
|
+
it { expect( api.client.config.administrator_secret ).to eq(KalturaBox.config.administrator_secret) }
|
14
|
+
it { expect( api.client.config.user_secret ).to eq(KalturaBox.config.user_secret) }
|
15
|
+
it { expect( api.client.config.thumb_width ).to eq(KalturaBox.config.thumb_width) }
|
16
|
+
it { expect( api.client.config.thumb_height ).to eq(KalturaBox.config.thumb_height) }
|
17
|
+
it { expect( api.client.config.player_conf_id ).to eq(KalturaBox.config.player_conf_id) }
|
18
|
+
it { expect( api.client.config.service_url ).to eq(KalturaBox.config.service_url) }
|
19
|
+
it { expect( api.client.config.logger ).to eq(KalturaBox.config.logger) }
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'active_record'
|
3
|
+
|
4
|
+
class Category < ActiveRecord::Base
|
5
|
+
include KalturaBox::Category
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "KalturaBox::Category" do
|
9
|
+
|
10
|
+
before(:all) { KalturaBoxTest.setup! }
|
11
|
+
|
12
|
+
describe "class methods" do
|
13
|
+
|
14
|
+
let(:categories) { Category.list }
|
15
|
+
|
16
|
+
before { KalturaBoxTest.setup_db! }
|
17
|
+
|
18
|
+
context "list" do
|
19
|
+
it { expect(categories.class).to eq Array }
|
20
|
+
end
|
21
|
+
|
22
|
+
context "update all categories" do
|
23
|
+
it { expect{Category.update_all_categories!}.to change{Category.count}.from(0).to(categories.count) }
|
24
|
+
end
|
25
|
+
|
26
|
+
context "add" do
|
27
|
+
it { expect{Category.add("new_cat", "New Category", true)}.to change{Category.count}.by(1) }
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "instance methods" do
|
33
|
+
|
34
|
+
before { KalturaBoxTest.setup_db! }
|
35
|
+
|
36
|
+
let!(:category) { Category.add("new_cat2", "New Category 2") }
|
37
|
+
|
38
|
+
context "update" do
|
39
|
+
xit "Looking for a way to remove the updated category on Kaltura" do
|
40
|
+
expect{category.edit(name: "new_cat3", description: "New Category 3")}.to change{category.name}.from("new_cat2").to("new_cat3")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "remove" do
|
45
|
+
let!(:category) { Category.add("new_cat4", "New Category 4") }
|
46
|
+
it { expect{category.remove}.to change{Category.count}.by(-1) }
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|