acts_as_kaltura 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -73,6 +73,13 @@ end
73
73
 
74
74
  > * cuepoint_key (String)
75
75
 
76
+ ## acts_as_kaltura_category
77
+
78
+ Sync local categories with Kaltura. You have to set existing kaltura category id to any of your parent categories. When you create sub category (you must have `parent` method exposed) it will automatically pushed to kaltura. Same goes for updating and deleting kaltura category. (if you destroy child category it will automatically remove kaltura category)
79
+
80
+ ### Required fields
81
+ > * kaltura_category_key (String)
82
+
76
83
  ## How to install
77
84
  > gem install acts_as_kaltura
78
85
 
@@ -7,6 +7,7 @@ require 'acts_as_kaltura/delegator'
7
7
  require 'acts_as_kaltura/extension'
8
8
  require 'acts_as_kaltura/video'
9
9
  require 'acts_as_kaltura/annotation'
10
+ require 'acts_as_kaltura/category'
10
11
 
11
12
  module ActsAsKaltura
12
13
  end
@@ -18,6 +19,7 @@ module ActiveRecord
18
19
  include ActsAsKaltura::Delegator
19
20
  include ActsAsKaltura::Video
20
21
  include ActsAsKaltura::Annotation
22
+ include ActsAsKaltura::Category
21
23
  end
22
24
  end
23
25
 
@@ -0,0 +1,65 @@
1
+ require 'active_support/concern'
2
+
3
+ module ActsAsKaltura
4
+ module Category
5
+ extend ActiveSupport::Concern
6
+
7
+ module ClassMethods
8
+ def acts_as_kaltura_category
9
+ before_create :create_kaltura_category
10
+ before_update :update_kaltura_category
11
+ before_destroy :destroy_kaltura_category
12
+ end
13
+ end
14
+
15
+ def kaltura_category
16
+ if @kaltura_category.nil? && self.kaltura_category_key.present?
17
+ @kaltura_category = self.class.kaltura_client.
18
+ category_service.get(self.kaltura_category_key)
19
+ end
20
+
21
+ @kaltura_category
22
+ end
23
+
24
+ def kaltura_siblings
25
+ filter = Kaltura::Filter::CategoryFilter.new
26
+
27
+ if self.parent && self.parent.kaltura_category_key
28
+ filter.parent_id_equal = self.parent.kaltura_category_key
29
+ else
30
+ filter.parent_id_equal = 0
31
+ end
32
+
33
+ self.class.kaltura_client.category_service.list(filter)
34
+ end
35
+
36
+ protected
37
+ def kaltura_reference_found?
38
+ self.parent && self.parent.kaltura_category_key.present?
39
+ end
40
+
41
+ private
42
+ def create_kaltura_category
43
+ if kaltura_reference_found?
44
+ @kaltura_category = self.class.kaltura_client.
45
+ category_service.add self.as_kaltura_category
46
+ self.kaltura_category_key = @kaltura_category.id
47
+ end
48
+ end
49
+
50
+ def update_kaltura_category
51
+ if self.kaltura_category_key.present?
52
+ @kaltura_category = self.class.kaltura_client.category_service.
53
+ update(self.kaltura_category_key, self.as_kaltura_category)
54
+ end
55
+ end
56
+
57
+ def destroy_kaltura_category
58
+ if self.kaltura_category_key.present?
59
+ self.class.kaltura_client.category_service.
60
+ delete(self.kaltura_category_key)
61
+ @kaltura_category = nil
62
+ end
63
+ end
64
+ end
65
+ end
@@ -1,8 +1,8 @@
1
1
  module ActsAsKaltura
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
- MINOR = 0
5
- TINY = 4
4
+ MINOR = 1
5
+ TINY = 0
6
6
  PRE = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_kaltura
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-06 00:00:00.000000000 Z
12
+ date: 2012-02-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jeweler
16
- requirement: &2152318060 !ruby/object:Gem::Requirement
16
+ requirement: &2156626080 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2152318060
24
+ version_requirements: *2156626080
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: velir_kaltura-ruby
27
- requirement: &2152315520 !ruby/object:Gem::Requirement
27
+ requirement: &2156660520 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2152315520
35
+ version_requirements: *2156660520
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activesupport
38
- requirement: &2152312960 !ruby/object:Gem::Requirement
38
+ requirement: &2156656360 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 3.1.3
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2152312960
46
+ version_requirements: *2156656360
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activerecord
49
- requirement: &2152310640 !ruby/object:Gem::Requirement
49
+ requirement: &2156655280 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 3.1.3
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2152310640
57
+ version_requirements: *2156655280
58
58
  description: Acts as kaltura
59
59
  email: hasan@somewherein.net
60
60
  executables: []
@@ -65,6 +65,7 @@ files:
65
65
  - lib/acts_as_kaltura.rb
66
66
  - lib/acts_as_kaltura/annotation.rb
67
67
  - lib/acts_as_kaltura/callbacks.rb
68
+ - lib/acts_as_kaltura/category.rb
68
69
  - lib/acts_as_kaltura/config.rb
69
70
  - lib/acts_as_kaltura/delegator.rb
70
71
  - lib/acts_as_kaltura/extension.rb