naranya_ecm-sdk 0.0.32 → 0.0.33

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ecdd00cf3b051b7b563106139d914e45b3884a8f
4
- data.tar.gz: c10c6065ab59d7411b6b0d4cbe233d63db785f44
3
+ metadata.gz: a32d7a9278cee949df2df10694c14f3c4ab01803
4
+ data.tar.gz: 3edf4dbc6fb7ceda70f595a0e22f8e3c5b3951de
5
5
  SHA512:
6
- metadata.gz: bb660909b34cfa56d0a8499fee2f1cb8b2cf572c51abb1a4306330a443944aba4d4efd1d7c10a0cd35157ea2689d747c1c01e91a6ae6eb73a94eaa86bf24dad6
7
- data.tar.gz: 90070d8d6450ba7e69cd156e11b9f28f6039287aa3ef868db3a0c6bd96fc4f81d7afa84c2dca42978425a2259a8e9ca6edb5e0a183b41d033ff5bbd36ecc62dc
6
+ metadata.gz: 937df46c5e7c289421bed86c0a790588dce165416b194b9a97bae76e7a3809fde99672d6be65e63a0e56053daee327cc0d7837b5984642ade625f99bf5068e01
7
+ data.tar.gz: 8e96bacadbb8156cc75f0fa1ff04d408461d5ec39eb49e4b2acf300174ae65c731af555318fed695a9edf22f8de243ec8594e1f21c2515e2399de07c0882d8a8
@@ -0,0 +1,32 @@
1
+ # Media Processing
2
+
3
+ ```bash
4
+
5
+ # Incluir para este ejemplo al namespace raíz
6
+ include NaranyaEcm
7
+
8
+ mp = MediaProfile.create(
9
+ name: "icon_small",
10
+ title: "Small Icon",
11
+ template: {
12
+ resize: {
13
+ use: "import",
14
+ robot: "/image/resize",
15
+ width: "560",
16
+ height: "380"
17
+ }
18
+ }
19
+ )
20
+
21
+ ```
22
+
23
+ ```bash
24
+
25
+ # Incluir para este ejemplo al namespace raíz
26
+ include NaranyaEcm
27
+
28
+ mr = MediaResource.find "53384cb034356100092c0000"
29
+
30
+
31
+
32
+ ```
@@ -38,6 +38,8 @@ module NaranyaEcm
38
38
  autoload :Content
39
39
  autoload :ContentVersion
40
40
  autoload :DownloadAuthorization
41
+ autoload :MediaProfile
42
+ autoload :MediaProcess
41
43
  autoload :MediaResource
42
44
  end
43
45
 
@@ -1,3 +1,3 @@
1
1
  module NaranyaEcm
2
- VERSION = "0.0.32"
2
+ VERSION = "0.0.33"
3
3
  end
@@ -21,5 +21,38 @@ module NaranyaEcm::Behaviors
21
21
  mr = self.select_media_by_role(role_name).map(&:downloadable_url)
22
22
  mr.flatten.uniq
23
23
  end
24
+
25
+ def detect_media_by_roles(*given_roles)
26
+ raise ArgumentError, "Given role list is blank" if given_roles.blank?
27
+ current_roles = given_roles.dup
28
+ detected_media = nil
29
+ until detected_media.present? || current_roles.count < 1 do
30
+ detected_media = self.media_resources.detect { |mr| (mr.roles & current_roles).count == current_roles.count }
31
+ current_roles.pop
32
+ end
33
+ detected_media
34
+ end
35
+
36
+ def detect_media_url_by_roles(*given_roles)
37
+ detected_media = detect_media_by_roles(*given_roles)
38
+ detected_media.present? ? detected_media.downloadable_url : nil
39
+ end
40
+
41
+ def select_media_by_roles(*given_roles)
42
+ raise ArgumentError, "Given role list is blank" if given_roles.blank?
43
+ current_roles = given_roles.dup
44
+ selected_media = nil
45
+ until selected_media.present? || current_roles.count < 1 do
46
+ selected_media = self.media_resources.select { |mr| (mr.roles & current_roles).count == current_roles.count }
47
+ current_roles.pop
48
+ end
49
+ selected_media
50
+ end
51
+
52
+ def select_media_urls_by_roles(*given_roles)
53
+ selected_media = select_media_by_roles(*given_roles)
54
+ selected_media.present? ? selected_media.map(&:downloadable_url) : nil
55
+ end
56
+
24
57
  end
