fileclip 0.0.2 → 0.0.3

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: 91a1a3cdb90d0f73d016ca30944699ad15064e89
4
- data.tar.gz: 738d45827c66c1c2209026b4a1012c874c754420
3
+ metadata.gz: a311561e6048d53367ee57f3cb9165b36e41567e
4
+ data.tar.gz: beb839f1783d207d72117ca7c7be8787f56ba80a
5
5
  SHA512:
6
- metadata.gz: 5c4f6a8c14139babd5552a8a73f9025fae242507729bdee27201458d4f5b230f511cd4f3fb17baab2b2e50c9faa5e1c8d33eb419aba14b42f4e2c1eb65e2b920
7
- data.tar.gz: ab7a5c85320b323c156ce2edd6cae5a3fcc03426e2f2328d177523445736de4f0f1980b393d00be0408bdcda45064f8ecc78b86de333c862322e3053fe27ada2
6
+ metadata.gz: 0df75a25ec21f9abdf48960c62bcb7384cb1f6c47e004a52c9b4ff12ce59b8d2611349709123d2b5b72e51c66305e1cbb68a3a8d149c4f8a37d39a762ba03391
7
+ data.tar.gz: 75aab020685e28fb4871a49b5cb43d3e8b95e6b185a69a1af68cb18ff31d256b246d91d5ba3a80f4e419b31ed263c40179695a55cf30f7c40974e9bdde0212d2
data/Gemfile CHANGED
@@ -1,3 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem 'rake'
3
+ gemspec
4
+
5
+ gem 'rails', "3.2.14"
6
+ gem 'byebug'
7
+
@@ -1,10 +1,125 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ fileclip (0.0.2)
5
+ paperclip
6
+ paperclip (>= 3.3.0)
7
+ railties (>= 3.0)
8
+
1
9
  GEM
2
10
  remote: http://rubygems.org/
3
11
  specs:
12
+ actionmailer (3.2.14)
13
+ actionpack (= 3.2.14)
14
+ mail (~> 2.5.4)
15
+ actionpack (3.2.14)
16
+ activemodel (= 3.2.14)
17
+ activesupport (= 3.2.14)
18
+ builder (~> 3.0.0)
19
+ erubis (~> 2.7.0)
20
+ journey (~> 1.0.4)
21
+ rack (~> 1.4.5)
22
+ rack-cache (~> 1.2)
23
+ rack-test (~> 0.6.1)
24
+ sprockets (~> 2.2.1)
25
+ activemodel (3.2.14)
26
+ activesupport (= 3.2.14)
27
+ builder (~> 3.0.0)
28
+ activerecord (3.2.14)
29
+ activemodel (= 3.2.14)
30
+ activesupport (= 3.2.14)
31
+ arel (~> 3.0.2)
32
+ tzinfo (~> 0.3.29)
33
+ activeresource (3.2.14)
34
+ activemodel (= 3.2.14)
35
+ activesupport (= 3.2.14)
36
+ activesupport (3.2.14)
37
+ i18n (~> 0.6, >= 0.6.4)
38
+ multi_json (~> 1.0)
39
+ arel (3.0.2)
40
+ builder (3.0.4)
41
+ byebug (1.6.1)
42
+ columnize (~> 0.3.6)
43
+ debugger-linecache (~> 1.2.0)
44
+ climate_control (0.0.3)
45
+ activesupport (>= 3.0)
46
+ cocaine (0.5.1)
47
+ climate_control (>= 0.0.3, < 1.0)
48
+ columnize (0.3.6)
49
+ debugger-linecache (1.2.0)
50
+ diff-lcs (1.2.4)
51
+ erubis (2.7.0)
52
+ hike (1.2.3)
53
+ i18n (0.6.4)
54
+ journey (1.0.4)
55
+ json (1.8.0)
56
+ mail (2.5.4)
57
+ mime-types (~> 1.16)
58
+ treetop (~> 1.4.8)
59
+ mime-types (1.23)
60
+ multi_json (1.7.7)
61
+ paperclip (3.5.0)
62
+ activemodel (>= 3.0.0)
63
+ activesupport (>= 3.0.0)
64
+ cocaine (~> 0.5.0)
65
+ mime-types
66
+ polyglot (0.3.3)
67
+ rack (1.4.5)
68
+ rack-cache (1.2)
69
+ rack (>= 0.4)
70
+ rack-ssl (1.3.3)
71
+ rack
72
+ rack-test (0.6.2)
73
+ rack (>= 1.0)
74
+ rails (3.2.14)
75
+ actionmailer (= 3.2.14)
76
+ actionpack (= 3.2.14)
77
+ activerecord (= 3.2.14)
78
+ activeresource (= 3.2.14)
79
+ activesupport (= 3.2.14)
80
+ bundler (~> 1.0)
81
+ railties (= 3.2.14)
82
+ railties (3.2.14)
83
+ actionpack (= 3.2.14)
84
+ activesupport (= 3.2.14)
85
+ rack-ssl (~> 1.3.2)
86
+ rake (>= 0.8.7)
87
+ rdoc (~> 3.4)
88
+ thor (>= 0.14.6, < 2.0)
4
89
  rake (10.1.0)
