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 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
- <%= attachinary_file_field_tag 'user[avatar]', user, :avatar %>
67
- <%= attachinary_file_field_tag 'user[photos]', user, :photos %>
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
@@ -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
@@ -0,0 +1,7 @@
1
+ module Attachinary
2
+ module FormBuilder
3
+ def attachinary_file_field(method, options={})
4
+ @template.builder_attachinary_file_field_tag method, self, options
5
+ end
6
+ end
7
+ end
@@ -26,10 +26,16 @@ module Attachinary
26
26
 
27
27
  if options[:single]
28
28
  # embeds_on :photo, ...
29
- embeds_one :"#{scope}", as: :attachinariable, class_name: '::Attachinary::File'
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}", as: :attachinariable, class_name: '::Attachinary::File'
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
- name = "#{@builder.object_name}[#{attribute_name}]"
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
@@ -1,3 +1,3 @@
1
1
  module Attachinary
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -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
- file_field_tag('file', options[:html])
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.1
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-01 00:00:00.000000000 Z
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: &70198166992480 !ruby/object:Gem::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: *70198166992480
24
+ version_requirements: *70157177562020
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: cloudinary
27
- requirement: &70198167000640 !ruby/object:Gem::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.30
32
+ version: 1.0.40
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70198167000640
35
+ version_requirements: *70157177561080
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sqlite3
38
- requirement: &70198167040760 !ruby/object:Gem::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: *70198167040760
46
+ version_requirements: *70157177560440
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec-rails
49
- requirement: &70198167038660 !ruby/object:Gem::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: *70198167038660
57
+ version_requirements: *70157177559380
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: valid_attribute
60
- requirement: &70198167037580 !ruby/object:Gem::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: *70198167037580
68
+ version_requirements: *70157177558600
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: capybara
71
- requirement: &70198167055900 !ruby/object:Gem::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: *70198167055900
79
+ version_requirements: *70157177557880
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: factory_girl_rails
82
- requirement: &70198167053580 !ruby/object:Gem::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: *70198167053580
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: &70198167050240 !ruby/object:Gem::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: *70198167050240
101
+ version_requirements: *70157177556460
113
102
  - !ruby/object:Gem::Dependency
114
103
  name: database_cleaner
115
- requirement: &70198167062200 !ruby/object:Gem::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: *70198167062200
112
+ version_requirements: *70157177555700
124
113
  - !ruby/object:Gem::Dependency
125
114
  name: guard-rspec
126
- requirement: &70198167059120 !ruby/object:Gem::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: *70198167059120
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: -42460769790723876
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: -42460769790723876
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.1
182
+ summary: attachinary-1.1.0
193
183
  test_files: []