naranya_ecm-sdk 0.0.32 → 0.0.33

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.
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