25
58
  end
@@ -0,0 +1,29 @@
1
+ module NaranyaEcm
2
+
3
+ class MediaProcess
4
+
5
+ include NaranyaEcm.document_module
6
+ include NaranyaEcm::Behaviors::Timestampable
7
+
8
+ # Template id
9
+ field :template_id, type: String
10
+ validates :template_id, presence: true
11
+
12
+ # Source Media Resource:
13
+ belongs_to :media_resource
14
+
15
+ field :notify_url, type: String
16
+
17
+ field :append_media_roles, type: Array, default: -> { [] }
18
+
19
+ def template_hash
20
+ ActiveSupport::JSON.decode template
21
+ end
22
+
23
+ def template_hash=(hash = {})
24
+ self.template = ActiveSupport::JSON.encode hash
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,30 @@
1
+ module NaranyaEcm
2
+ class MediaProfile
3
+
4
+ include NaranyaEcm.document_module
5
+ include NaranyaEcm::Behaviors::Timestampable
6
+
7
+ # Profile name
8
+ field :name, type: String
9
+ validates :name, presence: true
10
+
11
+ # Title, Human readable name
12
+ field :title, type: String
13
+
14
+ # Preset id to use
15
+ field :preset_id, type: String
16
+
17
+ # Template content
18
+ field :template, type: String
19
+
20
+ def template_hash
21
+ ActiveSupport::JSON.decode template
22
+ end
23
+
24
+ def template_hash=(hash = {})
25
+ self.template = ActiveSupport::JSON.encode hash
26
+ end
27
+
28
+ end
29
+
30
+ end
@@ -68,6 +68,16 @@ module NaranyaEcm
68
68
  def self.root_directory
69
69
  NaranyaEcm.root_directory
70
70
  end
71
+
72
+ # Generates a MediaProcess with self as the source MediaResource.
73
+ def process_with_profile(given_profile, given_options = {})
74
+ raise ArgumentError, 'Given profile is not a MediaProfile' unless given_profile.is_a? NaranyaEcm::MediaProfile
75
+
76
+ # TODO: Eliminar template_id...
77
+ options = given_options.merge media_resource: self, template_id: given_profile.template_id
78
+
79
+ NaranyaEcm::MediaProcess.create options
80
+ end
71
81
 
72
82
  end
73
83
  end
@@ -202,6 +202,8 @@ module NaranyaEcm::Rest
202
202
  Relation.new self, given_conditions.with_indifferent_access
203
203
  end
204
204
 
205
+ delegate :first, :last, to: :all
206
+
205
207
  def all
206
208
  where()
207
209
  end
@@ -10,8 +10,8 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ["Roberto Quintanilla"]
11
11
  spec.email = ["roberto.quintanilla@naranya.com"]
12
12
  spec.summary = %q{Cliente Ruby de NaranyaEcm}
13
- spec.description = %q{Cliente Ruby de NaranyaEcm}
14
- spec.homepage = ""
13
+ spec.description = %q{Cliente Ruby de NaranyaEcm para aplicaciones cliente.}
14
+ spec.homepage = "http://naranya.com"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0")
@@ -19,15 +19,15 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency "activesupport", "~> 4.0.5"
23
- spec.add_dependency "activemodel", "~> 4.0.5"
24
- spec.add_dependency "httparty"
25
- spec.add_dependency "aasm"
26
- spec.add_dependency "fog", "~> 1.22.1"
22
+ spec.add_dependency "activesupport", "~> 4.0", ">= 4.0.5"
23
+ spec.add_dependency "activemodel", "~> 4.0", ">= 4.0.5"
24
+ spec.add_dependency "httparty", "~> 0.13", ">= 0.13.1"
25
+ spec.add_dependency "aasm", "~> 3.2", ">= 3.2.1"
26
+ spec.add_dependency "fog", "~> 1.22", ">= 1.22.1"
27
27
 