90
+ rdoc (3.12.2)
91
+ json (~> 1.4)
92
+ rest-client (1.6.7)
93
+ mime-types (>= 1.16)
94
+ rspec (2.14.1)
95
+ rspec-core (~> 2.14.0)
96
+ rspec-expectations (~> 2.14.0)
97
+ rspec-mocks (~> 2.14.0)
98
+ rspec-core (2.14.4)
99
+ rspec-expectations (2.14.0)
100
+ diff-lcs (>= 1.1.3, < 2.0)
101
+ rspec-mocks (2.14.1)
102
+ sprockets (2.2.2)
103
+ hike (~> 1.2)
104
+ multi_json (~> 1.0)
105
+ rack (~> 1.0)
106
+ tilt (~> 1.1, != 1.3.0)
107
+ sqlite3 (1.3.7)
108
+ thor (0.18.1)
109
+ tilt (1.4.1)
110
+ treetop (1.4.14)
111
+ polyglot
112
+ polyglot (>= 0.3.1)
113
+ tzinfo (0.3.37)
5
114
 
6
115
  PLATFORMS
7
116
  ruby
8
117
 
9
118
  DEPENDENCIES
10
- rake
119
+ byebug
120
+ fileclip!
121
+ paperclip
122
+ rails (= 3.2.14)
123
+ rest-client
124
+ rspec
125
+ sqlite3
data/README.md CHANGED
@@ -1,8 +1,42 @@
1
1
  fileclip
2
2
  ========
3
3
 
4
- A FilePicker / PaperClip mashup. Use Filepicker for uploads and paperclip to process them. Works with Resque &amp; Delayed Paperclip
5
-
4
+ A FilePicker / PaperClip mashup. Use Filepicker for uploads and paperclip to process them.
6
5
 
7
6
  TODO:
