media_magick 0.2.0 → 0.3.0
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.
- data/.gitignore +2 -1
- data/CHANGELOG.md +53 -1
- data/Gemfile +0 -2
- data/Guardfile +5 -0
- data/LICENSE +1 -1
- data/README.md +32 -22
- data/Rakefile +1 -13
- data/app/assets/javascripts/media_magick/plupload_it.js +54 -45
- data/app/controllers/media_magick/attach_controller.rb +6 -6
- data/app/helpers/media_magick/application_helper.rb +58 -48
- data/app/views/_loader.html.erb +14 -0
- data/app/views/_uploader.html.erb +13 -0
- data/app/views/_video_uploader.html.erb +2 -0
- data/config/locales/en.yml +1 -0
- data/gemfiles/mongoid-3.0.gemfile +1 -2
- data/lib/media_magick.rb +1 -1
- data/lib/media_magick/controller/helpers.rb +25 -5
- data/lib/media_magick/engine.rb +1 -1
- data/lib/media_magick/image/dimensions.rb +23 -0
- data/lib/media_magick/model.rb +22 -5
- data/lib/media_magick/version.rb +2 -2
- data/media_magick.gemspec +10 -13
- data/spec/controllers/media_magick/attach_controller_spec.rb +35 -21
- data/spec/dummy/app/assets/javascripts/store/products.js +2 -0
- data/spec/dummy/app/assets/stylesheets/store/products.css +4 -0
- data/spec/dummy/app/controllers/store/products_controller.rb +83 -0
- data/spec/dummy/app/helpers/store/products_helper.rb +2 -0
- data/spec/dummy/app/models/post.rb +1 -0
- data/spec/dummy/app/models/store/product.rb +10 -0
- data/spec/dummy/app/models/user.rb +3 -2
- data/spec/dummy/app/uploaders/post_uploader.rb +11 -3
- data/spec/dummy/app/views/posts/_form.html.erb +16 -5
- data/spec/dummy/app/views/posts/index.html.erb +1 -1
- data/spec/dummy/app/views/store/products/_form.html.erb +34 -0
- data/spec/dummy/app/views/store/products/edit.html.erb +6 -0
- data/spec/dummy/app/views/store/products/index.html.erb +21 -0
- data/spec/dummy/app/views/store/products/new.html.erb +5 -0
- data/spec/dummy/app/views/store/products/show.html.erb +5 -0
- data/spec/dummy/config/boot.rb +1 -1
- data/spec/dummy/config/environments/development.rb +2 -1
- data/spec/dummy/config/routes.rb +5 -0
- data/spec/fixtures/example.jpg +0 -0
- data/spec/helpers/media_magick/application_helper_spec.rb +86 -33
- data/spec/lib/media_magick/controller/helper_spec.rb +40 -15
- data/spec/lib/media_magick/image/dimensions_spec.rb +62 -0
- data/spec/lib/media_magick/model_spec.rb +9 -3
- data/spec/views/_upload.html.erb_spec.rb +3 -3
- data/tmp/rspec_guard_result +1 -0
- metadata +52 -48
- data/app/views/_file.html.erb +0 -6
- data/app/views/_image.html.erb +0 -6
- data/app/views/_upload.html.erb +0 -12
- data/app/views/_video.html.erb +0 -8
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,56 @@
|
|
1
|
-
## Next Release (branch:
|
1
|
+
## Next Release (branch: v0.4)
|
2
|
+
|
3
|
+
* support rails 4
|
4
|
+
|
5
|
+
## 0.3.0 - July 1, 2013
|
6
|
+
|
7
|
+
### Helpers
|
8
|
+
|
9
|
+
* `attachment_container` and `attachment_container_for_video` are deprecated. please use `attachment_uploader` (for upload) and `attachment_loader` for rendering resources
|
10
|
+
|
11
|
+
* new option for custom partial render after upload `attachment_uploader(model, relation, type, {loader_partial: 'path/to/custom_loader'})`
|
12
|
+
|
13
|
+
### Libraries
|
14
|
+
|
15
|
+
* carrierwave ~> 0.8
|
16
|
+
|
17
|
+
* mongoid >= 3.0
|
18
|
+
|
19
|
+
* mini_magick ~> 3.5 (now is a gem dependency)
|
20
|
+
|
21
|
+
* updates jquery - 1.9.1
|
22
|
+
|
23
|
+
### Bugs found
|
24
|
+
|
25
|
+
* attaches_many :videos - 'videos' is a reserved word
|
26
|
+
|
27
|
+
* attachments for models inside a module [fixed]
|
28
|
+
|
29
|
+
|
30
|
+
## branch v0.3 untill 12.2012
|
31
|
+
|
32
|
+
Helpers:
|
33
|
+
|
34
|
+
* `attachment_container_for_video` doesn't render resources (images or videos)
|
35
|
+
|
36
|
+
* updates carrierwave (~> 0.7.0)
|
37
|
+
|
38
|
+
* store image dimensions in mongodb to avoid unnecessary file reads (when call method size - lazy behaviour)
|
39
|
+
|
40
|
+
### Resolved Issues
|
41
|
+
|
42
|
+
* #2 - video upload for attaches one relation
|
43
|
+
|
44
|
+
|
45
|
+
## 0.1.1 - October 11, 2012
|
46
|
+
|
47
|
+
## 0.2.0 - November 19, 2012
|
48
|
+
|
49
|
+
### Improvements
|
50
|
+
|
51
|
+
* Update carrierwave to 0.7.0.
|
52
|
+
|
53
|
+
## 0.1.1 - October 11, 2012
|
2
54
|
|
3
55
|
## 0.2.0 - November 19, 2012
|
4
56
|
|
data/Gemfile
CHANGED
data/Guardfile
ADDED
data/LICENSE
CHANGED
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
19
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
20
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
21
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# MediaMagick [](http://travis-ci.org/nudesign/media_magick) [](http://gemnasium.com/nudesign/media_magick) [](http://travis-ci.org/nudesign/media_magick) [](http://gemnasium.com/nudesign/media_magick) [](https://codeclimate.com/github/nudesign/media_magick)
|
2
2
|
|
3
3
|
MediaMagick aims to make dealing with multimedia resources a very easy task – like magic. It wraps up robust solutions for upload, associate and display images, videos, audios and files to any model in your rails app.
|
4
4
|
|
@@ -6,7 +6,7 @@ MediaMagick aims to make dealing with multimedia resources a very easy task –
|
|
6
6
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
|
-
gem 'media_magick'
|
9
|
+
gem 'media_magick', '~> 0.3.0'
|
10
10
|
|
11
11
|
And then execute:
|
12
12
|
|
@@ -14,6 +14,15 @@ And then execute:
|
|
14
14
|
|
15
15
|
## Getting Started
|
16
16
|
|
17
|
+
### Assets
|
18
|
+
|
19
|
+
Add these lines after `//= require jquery` in `app/assets/javascripts/application.js`:
|
20
|
+
|
21
|
+
```
|
22
|
+
//= require media_magick/plupload_it
|
23
|
+
//= require media_magick/toggleSortable
|
24
|
+
```
|
25
|
+
|
17
26
|
### Model
|
18
27
|
|
19
28
|
``` ruby
|
@@ -21,7 +30,7 @@ class Album
|
|
21
30
|
include Mongoid::Document
|
22
31
|
include MediaMagick::Model
|
23
32
|
|
24
|
-
|
33
|
+
attaches_many :photos, type: :image
|
25
34
|
end
|
26
35
|
```
|
27
36
|
|
@@ -36,7 +45,8 @@ end
|
|
36
45
|
### View
|
37
46
|
|
38
47
|
``` erb
|
39
|
-
<%=
|
48
|
+
<%= attachment_uploader(@album, :photos, :image) %>
|
49
|
+
<%= attachment_loader(@album, :photos) %>
|
40
50
|
```
|
41
51
|
|
42
52
|
### Javascript
|
@@ -47,6 +57,23 @@ $(document).ready(function () {
|
|
47
57
|
});
|
48
58
|
```
|
49
59
|
|
60
|
+
### Allow Videos (youtube/vimeo)
|
61
|
+
|
62
|
+
``` ruby
|
63
|
+
class Album
|
64
|
+
include Mongoid::Document
|
65
|
+
include MediaMagick::Model
|
66
|
+
|
67
|
+
attaches_many :photos, type: :image, allow_videos: true
|
68
|
+
end
|
69
|
+
```
|
70
|
+
|
71
|
+
``` erb
|
72
|
+
<%= attachment_uploader(@album, :photos, :video) %>
|
73
|
+
<%= attachment_uploader(@album, :photos, :image) %>
|
74
|
+
<%= attachment_loader(@album, :photos) %>
|
75
|
+
```
|
76
|
+
|
50
77
|
## Configuring
|
51
78
|
|
52
79
|
### Model
|
@@ -133,25 +160,8 @@ album.reload.photos.first.thumb.url
|
|
133
160
|
|
134
161
|
### Form View
|
135
162
|
|
136
|
-
|
137
|
-
<%= attachment_container @album, :files %>
|
138
|
-
|
139
|
-
<%= attachment_container @album, :files, newAttachments: { class: 'thumbnails' }, loadedAttachments: { class: 'span3' } %>
|
140
|
-
```
|
141
|
-
|
142
|
-
or use a custom layout:
|
163
|
+
coming soon
|
143
164
|
|
144
|
-
``` html
|
145
|
-
<%= attachment_container @album, :photos do %>
|
146
|
-
|
147
|
-
<a class="pickAttachments btn" href="javascript://">select files</a>
|
148
|
-
<a class="uploadAttachments btn" href="javascript://">upload files</a>
|
149
|
-
|
150
|
-
<ul class="loadedAttachments">
|
151
|
-
<%= render :partial => 'photos', :collection => @album.photos, :as => 'photo' %>
|
152
|
-
</ul>
|
153
|
-
<% end %>
|
154
|
-
```
|
155
165
|
|
156
166
|
## Contributing
|
157
167
|
|
data/Rakefile
CHANGED
@@ -1,18 +1,6 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
|
-
begin
|
3
|
-
require 'bundler/setup'
|
4
|
-
rescue LoadError
|
5
|
-
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
|
-
end
|
7
|
-
|
8
1
|
require 'bundler/gem_tasks'
|
9
2
|
require 'rspec/core/rake_task'
|
10
3
|
|
11
|
-
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
12
|
-
load 'rails/tasks/engine.rake'
|
13
|
-
|
14
|
-
Bundler::GemHelper.install_tasks
|
15
|
-
|
16
4
|
RSpec::Core::RakeTask.new(:spec)
|
17
5
|
|
18
|
-
task :
|
6
|
+
task default: 'spec'
|
@@ -18,14 +18,14 @@
|
|
18
18
|
(function($) {
|
19
19
|
|
20
20
|
$.fn.pluploadIt = function (options) {
|
21
|
-
|
21
|
+
|
22
22
|
var settings = $.extend({
|
23
23
|
browse_button: 'pickAttachments', // triggers modal to select files
|
24
24
|
container: 'attachmentUploader',
|
25
25
|
drop_element: 'dropAttachments',
|
26
26
|
flash_swf_url: '/assets/plupload.flash.swf',
|
27
27
|
max_file_size: '10mb',
|
28
|
-
queue_element: 'attachmentQueue',
|
28
|
+
queue_element: 'attachmentQueue',
|
29
29
|
resize: false,
|
30
30
|
runtimes: 'gears,html5,flash,browserplus,html4',
|
31
31
|
silverlight_xap_url: '/assets/plupload.silverlight.xap',
|
@@ -39,14 +39,15 @@
|
|
39
39
|
|
40
40
|
var $container = $(this);
|
41
41
|
settings.container = $container.attr('id');
|
42
|
-
|
42
|
+
var modelAndRelation = $container.data('model').replace('::','-') + "-" + $container.data('relation');
|
43
|
+
|
43
44
|
// setup unique ids from classes
|
44
45
|
$container.find('.' + settings.browse_button).attr('id', settings.container + '-' + settings.browse_button);
|
45
46
|
$container.find('.' + settings.drop_element).attr('id', settings.container + '-' + settings.drop_element);
|
46
47
|
$container.find('.' + settings.queue_element).attr('id', settings.container + '-' + settings.queue_element);
|
47
48
|
$container.find('.' + settings.target_list).attr('id', settings.container + '-' + settings.target_list);
|
48
49
|
$container.find('.' + settings.upload_button).attr('id', settings.container + '-' + settings.upload_button);
|
49
|
-
|
50
|
+
|
50
51
|
var uploader = new plupload.Uploader({
|
51
52
|
browse_button: settings.container + '-' + settings.browse_button,
|
52
53
|
container: settings.container,
|
@@ -58,6 +59,7 @@
|
|
58
59
|
relation: $container.data('relation'),
|
59
60
|
model: $container.data('model'),
|
60
61
|
partial: $container.data('partial') === undefined ? '' : $container.data('partial'),
|
62
|
+
loader_partial: $container.data('loader-partial') === undefined ? '' : $container.data('loader-partial'),
|
61
63
|
embedded_in_model: $container.data('embedded-in-model') === undefined ? '' : $container.data('embedded-in-model'),
|
62
64
|
embedded_in_id: $container.data('embedded-in-id') === undefined ? '' : $container.data('embedded-in-id')
|
63
65
|
},
|
@@ -70,45 +72,6 @@
|
|
70
72
|
|
71
73
|
uploader.bind('Init', function(up, params) {
|
72
74
|
if ($('#' + settings.container + '-runtimeInfo').length > 0) $('#' + settings.container + '-runtimeInfo').text("Current runtime: " + params.runtime);
|
73
|
-
// if ($container.find("dt").length > 0 && $container.find("dt").text() == "") $container.find("dt").text($container.attr('id'));
|
74
|
-
|
75
|
-
var modelAndRelation = $container.data('model') + "-" + $container.data('relation');
|
76
|
-
|
77
|
-
$("#" + $container.attr("id") + " a.remove").live('click', function() {
|
78
|
-
var $attachment = $(this).parents('.attachment');
|
79
|
-
var $attachmentUploader = $(this).parents('.attachmentUploader');
|
80
|
-
|
81
|
-
$.get('/remove', {
|
82
|
-
model: $container.data('model'),
|
83
|
-
id: $container.data('id'),
|
84
|
-
relation: $container.data('relation'),
|
85
|
-
relation_id: $attachment.data('id'),
|
86
|
-
embedded_in_model: $attachmentUploader.data('embedded-in-model'),
|
87
|
-
embedded_in_id: $attachmentUploader.data('embedded-in-id')
|
88
|
-
}, function(data) {
|
89
|
-
$attachment.remove();
|
90
|
-
});
|
91
|
-
});
|
92
|
-
|
93
|
-
$("#attachmentVideoUploader" + modelAndRelation).live('click', function() {
|
94
|
-
var $attachment = $(this).parents('.attachment');
|
95
|
-
var $attachmentUploader = $(this).parents('.attachmentUploader');
|
96
|
-
var $videoField = $("#attachmentVideoUploaderField" + modelAndRelation);
|
97
|
-
|
98
|
-
$.get('/upload', {
|
99
|
-
model: $container.data('model'),
|
100
|
-
id: $container.data('id'),
|
101
|
-
relation: $container.data('relation'),
|
102
|
-
relation_id: $attachment.data('id'),
|
103
|
-
embedded_in_model: $attachmentUploader.data('embedded-in-model'),
|
104
|
-
embedded_in_id: $attachmentUploader.data('embedded-in-id'),
|
105
|
-
partial: $container.data('partial') === undefined ? '' : $container.data('partial'),
|
106
|
-
video: $videoField.val()
|
107
|
-
}, function(data) {
|
108
|
-
$("#" + $container.attr("id") + "-loadedAttachments").append(data);
|
109
|
-
$videoField.val("");
|
110
|
-
});
|
111
|
-
});
|
112
75
|
});
|
113
76
|
|
114
77
|
$('#' + settings.container + '-' + settings.upload_button).click(function(e) {
|
@@ -152,11 +115,57 @@
|
|
152
115
|
uploader.bind('FileUploaded', function(up, file, response) {
|
153
116
|
$('#' + file.id).addClass('completed');
|
154
117
|
$('#' + file.id + " span.status").html("100%");
|
155
|
-
$("#" +
|
118
|
+
$("#" + modelAndRelation + '-' + target_list).append(response.response);
|
156
119
|
});
|
157
120
|
})(settings.container, settings.queue_element, settings.target_list);
|
158
121
|
|
159
122
|
});
|
160
123
|
|
161
124
|
};
|
162
|
-
})(jQuery);
|
125
|
+
})(jQuery);
|
126
|
+
|
127
|
+
$(function() {
|
128
|
+
// video upload (youtube/vimeo)
|
129
|
+
$('.attachmentVideoUploader').on('click', 'a.attachmentVideoUploaderButton', function(){
|
130
|
+
var $container = $(this).parent(".attachmentVideoUploader");
|
131
|
+
var $attachment = $(this).parents('.attachment');
|
132
|
+
var $videoField = $container.find(".attachmentVideoUploaderField");
|
133
|
+
var modelAndRelation = $container.data('model').replace('::','-') + "-" + $container.data('relation');
|
134
|
+
|
135
|
+
$.get('/upload', {
|
136
|
+
model: $container.data('model'),
|
137
|
+
id: $container.data('id'),
|
138
|
+
relation: $container.data('relation'),
|
139
|
+
relation_id: $attachment.data('id'),
|
140
|
+
embedded_in_model: $container.data('embedded-in-model'),
|
141
|
+
embedded_in_id: $container.data('embedded-in-id'),
|
142
|
+
partial: $container.data('partial') === undefined ? '' : $container.data('partial'),
|
143
|
+
video: $videoField.val()
|
144
|
+
}, function(data) {
|
145
|
+
$('#' + modelAndRelation + '-loadedAttachments').append(data);
|
146
|
+
$videoField.val("");
|
147
|
+
});
|
148
|
+
});
|
149
|
+
|
150
|
+
// attachment removal
|
151
|
+
$('.loadedAttachments').on('click', 'a.remove', function() {
|
152
|
+
var confirmation_message = $(this).data("confirmation");
|
153
|
+
var answer = confirm(confirmation_message);
|
154
|
+
|
155
|
+
if(answer) {
|
156
|
+
var $container = $(this).parents('.loadedAttachments');
|
157
|
+
var $attachment = $(this).parents('.attachment');
|
158
|
+
|
159
|
+
$.get('/remove', {
|
160
|
+
model: $container.data('model'),
|
161
|
+
id: $container.data('id'),
|
162
|
+
relation: $container.data('relation'),
|
163
|
+
relation_id: $attachment.data('id'),
|
164
|
+
embedded_in_model: $container.data('embedded-in-model'),
|
165
|
+
embedded_in_id: $container.data('embedded-in-id')
|
166
|
+
}, function(data) {
|
167
|
+
$attachment.remove();
|
168
|
+
});
|
169
|
+
}
|
170
|
+
});
|
171
|
+
});
|
@@ -8,20 +8,20 @@ module MediaMagick
|
|
8
8
|
def create
|
9
9
|
if !params[:embedded_in_model].blank?
|
10
10
|
embedded_in = params[:embedded_in_model].constantize.find(params[:embedded_in_id])
|
11
|
-
|
11
|
+
obj = embedded_in.send(params[:model].pluralize.downcase).find(params[:id])
|
12
12
|
else
|
13
|
-
|
13
|
+
obj = params[:model].constantize.find(params[:id])
|
14
14
|
end
|
15
15
|
|
16
16
|
if params[:video]
|
17
|
-
attachment =
|
17
|
+
attachment = create_video(obj, params)
|
18
18
|
else
|
19
|
-
attachment =
|
19
|
+
attachment = obj.send(params[:relation]).create(params[:relation].singularize => params[:file])
|
20
20
|
end
|
21
21
|
|
22
|
-
|
22
|
+
obj.save
|
23
23
|
|
24
|
-
partial = params[:
|
24
|
+
partial = params[:loader_partial].blank? ? "/loader" : params[:loader_partial]
|
25
25
|
|
26
26
|
render :partial => partial, :locals => {:model => params[:model], :relation => params[:relation], :attachment => attachment}
|
27
27
|
end
|
@@ -1,71 +1,81 @@
|
|
1
1
|
module MediaMagick
|
2
2
|
module ApplicationHelper
|
3
|
-
def
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
}
|
3
|
+
def attachment_uploader(model, relation, type, options={})
|
4
|
+
id = "#{model_name_for_id(model)}-#{relation.to_s}-#{type.to_s}"
|
5
|
+
classes = "attachmentUploader"
|
6
|
+
partial = get_partial("/uploader", options)
|
7
|
+
data = data_attributes(model, relation, partial, options)
|
9
8
|
|
10
|
-
|
11
|
-
|
9
|
+
if type == :video
|
10
|
+
partial = "/video_uploader"
|
11
|
+
classes = "attachmentVideoUploader"
|
12
|
+
end
|
12
13
|
|
13
|
-
content_tag :div, id:
|
14
|
+
content_tag :div, id: id, class: classes, data: data do
|
14
15
|
if block_given?
|
15
16
|
yield
|
16
17
|
else
|
17
|
-
|
18
|
-
model: model,
|
19
|
-
relations: relation,
|
20
|
-
newAttachments: options[:newAttachments] || {},
|
21
|
-
loadedAttachments: options[:loadedAttachments] || {},
|
22
|
-
partial: get_partial_name(options)
|
23
|
-
}
|
24
|
-
|
25
|
-
render '/upload', partial_attributes
|
18
|
+
render partial
|
26
19
|
end
|
27
20
|
end
|
28
21
|
end
|
29
22
|
|
30
|
-
def
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
}
|
23
|
+
def attachment_loader(model, relation, options={})
|
24
|
+
id = "#{model_name_for_id(model)}-#{relation.to_s}-loadedAttachments"
|
25
|
+
classes = "#{relation.to_s} loadedAttachments"
|
26
|
+
partial = get_partial("/loader", options)
|
27
|
+
data = data_attributes(model, relation, partial, options)
|
36
28
|
|
37
|
-
|
38
|
-
data_attributes.merge!(:embedded_in_id => options[:embedded_in].id.to_s, :embedded_in_model => options[:embedded_in].class.to_s) if options[:embedded_in]
|
39
|
-
|
40
|
-
content_tag :div, id: model.class.to_s.downcase << '-' << relation.to_s, class: 'attachmentUploader ' << relation.to_s, data: data_attributes do
|
29
|
+
content_tag :div, id: id, class: classes, data: data do
|
41
30
|
if block_given?
|
42
31
|
yield
|
43
32
|
else
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
loadedAttachments: options[:loadedAttachments] || {},
|
49
|
-
partial: get_partial_name(options)
|
50
|
-
}
|
51
|
-
|
52
|
-
render '/video', partial_attributes
|
33
|
+
render partial: partial,
|
34
|
+
collection: model.send(relation),
|
35
|
+
as: :attachment,
|
36
|
+
locals: { model: nil, relation: nil }
|
53
37
|
end
|
54
38
|
end
|
55
39
|
end
|
56
40
|
|
41
|
+
def attachment_container(model, relation, options = {})
|
42
|
+
warn "%" * 50
|
43
|
+
warn "[DEPRECATION] `attachment_container` is deprecated. please use `attachment_uploader`"
|
44
|
+
warn "%" * 50
|
45
|
+
end
|
46
|
+
|
47
|
+
def attachment_container_for_video
|
48
|
+
warn "%" * 50
|
49
|
+
warn "[DEPRECATION] `attachment_container_for_video` is deprecated. please use `attachment_uploader`"
|
50
|
+
warn "%" * 50
|
51
|
+
end
|
52
|
+
|
57
53
|
private
|
54
|
+
def data_attributes(model, relation, partial, options)
|
55
|
+
data_attributes = {
|
56
|
+
model: model_name(model),
|
57
|
+
id: model.id.to_s,
|
58
|
+
relation: relation.to_s
|
59
|
+
}
|
58
60
|
|
59
|
-
|
60
|
-
|
61
|
-
options[:
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
61
|
+
data_attributes.merge!(partial: partial)
|
62
|
+
data_attributes.merge!(loader_partial: options[:loader_partial]) if options[:loader_partial]
|
63
|
+
data_attributes.merge!(embedded_in_id: options[:embedded_in].id.to_s, embedded_in_model: options[:embedded_in].class.to_s) if options[:embedded_in]
|
64
|
+
|
65
|
+
data_attributes
|
66
|
+
end
|
67
|
+
|
68
|
+
def get_partial(default, options)
|
69
|
+
return options[:partial] if options[:partial]
|
70
|
+
default
|
71
|
+
end
|
72
|
+
|
73
|
+
def model_name(model)
|
74
|
+
@model_name ||= model.class.to_s
|
75
|
+
end
|
76
|
+
|
77
|
+
def model_name_for_id(model)
|
78
|
+
model_name(model).gsub(/::/, '-')
|
68
79
|
end
|
69
|
-
end
|
70
80
|
end
|
71
|
-
end
|
81
|
+
end
|