28
- spec.add_development_dependency "bundler"
29
- spec.add_development_dependency "rake"
30
- spec.add_development_dependency "rspec", "~> 3.0.0"
31
- spec.add_development_dependency "vcr"
32
- spec.add_development_dependency "webmock"
28
+ spec.add_development_dependency "bundler", "~> 1.6"
29
+ spec.add_development_dependency "rake", "~> 10.3"
30
+ spec.add_development_dependency "rspec", "~> 3.0"
31
+ spec.add_development_dependency "vcr", "~> 2.9"
32
+ spec.add_development_dependency "webmock", "~> 1.18"
33
33
  end
metadata CHANGED
@@ -1,163 +1,193 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: naranya_ecm-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.32
4
+ version: 0.0.33
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Quintanilla
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-18 00:00:00.000000000 Z
11
+ date: 2014-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ - - ">="
18
21
  - !ruby/object:Gem::Version
19
22
  version: 4.0.5
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - ~>
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '4.0'
30
+ - - ">="
25
31
  - !ruby/object:Gem::Version
26
32
  version: 4.0.5
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: activemodel
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - ~>
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '4.0'
40
+ - - ">="
32
41
  - !ruby/object:Gem::Version
33
42
  version: 4.0.5
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
- - - ~>
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '4.0'
50
+ - - ">="
39
51
  - !ruby/object:Gem::Version
40
52
  version: 4.0.5
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: httparty
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
- - - '>='
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.13'
60
+ - - ">="
46
61
  - !ruby/object:Gem::Version
47
- version: '0'
62
+ version: 0.13.1
48
63
  type: :runtime
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
52
- - - '>='
67
+ - - "~>"
53
68
  - !ruby/object:Gem::Version
54
- version: '0'
69
+ version: '0.13'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 0.13.1
55
73
  - !ruby/object:Gem::Dependency
56
74
  name: aasm
57
75
  requirement: !ruby/object:Gem::Requirement
58
76
  requirements:
59
- - - '>='
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '3.2'
80
+ - - ">="
60
81
  - !ruby/object:Gem::Version
61
- version: '0'
82
+ version: 3.2.1
62
83
  type: :runtime
63
84
  prerelease: false
64
85
  version_requirements: !ruby/object:Gem::Requirement
65
86
  requirements:
66
- - - '>='
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.2'
90
+ - - ">="
67
91
  - !ruby/object:Gem::Version
68
- version: '0'
92
+ version: 3.2.1
69
93
  - !ruby/object:Gem::Dependency
70
94
  name: fog
71
95
  requirement: !ruby/object:Gem::Requirement
72
96
  requirements:
73
- - - ~>
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '1.22'
100
+ - - ">="
74
101
  - !ruby/object:Gem::Version
75
102
  version: 1.22.1
76
103
  type: :runtime
77
104
  prerelease: false
78
105
  version_requirements: !ruby/object:Gem::Requirement
79
106
  requirements:
80
- - - ~>
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.22'
110
+ - - ">="
81
111
  - !ruby/object:Gem::Version
82
112
  version: 1.22.1
83
113
  - !ruby/object:Gem::Dependency
84
114
  name: bundler
85
115
  requirement: !ruby/object:Gem::Requirement
86
116
  requirements:
87
- - - '>='
117
+ - - "~>"
88
118
  - !ruby/object:Gem::Version
89
- version: '0'
119
+ version: '1.6'
90
120
  type: :development
91
121
  prerelease: false
92
122
  version_requirements: !ruby/object:Gem::Requirement
93
123
  requirements:
94
- - - '>='
124
+ - - "~>"
95
125
  - !ruby/object:Gem::Version
96
- version: '0'
126
+ version: '1.6'
97
127
  - !ruby/object:Gem::Dependency
98
128
  name: rake
99
129
  requirement: !ruby/object:Gem::Requirement
100
130
  requirements:
101
- - - '>='
131
+ - - "~>"
102
132
  - !ruby/object:Gem::Version
103
- version: '0'
133
+ version: '10.3'
104
134
  type: :development
105
135
  prerelease: false
106
136
  version_requirements: !ruby/object:Gem::Requirement
107
137
  requirements:
108
- - - '>='
138
+ - - "~>"
109
139
  - !ruby/object:Gem::Version
110
- version: '0'
140
+ version: '10.3'
111
141
  - !ruby/object:Gem::Dependency
112
142
  name: rspec
113
143
  requirement: !ruby/object:Gem::Requirement
114
144
  requirements:
115
- - - ~>
145
+ - - "~>"
116
146
  - !ruby/object:Gem::Version