8
- Empty Project
7
+
8
+ Backend:
9
+ * It should be unobtrusive. Normal paperclip uploads should work
10
+ * If filepicker_url is present it should process it
11
+ * If filepicker_url changes, it should process it
12
+ * First version should be minimal
13
+ * Handle skipping validations of attachment seamlessly
14
+ * Configuration accepts config key
15
+
16
+ Frontend:
17
+ * Allow overriding of filepicker options
18
+ * Fileclip link to automatically set fields and call it
19
+ * link should act like a normal link helper
20
+ * Minimal amount of JS
21
+ * Loader for filepicker js if needed
22
+ * Eliminate need for jQuery
23
+
24
+ Extra features:
25
+ * Work with Delayed Paperclip
26
+ * Work with Resque
27
+ * Work with DelayedJob
28
+ * Work with Sidekiq
29
+ * Handle multiple attachments on the same model
30
+ * Fallback to filepicker url if paperclip url doesn't exist
31
+ * Filepicker converts to match paperclip styles
32
+ * Configure Filepicker options
33
+ * FilePicker droppane support
34
+
35
+ #### Current FilePicker options hardcoded
36
+ * mimetypes are image/*
37
+ * container modal
38
+ * service Computer
39
+ * maxsize is 20 mb
40
+ * location is S3
41
+ * path is "/fileclip"
42
+ * access is public
data/Rakefile CHANGED
@@ -1,2 +1,8 @@
1
- require 'bundler/setup'
2
- require 'rake'
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core"
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ # spec is default task
8
+ task :default => :spec
@@ -1,11 +1,11 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "fileclip"
3
- s.version = "0.0.2"
3
+ s.version = "0.0.3"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
6
  s.authors = ["Scott Carleton"]
7
7
  s.date = "2013-07-26"
8
- s.description = "NO CODE WRITTEN YET: A FilePicker / PaperClip mashup. Use Filepicker for uploads and paperclip to process them. Works with Resque & Delayed Paperclip"
8
+ s.description = "A FilePicker / PaperClip mashup. Use Filepicker for uploads and paperclip to process them."
9
9
  s.email = "scott@artsicle.com"
10
10
  s.extra_rdoc_files = [
11
11
  "LICENSE",
@@ -18,7 +18,6 @@ Gem::Specification.new do |s|
18
18
  "LICENSE",
19
19
  "README.md",
20
20
  "Rakefile",
21
- "VERSION",
22
21
  "fileclip.gemspec",
23
22
  "lib/fileclip.rb",
24
23
  "lib/fileclip/version.rb"
@@ -29,6 +28,15 @@ Gem::Specification.new do |s|
29
28
  s.rubygems_version = "2.0.3"
30
29
  s.summary = "A FilePicker / PaperClip mashup."
31
30
 
32
- s.add_dependency(%q<rake>, [">= 0"])
31
+ s.add_dependency 'paperclip', [">= 3.3.0"]
32
+
33
+ s.add_development_dependency "rspec"
34
+ s.add_development_dependency 'sqlite3'
35
+ s.add_development_dependency "rails"
36
+ s.add_development_dependency "paperclip"
37
+ s.add_development_dependency "rest-client"
38
+ s.add_runtime_dependency(%q<railties>, [">= 3.0"])
39
+
40
+ s.add_runtime_dependency "paperclip"
33
41
  end
34
42
 
@@ -0,0 +1,117 @@
1
+ # TODO
2
+ #
3
+ # Allowance for normal attached images through file_field:
4
+ # only do attachment validation if it's there if remote url is not present
5
+ # only do process_in_background if remote_url is not present
6
+ #
7
+ # Expose FilePicked to all classes that have Paperclip images
8
+ #
9
+ # Handle multiple attachments in single model
10
+ # Crux of this is finding the name of the attachment we're dealing with
11
+ #
12
+ # Fallback if none are defined
13
+ #
14
+ # What can we separate out into it's own class
15
+ # What should be a part of attachment
16
+ #
17
+ # Migration generator
18
+ #
19
+ # Configuration to take Filepicker API key
20
+ #
21
+ # Javascript inclusion
22
+ #
23
+ # Add delayed aspect
24
+ #
25
+ # Queue job for image assignment
26
+ require "fileclip/configuration"
27
+ require 'fileclip/action_view/helpers'
28
+ require 'fileclip/railtie'
29
+ require 'rest-client'
30
+
31
+ module FileClip
32
+
33
+ module Glue
34
+ def self.included(base)
35
+ base.extend(ClassMethods)
36
+ base.send :include, InstanceMethods
37
+ base.add_callbacks
38
+ end
39
+ end
40
+
41
+ module ClassMethods
42
+ def add_callbacks
43
+ attr_accessible :filepicker_url
44
+
45
+ # if respond_to?(:after_commit)
46
+ after_commit :update_from_filepicker!
47
+ # else
48
+ # after_save :update_from_filepicker!
49
+ # end
50
+
51
+ # TODO:
52
+ # skip validates_attachment_presence if filepicker url present
53
+ # Save without this particular vaildation
54
+ end
55
+
56
+ def paperclip_definitions
57
+ @paperclip_definitions ||= if respond_to? :attachment_definitions
58
+ attachment_definitions
59
+ else
60
+ Paperclip::Tasks::Attachments.definitions_for(self)
61
+ end
62
+ end
63
+ end
64
+
65
+ module InstanceMethods
66
+
67
+ # TODO: can't handle multiples, just first
68
+ def attachment_name
69
+ @attachment_name ||= self.class.paperclip_definitions.keys.first
70
+ end
71
+
72
+ def attachment_object
73
+ self.send(attachment_name)
74
+ end
75
+
76
+ def update_from_filepicker!
77
+ process_from_filepicker if update_from_filepicker?
78
+ end
79
+
80
+ def process_from_filepicker
81
+ self.class.skip_callback :commit, :after, :update_from_filepicker!
82
+ self.send(:"#{attachment_name}=", URI.parse(filepicker_url))
83
+ self.set_metadata
84
+ self.save
85
+ self.class.set_callback :commit, :after, :update_from_filepicker!
86
+ end
87
+
88
+ def set_metadata
89
+ metadata = JSON.parse(::RestClient.get filepicker_url + "/metadata")
90
+
91
+ self.send(:"#{attachment_name}_content_type=", metadata["mimetype"])
92
+ self.send(:"#{attachment_name}_file_name=", metadata["filename"])
93
+ self.send(:"#{attachment_name}_file_size=", metadata["size"])
94
+ end
95
+
96
+ def update_from_filepicker?
97
+ filepicker_url_previously_changed? &&
98
+ filepicker_url.present? &&
99
+ !filepicker_only?
100
+ end
101
+
102
+ def filepicker_url_not_present?
103
+ !filepicker_url.present?
104
+ end
105
+
106
+ def filepicker_url_previously_changed?
107
+ previous_changes.keys.include?('filepicker_url')
108
+ end
109
+
110
+ # To be overridden in model if specific logic for not
111
+ # processing the image
112
+ def filepicker_only?
113
+ false
114
+ end
115
+ end
116
+
117
+ end
@@ -1,3 +1,3 @@
1
1
  module FileClip
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fileclip
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Carleton
@@ -11,7 +11,105 @@ cert_chain: []
11
11
  date: 2013-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rake
14
+ name: paperclip
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 3.3.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.3.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: paperclip
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rest-client
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: railties
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '3.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '3.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: paperclip
15
113
  requirement: !ruby/object:Gem::Requirement
16
114
  requirements:
17
115
  - - '>='
@@ -24,8 +122,8 @@ dependencies:
24
122
  - - '>='
25
123
  - !ruby/object:Gem::Version
26
124
  version: '0'
27
- description: 'NO CODE WRITTEN YET: A FilePicker / PaperClip mashup. Use Filepicker
28
- for uploads and paperclip to process them. Works with Resque & Delayed Paperclip'
125
+ description: A FilePicker / PaperClip mashup. Use Filepicker for uploads and paperclip
126
+ to process them.
29
127
  email: scott@artsicle.com
30
128
  executables: []
31
129
  extensions: []
@@ -39,7 +137,6 @@ files:
39
137
  - LICENSE
40
138
  - README.md
41
139
  - Rakefile
42
- - VERSION
43
140
  - fileclip.gemspec
44
141
  - lib/fileclip.rb
45
142
  - lib/fileclip/version.rb
@@ -63,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
160
  version: '0'
64
161
  requirements: []
65
162
  rubyforge_project:
66
- rubygems_version: 2.0.3
163
+ rubygems_version: 2.0.6
67
164
  signing_key:
68
165
  specification_version: 4
69
166
  summary: A FilePicker / PaperClip mashup.
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.0.1