filepicker-rails 1.0.0 → 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.
- checksums.yaml +4 -4
- data/README.md +32 -4
- data/Rakefile +1 -0
- data/app/helpers/filepicker_rails/application_helper.rb +16 -2
- data/app/helpers/filepicker_rails/form_helper.rb +3 -2
- data/lib/filepicker_rails/configuration.rb +2 -5
- data/lib/filepicker_rails/version.rb +1 -1
- metadata +48 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdbbd40e9ca36cb245058decb551050c07409f09
|
4
|
+
data.tar.gz: 18ed7a4fef1e29641a14c3fe44f5b3d53da5da13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d78b7710a6a81288be4d5e29cfe06c469ecd64cafffabf983fea1f25b4f10ce22b750a7b632b67b0cdafcc1d78fc6df74360031cf9b25629e6ab63ba1bf5c35c
|
7
|
+
data.tar.gz: b3e3f5984ab5b101a1e4f5560066a3e9775b926b46353f97accf3b06e77e0b917bf47b37c7926e44cd1b0ce5da10a70e765c65ec9b38b2051b555db4a7204ced
|
data/README.md
CHANGED
@@ -34,8 +34,22 @@ Set your API Key in config/application.rb:
|
|
34
34
|
config.filepicker_rails.api_key = "Your filepicker.io API Key"
|
35
35
|
```
|
36
36
|
|
37
|
+
Set your Secret Key in config/application.rb for signed request support:
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
config.filepicker_rails.secret_key = "Your filepicker.io Secret Key"
|
41
|
+
```
|
42
|
+
|
43
|
+
Set your CDN Path in config/production.rb ([CDN usage](https://developers.inkfilepicker.com/docs/cdn/)):
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
config.filepicker_rails.cdn_host = "Your CDN host name"
|
47
|
+
```
|
48
|
+
|
37
49
|
## Usage
|
50
|
+
|
38
51
|
### First create a migration to add the field that will hold your filepicker.io URL
|
52
|
+
|
39
53
|
Run the Rails migration generator from the command line:
|
40
54
|
|
41
55
|
$ rails g migration AddNameOfAttrForFilepickerUrlToUser
|
@@ -54,7 +68,6 @@ class AddNameOfAttrForFilepickerUrlToUser < ActiveRecord::Migration
|
|
54
68
|
end
|
55
69
|
```
|
56
70
|
|
57
|
-
|
58
71
|
### Adding an upload field to your form:
|
59
72
|
|
60
73
|
```erb
|
@@ -67,6 +80,7 @@ end
|
|
67
80
|
<%= f.submit %>
|
68
81
|
<% end %>
|
69
82
|
```
|
83
|
+
|
70
84
|
Full options list:
|
71
85
|
|
72
86
|
* button_text - The text of the upload button.
|
@@ -87,7 +101,22 @@ of an iframe on the page.
|
|
87
101
|
|
88
102
|
### Accessing FilePicker File with OnChange:
|
89
103
|
|
90
|
-
|
104
|
+
Javascript code in the onchange field acts as a callback, which is
|
105
|
+
called on upload completion. You can specify onchange either in the ERB
|
106
|
+
template (as shown below), or unobtrusively via jQuery's change event.
|
107
|
+
|
108
|
+
```erb
|
109
|
+
<%= form_for @user do |f| %>
|
110
|
+
<div>
|
111
|
+
<%= f.label :filepicker_url, "Upload Your Avatar:" %>
|
112
|
+
<%= f.filepicker_field :filepicker_url, onchange: 'onPhotoUpload(event)' %>
|
113
|
+
</div>
|
114
|
+
|
115
|
+
<%= f.submit %>
|
116
|
+
<% end %>
|
117
|
+
```
|
118
|
+
|
119
|
+
The callback is called with a special 'event' variable. The variable has a fpfiles (or if not multiple, also fpfile) attribute with information about the files (jQuery users: look under event.originalEvent).
|
91
120
|
|
92
121
|
Example fpfiles object:
|
93
122
|
```javascript
|
@@ -116,7 +145,6 @@ Example fpfiles object:
|
|
116
145
|
|
117
146
|
See [the filepicker.io documentation](https://developers.filepicker.io/docs/web/#fpurl-images) for the full options list.
|
118
147
|
|
119
|
-
|
120
148
|
### Allowing the user to download a file (or upload it to any of the supported services)
|
121
149
|
|
122
150
|
```erb
|
@@ -153,7 +181,7 @@ Thank you to all the [contributors](https://github.com/Ink/filepicker-rails/grap
|
|
153
181
|
[gem_version_badge]: https://badge.fury.io/rb/filepicker-rails.png
|
154
182
|
[ruby_gems]: http://rubygems.org/gems/filepicker-rails
|
155
183
|
[travis_ci]: http://travis-ci.org/Ink/filepicker-rails
|
156
|
-
[travis_ci_badge]: https://
|
184
|
+
[travis_ci_badge]: https://travis-ci.org/Ink/filepicker-rails.svg?branch=master
|
157
185
|
[code_climate]: https://codeclimate.com/github/Ink/filepicker-rails
|
158
186
|
[code_climate_badge]: https://codeclimate.com/github/Ink/filepicker-rails.png
|
159
187
|
[coveralls]: https://coveralls.io/r/Ink/filepicker-rails
|
data/Rakefile
CHANGED
@@ -42,6 +42,10 @@ module FilepickerRails
|
|
42
42
|
# align - Determines how the image is aligned when resizing and using the "fit" parameter.
|
43
43
|
# Check API for details.
|
44
44
|
#
|
45
|
+
# rotate - Rotate the image. Default is no rotation.
|
46
|
+
# rotate="exif" will rotate the image automatically based on the exif data in the image.
|
47
|
+
# Other valid values are integers between 0 and 359, for degrees of rotation.
|
48
|
+
#
|
45
49
|
# cache - Specifies if the image should be cached or not.
|
46
50
|
#
|
47
51
|
# crop - Crops the image to a specified rectangle. The input to this parameter
|
@@ -69,8 +73,18 @@ module FilepickerRails
|
|
69
73
|
# and horizontal with a comma. The default behavior
|
70
74
|
# is bottom,right
|
71
75
|
def filepicker_image_url(url, options = {})
|
72
|
-
query_params = options.slice(:w, :h, :fit, :align, :cache, :crop, :format, :quality, :watermark, :watersize, :waterposition).to_query
|
73
|
-
|
76
|
+
query_params = options.slice(:w, :h, :fit, :align, :rotate, :cache, :crop, :format, :quality, :watermark, :watersize, :waterposition).to_query
|
77
|
+
|
78
|
+
if ::Rails.application.config.filepicker_rails.cdn_host
|
79
|
+
uri = URI.parse(url)
|
80
|
+
url.gsub!("#{uri.scheme}://#{uri.host}", ::Rails.application.config.filepicker_rails.cdn_host)
|
81
|
+
end
|
82
|
+
|
83
|
+
if query_params.blank?
|
84
|
+
[url, query_params]
|
85
|
+
else
|
86
|
+
[url, "/convert?", query_params]
|
87
|
+
end.join
|
74
88
|
end
|
75
89
|
end
|
76
90
|
end
|
@@ -4,7 +4,7 @@ module FilepickerRails
|
|
4
4
|
def filepicker_field(method, options = {})
|
5
5
|
type = options.delete(:dragdrop) ? 'filepicker-dragdrop' : 'filepicker'
|
6
6
|
|
7
|
-
input_options =
|
7
|
+
input_options = retrieve_legacy_filepicker_options(options)
|
8
8
|
input_options['data-fp-apikey'] ||= ::Rails.application.config.filepicker_rails.api_key
|
9
9
|
input_options.merge!(secure_filepicker) unless input_options['data-fp-policy'].present?
|
10
10
|
input_options['type'] = type
|
@@ -20,7 +20,7 @@ module FilepickerRails
|
|
20
20
|
|
21
21
|
private
|
22
22
|
|
23
|
-
def
|
23
|
+
def retrieve_legacy_filepicker_options(options)
|
24
24
|
mappings = {
|
25
25
|
:button_text => 'data-fp-button-text',
|
26
26
|
:button_class => 'data-fp-button-class',
|
@@ -34,6 +34,7 @@ module FilepickerRails
|
|
34
34
|
:store_location => 'data-fp-store-location',
|
35
35
|
:store_access => 'data-fp-store-access',
|
36
36
|
:multiple => 'data-fp-multiple',
|
37
|
+
:max_size => 'data-fp-maxSize',
|
37
38
|
:onchange => 'onchange',
|
38
39
|
:class => 'class',
|
39
40
|
:value => 'value'
|
@@ -1,15 +1,12 @@
|
|
1
1
|
module FilepickerRails
|
2
2
|
class Configuration
|
3
|
-
attr_writer :api_key, :
|
3
|
+
attr_writer :api_key, :default_expiry
|
4
|
+
attr_accessor :secret_key, :cdn_host
|
4
5
|
|
5
6
|
def api_key
|
6
7
|
@api_key or raise "Set config.filepicker_rails.api_key"
|
7
8
|
end
|
8
9
|
|
9
|
-
def secret_key
|
10
|
-
@secret_key
|
11
|
-
end
|
12
|
-
|
13
10
|
def default_expiry
|
14
11
|
@default_expiry ||= 600
|
15
12
|
end
|
metadata
CHANGED
@@ -1,83 +1,111 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filepicker-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Tilford
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: coveralls
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sqlite3
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec-rails
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: timecop
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: appraisal
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: capybara
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
81
109
|
- !ruby/object:Gem::Version
|
82
110
|
version: '0'
|
83
111
|
description: Makes integrating filepicker.io with rails 4 easy
|
@@ -87,6 +115,9 @@ executables: []
|
|
87
115
|
extensions: []
|
88
116
|
extra_rdoc_files: []
|
89
117
|
files:
|
118
|
+
- MIT-LICENSE
|
119
|
+
- README.md
|
120
|
+
- Rakefile
|
90
121
|
- app/helpers/filepicker_rails/application_helper.rb
|
91
122
|
- app/helpers/filepicker_rails/form_helper.rb
|
92
123
|
- lib/filepicker-rails.rb
|
@@ -94,11 +125,9 @@ files:
|
|
94
125
|
- lib/filepicker_rails/engine.rb
|
95
126
|
- lib/filepicker_rails/policy.rb
|
96
127
|
- lib/filepicker_rails/version.rb
|
97
|
-
- MIT-LICENSE
|
98
|
-
- Rakefile
|
99
|
-
- README.md
|
100
128
|
homepage: https://github.com/Ink/filepicker-rails
|
101
|
-
licenses:
|
129
|
+
licenses:
|
130
|
+
- MIT
|
102
131
|
metadata: {}
|
103
132
|
post_install_message:
|
104
133
|
rdoc_options: []
|
@@ -106,17 +135,17 @@ require_paths:
|
|
106
135
|
- lib
|
107
136
|
required_ruby_version: !ruby/object:Gem::Requirement
|
108
137
|
requirements:
|
109
|
-
- -
|
138
|
+
- - ">="
|
110
139
|
- !ruby/object:Gem::Version
|
111
140
|
version: '0'
|
112
141
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
142
|
requirements:
|
114
|
-
- -
|
143
|
+
- - ">="
|
115
144
|
- !ruby/object:Gem::Version
|
116
145
|
version: '0'
|
117
146
|
requirements: []
|
118
147
|
rubyforge_project:
|
119
|
-
rubygems_version: 2.
|
148
|
+
rubygems_version: 2.2.2
|
120
149
|
signing_key:
|
121
150
|
specification_version: 4
|
122
151
|
summary: Makes integrating filepicker.io with rails 4 easy
|