attachinary 1.0.1 → 1.1.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/README.md +2 -2
- data/{vendor → lib}/assets/javascripts/attachinary.js.coffee +5 -3
- data/lib/attachinary/engine.rb +7 -0
- data/lib/attachinary/form_builder.rb +7 -0
- data/lib/attachinary/orm/mongoid/extension.rb +8 -2
- data/lib/attachinary/simple_form.rb +1 -5
- data/lib/attachinary/version.rb +1 -1
- data/lib/attachinary/view_helpers.rb +11 -2
- metadata +28 -38
data/README.md
CHANGED
@@ -63,8 +63,8 @@ Lets say that we want all of our **users** to have single **avatar** and many **
|
|
63
63
|
|
64
64
|
In our `_form.html.erb` template, we need to add only this:
|
65
65
|
|
66
|
-
<%=
|
67
|
-
<%=
|
66
|
+
<%= f.attachinary_file_field :avatar %>
|
67
|
+
<%= f.attachinary_file_field :photos %>
|
68
68
|
|
69
69
|
If you're using [SimpleForm](https://github.com/plataformatec/simple_form), you can even shorten this to:
|
70
70
|
|
@@ -4,9 +4,6 @@
|
|
4
4
|
index: 0
|
5
5
|
config:
|
6
6
|
disableWith: 'Uploading...'
|
7
|
-
filesClass: 'attachinary_files'
|
8
|
-
removeLabel: 'remove'
|
9
|
-
removeClass: ''
|
10
7
|
invalidFormatMessage: 'Invalid file format'
|
11
8
|
template: """
|
12
9
|
<ul>
|
@@ -47,9 +44,12 @@
|
|
47
44
|
@checkMaximum()
|
48
45
|
|
49
46
|
initFileUpload: ->
|
47
|
+
@options.field_name = @$input.attr('name')
|
48
|
+
|
50
49
|
options =
|
51
50
|
maxFileSize: 10000000
|
52
51
|
dataType: 'json'
|
52
|
+
paramName: 'file'
|
53
53
|
headers: {"X-Requested-With": "XMLHttpRequest"}
|
54
54
|
|
55
55
|
if @$input.attr('accept')
|
@@ -74,6 +74,7 @@
|
|
74
74
|
if @config.disableWith
|
75
75
|
$submit.data 'old-val', $submit.val()
|
76
76
|
$submit.val @config.disableWith
|
77
|
+
$submit.prop 'disabled', true
|
77
78
|
|
78
79
|
@$input.bind 'fileuploadalways', (event) =>
|
79
80
|
$form = @$input.closest('form')
|
@@ -85,6 +86,7 @@
|
|
85
86
|
@$input.prop 'disabled', false
|
86
87
|
if @config.disableWith
|
87
88
|
$submit.val $submit.data('old-val')
|
89
|
+
$submit.prop 'disabled', false
|
88
90
|
|
89
91
|
addFile: (file) ->
|
90
92
|
if !@options.accept || $.inArray(file.format, @options.accept) != -1
|
data/lib/attachinary/engine.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'attachinary/view_helpers'
|
2
|
+
require 'attachinary/form_builder'
|
2
3
|
|
3
4
|
module Attachinary
|
4
5
|
class Engine < ::Rails::Engine
|
@@ -10,6 +11,12 @@ module Attachinary
|
|
10
11
|
end
|
11
12
|
end
|
12
13
|
|
14
|
+
initializer "attachinary.include_view_helpers" do |app|
|
15
|
+
ActiveSupport.on_load :action_view do
|
16
|
+
ActionView::Helpers::FormBuilder.send(:include, Attachinary::FormBuilder)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
13
20
|
initializer "attachinary.enable_simple_form" do |app|
|
14
21
|
require "attachinary/simple_form" if defined?(::SimpleForm::Inputs::Base)
|
15
22
|
end
|
@@ -26,10 +26,16 @@ module Attachinary
|
|
26
26
|
|
27
27
|
if options[:single]
|
28
28
|
# embeds_on :photo, ...
|
29
|
-
embeds_one :"#{scope}",
|
29
|
+
embeds_one :"#{scope}",
|
30
|
+
as: :attachinariable,
|
31
|
+
class_name: '::Attachinary::File',
|
32
|
+
cascade_callbacks: true
|
30
33
|
else
|
31
34
|
# embeds_many :images, ...
|
32
|
-
embeds_many :"#{scope}",
|
35
|
+
embeds_many :"#{scope}",
|
36
|
+
as: :attachinariable,
|
37
|
+
class_name: '::Attachinary::File',
|
38
|
+
cascade_callbacks: true
|
33
39
|
end
|
34
40
|
|
35
41
|
|
@@ -2,10 +2,6 @@ class AttachinaryInput < SimpleForm::Inputs::Base
|
|
2
2
|
attr_reader :attachinary_options
|
3
3
|
|
4
4
|
def input
|
5
|
-
|
6
|
-
input_html_options[:id] ||= "#{@builder.object_name}_#{attribute_name}"
|
7
|
-
|
8
|
-
template.attachinary_file_field_tag name, @builder.object, attribute_name,
|
9
|
-
{ html: input_html_options }
|
5
|
+
template.builder_attachinary_file_field_tag attribute_name, @builder, { html: input_html_options }
|
10
6
|
end
|
11
7
|
end
|
data/lib/attachinary/version.rb
CHANGED
@@ -3,7 +3,17 @@ require 'mime/types'
|
|
3
3
|
module Attachinary
|
4
4
|
module ViewHelpers
|
5
5
|
|
6
|
+
def builder_attachinary_file_field_tag(attr_name, builder, options={})
|
7
|
+
options = attachinary_file_field_options(builder.object, attr_name, options)
|
8
|
+
builder.file_field(attr_name, options[:html])
|
9
|
+
end
|
10
|
+
|
6
11
|
def attachinary_file_field_tag(field_name, model, relation, options={})
|
12
|
+
options = attachinary_file_field_options(model, relation, options)
|
13
|
+
file_field_tag(field_name, options[:html])
|
14
|
+
end
|
15
|
+
|
16
|
+
def attachinary_file_field_options(model, relation, options={})
|
7
17
|
options[:attachinary] = model.send("#{relation}_metadata")
|
8
18
|
|
9
19
|
options[:cloudinary] ||= {}
|
@@ -35,12 +45,11 @@ module Attachinary
|
|
35
45
|
options[:html][:data] ||= {}
|
36
46
|
options[:html][:data][:attachinary] = options[:attachinary] || {}
|
37
47
|
options[:html][:data][:attachinary][:files] = [model.send(relation)].compact.flatten
|
38
|
-
options[:html][:data][:attachinary][:field_name] = field_name
|
39
48
|
|
40
49
|
options[:html][:data][:form_data] = cloudinary_params.reject{ |k, v| v.blank? }
|
41
50
|
options[:html][:data][:url] = cloudinary_upload_url
|
42
51
|
|
43
|
-
|
52
|
+
options
|
44
53
|
end
|
45
54
|
|
46
55
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: attachinary
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
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-10-
|
12
|
+
date: 2012-10-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70157177562020 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,21 +21,21 @@ dependencies:
|
|
21
21
|
version: '3.2'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70157177562020
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: cloudinary
|
27
|
-
requirement: &
|
27
|
+
requirement: &70157177561080 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.0.
|
32
|
+
version: 1.0.40
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70157177561080
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sqlite3
|
38
|
-
requirement: &
|
38
|
+
requirement: &70157177560440 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70157177560440
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec-rails
|
49
|
-
requirement: &
|
49
|
+
requirement: &70157177559380 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '2.5'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70157177559380
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: valid_attribute
|
60
|
-
requirement: &
|
60
|
+
requirement: &70157177558600 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70157177558600
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: capybara
|
71
|
-
requirement: &
|
71
|
+
requirement: &70157177557880 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70157177557880
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: factory_girl_rails
|
82
|
-
requirement: &
|
82
|
+
requirement: &70157177557120 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,21 +87,10 @@ dependencies:
|
|
87
87
|
version: '3.0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
91
|
-
- !ruby/object:Gem::Dependency
|
92
|
-
name: webmock
|
93
|
-
requirement: &70198167052440 !ruby/object:Gem::Requirement
|
94
|
-
none: false
|
95
|
-
requirements:
|
96
|
-
- - ! '>='
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: '0'
|
99
|
-
type: :development
|
100
|
-
prerelease: false
|
101
|
-
version_requirements: *70198167052440
|
90
|
+
version_requirements: *70157177557120
|
102
91
|
- !ruby/object:Gem::Dependency
|
103
92
|
name: launchy
|
104
|
-
requirement: &
|
93
|
+
requirement: &70157177556460 !ruby/object:Gem::Requirement
|
105
94
|
none: false
|
106
95
|
requirements:
|
107
96
|
- - ! '>='
|
@@ -109,10 +98,10 @@ dependencies:
|
|
109
98
|
version: '0'
|
110
99
|
type: :development
|
111
100
|
prerelease: false
|
112
|
-
version_requirements: *
|
101
|
+
version_requirements: *70157177556460
|
113
102
|
- !ruby/object:Gem::Dependency
|
114
103
|
name: database_cleaner
|
115
|
-
requirement: &
|
104
|
+
requirement: &70157177555700 !ruby/object:Gem::Requirement
|
116
105
|
none: false
|
117
106
|
requirements:
|
118
107
|
- - ! '>='
|
@@ -120,10 +109,10 @@ dependencies:
|
|
120
109
|
version: '0'
|
121
110
|
type: :development
|
122
111
|
prerelease: false
|
123
|
-
version_requirements: *
|
112
|
+
version_requirements: *70157177555700
|
124
113
|
- !ruby/object:Gem::Dependency
|
125
114
|
name: guard-rspec
|
126
|
-
requirement: &
|
115
|
+
requirement: &70157177555260 !ruby/object:Gem::Requirement
|
127
116
|
none: false
|
128
117
|
requirements:
|
129
118
|
- - ! '>='
|
@@ -131,7 +120,7 @@ dependencies:
|
|
131
120
|
version: '0'
|
132
121
|
type: :development
|
133
122
|
prerelease: false
|
134
|
-
version_requirements: *
|
123
|
+
version_requirements: *70157177555260
|
135
124
|
description: Attachments handler for Rails that uses Cloudinary for storage.
|
136
125
|
email:
|
137
126
|
- milovan.zogovic@gmail.com
|
@@ -144,7 +133,9 @@ files:
|
|
144
133
|
- app/controllers/attachinary/files_controller.rb
|
145
134
|
- config/routes.rb
|
146
135
|
- db/migrate/20120612112526_create_attachinary_tables.rb
|
136
|
+
- lib/assets/javascripts/attachinary.js.coffee
|
147
137
|
- lib/attachinary/engine.rb
|
138
|
+
- lib/attachinary/form_builder.rb
|
148
139
|
- lib/attachinary/orm/active_record/extension.rb
|
149
140
|
- lib/attachinary/orm/active_record/file.rb
|
150
141
|
- lib/attachinary/orm/active_record.rb
|
@@ -156,7 +147,6 @@ files:
|
|
156
147
|
- lib/attachinary/version.rb
|
157
148
|
- lib/attachinary/view_helpers.rb
|
158
149
|
- lib/attachinary.rb
|
159
|
-
- vendor/assets/javascripts/attachinary.js.coffee
|
160
150
|
- MIT-LICENSE
|
161
151
|
- Rakefile
|
162
152
|
- README.md
|
@@ -174,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
174
164
|
version: '0'
|
175
165
|
segments:
|
176
166
|
- 0
|
177
|
-
hash: -
|
167
|
+
hash: -1210217158710923500
|
178
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
169
|
none: false
|
180
170
|
requirements:
|
@@ -183,11 +173,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
173
|
version: '0'
|
184
174
|
segments:
|
185
175
|
- 0
|
186
|
-
hash: -
|
176
|
+
hash: -1210217158710923500
|
187
177
|
requirements: []
|
188
178
|
rubyforge_project:
|
189
179
|
rubygems_version: 1.8.11
|
190
180
|
signing_key:
|
191
181
|
specification_version: 3
|
192
|
-
summary: attachinary-1.0
|
182
|
+
summary: attachinary-1.1.0
|
193
183
|
test_files: []
|