117
- version: 3.0.0
147
+ version: '3.0'
118
148
  type: :development
119
149
  prerelease: false
120
150
  version_requirements: !ruby/object:Gem::Requirement
121
151
  requirements:
122
- - - ~>
152
+ - - "~>"
123
153
  - !ruby/object:Gem::Version
124
- version: 3.0.0
154
+ version: '3.0'
125
155
  - !ruby/object:Gem::Dependency
126
156
  name: vcr
127
157
  requirement: !ruby/object:Gem::Requirement
128
158
  requirements:
129
- - - '>='
159
+ - - "~>"
130
160
  - !ruby/object:Gem::Version
131
- version: '0'
161
+ version: '2.9'
132
162
  type: :development
133
163
  prerelease: false
134
164
  version_requirements: !ruby/object:Gem::Requirement
135
165
  requirements:
136
- - - '>='
166
+ - - "~>"
137
167
  - !ruby/object:Gem::Version
138
- version: '0'
168
+ version: '2.9'
139
169
  - !ruby/object:Gem::Dependency
140
170
  name: webmock
141
171
  requirement: !ruby/object:Gem::Requirement
142
172
  requirements:
143
- - - '>='
173
+ - - "~>"
144
174
  - !ruby/object:Gem::Version
145
- version: '0'
175
+ version: '1.18'
146
176
  type: :development
147
177
  prerelease: false
148
178
  version_requirements: !ruby/object:Gem::Requirement
149
179
  requirements:
150
- - - '>='
180
+ - - "~>"
151
181
  - !ruby/object:Gem::Version
152
- version: '0'
153
- description: Cliente Ruby de NaranyaEcm
182
+ version: '1.18'
183
+ description: Cliente Ruby de NaranyaEcm para aplicaciones cliente.
154
184
  email:
155
185
  - roberto.quintanilla@naranya.com
156
186
  executables: []
157
187
  extensions: []
158
188
  extra_rdoc_files: []
159
189
  files:
160
- - .gitignore
190
+ - ".gitignore"
161
191
  - Gemfile
162
192
  - LICENSE.txt
163
193
  - README.rdoc
@@ -166,6 +196,7 @@ files:
166
196
  - dev/init.rb
167
197
  - dev/load_cvm.rb
168
198
  - dev/search.rb
199
+ - doc/media_processing.md
169
200
  - lib/aasm/persistence/rest_persistence.rb
170
201
  - lib/naranya_ecm-sdk.rb
171
202
  - lib/naranya_ecm-sdk/version.rb
@@ -176,6 +207,8 @@ files:
176
207
  - lib/naranya_ecm/models/content.rb
177
208
  - lib/naranya_ecm/models/content_version.rb
178
209
  - lib/naranya_ecm/models/download_authorization.rb
210
+ - lib/naranya_ecm/models/media_process.rb
211
+ - lib/naranya_ecm/models/media_profile.rb
179
212
  - lib/naranya_ecm/models/media_resource.rb
180
213
  - lib/naranya_ecm/rest/association_relation.rb
181
214
  - lib/naranya_ecm/rest/associations.rb
@@ -198,7 +231,7 @@ files:
198
231
  - spec/models/module_spec.rb
199
232
  - spec/spec_helper.rb
200
233
  - spec/support/naranya_ecms_shared_specs.rb
201
- homepage: ''
234
+ homepage: http://naranya.com
202
235
  licenses:
203
236
  - MIT
204
237
  metadata: {}
@@ -208,17 +241,17 @@ require_paths:
208
241
  - lib
209
242
  required_ruby_version: !ruby/object:Gem::Requirement
210
243
  requirements:
211
- - - '>='
244
+ - - ">="
212
245
  - !ruby/object:Gem::Version
213
246
  version: '0'
214
247
  required_rubygems_version: !ruby/object:Gem::Requirement
215
248
  requirements:
216
- - - '>='
249
+ - - ">="
217
250
  - !ruby/object:Gem::Version
218
251
  version: '0'
219
252
  requirements: []
220
253
  rubyforge_project:
221
- rubygems_version: 2.0.14
254
+ rubygems_version: 2.2.2
222
255
  signing_key:
223
256
  specification_version: 4
224
257
  summary: Cliente Ruby de NaranyaEcm