paperclip-meta 0.6.0 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aabd2e01ad47d7f22e378b79e409a9798a4778c9
4
- data.tar.gz: 9ea6f76f9f3fcd8aec42555ece5570363d4f7f78
3
+ metadata.gz: 26f6874af5f0ccd6241f7bfb4377733e5ac3c0a3
4
+ data.tar.gz: 0fec2a2421336b03906be6ed5e8ddcf738fa744e
5
5
  SHA512:
6
- metadata.gz: 85a9971fd625ad0efc89959e6e04663dd1fabe2f079bfdaaa867913cac834a60a3609713da04d06ed464fecc5fe61528a6d00b4039a14232f522a4e8409e9d03
7
- data.tar.gz: 880f048a350568ec742879385ea8c1559648c78cc74909a2124d510b2e1568edfd6475a9b59e75257649843af392330adc3f0cd201a39fa27ff07a32aa3d19c9
6
+ metadata.gz: c9309a1f582b6065ea645b3baa731c2a554b4f3ff13efeb21c6daaba00bbb6deab35376545b184e089cc3658812b6f20b5e3fa83a1dd808e65a6710f478efd3d
7
+ data.tar.gz: 750638ff3e27067e02adc6782643d3fe83d64afd4100ee6b685846204dc02442c7e2b4982d896a95e1a0649cf7ed3ffe6ecc2131ed7432325f14a7995d922911
data/.gitignore CHANGED
@@ -3,4 +3,5 @@
3
3
  .rvmrc
4
4
  Gemfile.lock
5
5
  pkg/*
6
+ spec/gemfiles/*.lock
6
7
  spec/tmp/*/**
@@ -3,3 +3,6 @@ rvm:
3
3
  - 2.0.0
4
4
  - 2.1.0
5
5
  - rbx
6
+ gemfile:
7
+ - spec/gemfiles/Gemfile.paperclip-3
8
+ - spec/gemfiles/Gemfile.paperclip-4
data/README.md CHANGED
@@ -7,6 +7,8 @@ Add width, height, and size to paperclip images.
7
7
 
8
8
  Paperclip Meta gets image dimensions after `post_process_styles` using paperclip's `Geometry.from_file`.
9
9
 
10
+ Paperclip Meta works with paperclip versions 3.x and 4.x.
11
+
10
12
  ### Setup
11
13
 
12
14
  Add paperclip-meta to Gemfile:
@@ -65,3 +67,26 @@ You can pass the image style to these methods. If a style is not passed, the def
65
67
  ### Alternatives
66
68
 
67
69
  https://github.com/thoughtbot/paperclip/wiki/Extracting-image-dimensions
70
+
71
+ ### Development
72
+
73
+ Test:
74
+
75
+ ```sh
76
+ bundle
77
+ rake
78
+ ```
79
+
80
+ Test paperclip 3.x:
81
+
82
+ ```sh
83
+ BUNDLE_GEMFILE=./spec/gemfiles/Gemfile.paperclip-3 bundle
84
+ BUNDLE_GEMFILE=./spec/gemfiles/Gemfile.paperclip-3 rake
85
+ ```
86
+
87
+ Test paperclip 4.x:
88
+
89
+ ```sh
90
+ BUNDLE_GEMFILE=./spec/gemfiles/Gemfile.paperclip-4 bundle
91
+ BUNDLE_GEMFILE=./spec/gemfiles/Gemfile.paperclip-4 rake
92
+ ```
data/Rakefile CHANGED
@@ -1,7 +1,10 @@
1
1
  require 'bundler/gem_tasks'
2
- require 'rspec/core'
3
- require 'rspec/core/rake_task'
2
+ require 'rake/testtask'
4
3
 
5
- RSpec::Core::RakeTask.new(:spec)
4
+ Rake::TestTask.new(:spec) do |t|
5
+ t.libs << 'spec'
6
+ t.test_files = %w(spec/**/*_spec.rb)
7
+ t.verbose = false
8
+ end
6
9
 
7
10
  task default: :spec
@@ -1,5 +1,5 @@
1
1
  module Paperclip
2
2
  module Meta
3
- VERSION = "0.6.0"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
@@ -18,11 +18,12 @@ Gem::Specification.new do |s|
18
18
 
19
19
  s.required_ruby_version = ">= 1.9.3"
20
20
 
21
- s.add_dependency "paperclip", "~> 3.0"
21
+ s.add_dependency "paperclip", ">= 3.0.2", "< 5.0"
22
22
 
23
23
  s.add_development_dependency "bundler", "~> 1.5"
24
24
  s.add_development_dependency "rake", "~> 10.1"
25
- s.add_development_dependency "rspec", "~> 2.14"
25
+ s.add_development_dependency "minitest", "~> 4.7"
26
+ s.add_development_dependency "mocha", "~> 1.0"
26
27
  s.add_development_dependency "activerecord", "~> 4.0"
27
28
  s.add_development_dependency "sqlite3", "~> 1.3"
28
29
  end
@@ -5,14 +5,14 @@ describe "Attachment" do
5
5
  img = Image.create(small_image: small_image)
6
6
  img.reload
7
7
  geometry = geometry_for(small_path)
8
- img.small_image.width.should == geometry.width
9
- img.small_image.height.should == geometry.height
8
+ assert_equal geometry.width, img.small_image.width
9
+ assert_equal geometry.height, img.small_image.height
10
10
  end
11
11
 
12
12
  it "saves geometry for styles" do
13
13
  img = Image.create(small_image: small_image, big_image: big_image)
14
- img.big_image.width(:thumb).should == 100
15
- img.big_image.height(:thumb).should == 100
14
+ assert_equal 100, img.big_image.width(:thumb)
15
+ assert_equal 100, img.big_image.height(:thumb)
16
16
  end
17
17
 
18
18
  it "sets geometry on update" do
@@ -20,8 +20,8 @@ describe "Attachment" do
20
20
  img.small_image = small_image
21
21
  img.save
22
22
  geometry = geometry_for(small_path)
23
- img.small_image.width.should == geometry.width
24
- img.small_image.height.should == geometry.height
23
+ assert_equal geometry.width, img.small_image.width
24
+ assert_equal geometry.height, img.small_image.height
25
25
  end
26
26
 
27
27
  describe 'file size' do
@@ -30,42 +30,48 @@ describe "Attachment" do
30
30
  end
31
31
 
32
32
  it 'should save file size with meta data ' do
33
- path = File.join(File.dirname(__FILE__), "../tmp/fixtures/tmp/thumb/#{@image.id}.jpg")
33
+ path = File.join(File.dirname(__FILE__), "tmp/fixtures/tmp/thumb/#{@image.id}.jpg")
34
34
  size = File.stat(path).size
35
- @image.big_image.size(:thumb).should == size
35
+ assert_equal size, @image.big_image.size(:thumb)
36
36
  end
37
37
 
38
38
  it 'should access normal paperclip method when no style passed' do
39
- @image.big_image.should_receive(:size_without_meta_data).once.and_return(1234)
40
- @image.big_image.size.should == 1234
39
+ @image.big_image.expects size_without_meta_data: 1234
40
+ assert_equal 1234, @image.big_image.size
41
41
  end
42
42
 
43
43
  it 'should have access to original file size' do
44
- @image.big_image.size.should == 37042
44
+ assert_equal 37042, @image.big_image.size
45
45
  end
46
46
  end
47
47
 
48
48
  it "clears geometry fields when image is destroyed" do
49
49
  img = Image.create(small_image: small_image, big_image: big_image)
50
- img.big_image.width(:thumb).should == 100
51
-
50
+ assert_equal 100, img.big_image.width(:thumb)
52
51
  img.big_image = nil
53
52
  img.save!
54
-
55
- img.big_image.width(:thumb).should be_nil
53
+ assert_nil img.big_image.width(:thumb)
56
54
  end
57
55
 
58
- it "does not fails when file is not an image" do
56
+ it "does not save when file is not an image" do
59
57
  img = Image.new
60
58
  img.small_image = not_image
61
- -> { img.save! }.should_not raise_error
62
- img.small_image.width(:thumb).should be_nil
59
+ refute img.save
60
+ assert_nil img.small_image.width
61
+ end
62
+
63
+ it "returns nil attributes when file is not an image" do
64
+ img = ImageWithNoValidation.new
65
+ img.small_image = not_image
66
+ img.save!
67
+ assert_nil img.small_image.width
68
+ assert_nil img.small_image.height
63
69
  end
64
70
 
65
71
  private
66
72
 
67
73
  def small_path
68
- File.join(File.dirname(__FILE__), '..', 'fixtures', 'small.png')
74
+ File.join(File.dirname(__FILE__), 'fixtures', 'small.png')
69
75
  end
70
76
 
71
77
  def small_image
@@ -77,10 +83,10 @@ describe "Attachment" do
77
83
  end
78
84
 
79
85
  def big_image
80
- File.open(File.join(File.dirname(__FILE__), '..', 'fixtures', 'big.jpg'))
86
+ File.open(File.join(File.dirname(__FILE__), 'fixtures', 'big.jpg'))
81
87
  end
82
88
 
83
89
  def not_image
84
- File.open(File.join(File.dirname(__FILE__), '..', 'fixtures', 'big.zip'))
90
+ File.open(File.join(File.dirname(__FILE__), 'fixtures', 'big.zip'))
85
91
  end
86
92
  end
@@ -0,0 +1,15 @@
1
+ source 'https://rubygems.org'
2
+
3
+ platforms :jruby do
4
+ gem 'activerecord-jdbcsqlite3-adapter'
5
+ end
6
+
7
+ platforms :rbx do
8
+ gem 'json'
9
+ gem 'rubysl', '~> 2.0'
10
+ end
11
+
12
+ # See paperclip-meta.gemspec
13
+ gemspec path: '../..'
14
+
15
+ gem 'paperclip', '~> 3.5'
@@ -0,0 +1,15 @@
1
+ source 'https://rubygems.org'
2
+
3
+ platforms :jruby do
4
+ gem 'activerecord-jdbcsqlite3-adapter'
5
+ end
6
+
7
+ platforms :rbx do
8
+ gem 'json'
9
+ gem 'rubysl', '~> 2.0'
10
+ end
11
+
12
+ # See paperclip-meta.gemspec
13
+ gemspec path: '../..'
14
+
15
+ gem 'paperclip', '~> 4.0'
@@ -1,6 +1,8 @@
1
1
  require 'bundler/setup'
2
2
  Bundler.require(:default)
3
- require "active_record"
3
+ require 'active_record'
4
+ require 'minitest/autorun'
5
+ require 'mocha/setup'
4
6
 
5
7
  ActiveRecord::Base.establish_connection(
6
8
  adapter: "sqlite3",
@@ -18,15 +20,34 @@ load(File.join(File.dirname(__FILE__), 'schema.rb'))
18
20
  ActiveRecord::Base.send(:include, Paperclip::Glue)
19
21
  Paperclip::Meta::Railtie.insert
20
22
 
23
+ I18n.enforce_available_locales = true
24
+
21
25
  class Image < ActiveRecord::Base
22
26
  has_attached_file :small_image,
23
- :storage => :filesystem,
24
- :path => "./spec/tmp/:style/:id.:extension",
25
- :url => "./spec/tmp/:style/:id.extension"
27
+ storage: :filesystem,
28
+ path: "./spec/tmp/:style/:id.:extension",
29
+ url: "./spec/tmp/:style/:id.extension"
26
30
 
27
31
  has_attached_file :big_image,
28
- :storage => :filesystem,
29
- :path => "./spec/tmp/fixtures/tmp/:style/:id.:extension",
30
- :url => "./spec/tmp/fixtures/tmp/:style/:id.extension",
31
- :styles => { :thumb => "100x100#" }
32
+ storage: :filesystem,
33
+ path: "./spec/tmp/fixtures/tmp/:style/:id.:extension",
34
+ url: "./spec/tmp/fixtures/tmp/:style/:id.extension",
35
+ styles: { thumb: "100x100#" }
36
+
37
+ # paperclip 4.0 requires a validator
38
+ validates_attachment_content_type :small_image, content_type: /\Aimage/
39
+ validates_attachment_content_type :big_image, content_type: /\Aimage/
40
+ end
41
+
42
+ class ImageWithNoValidation < ActiveRecord::Base
43
+ self.table_name = :images
44
+
45
+ has_attached_file :small_image,
46
+ storage: :filesystem,
47
+ path: "./spec/tmp/:style/:id.:extension",
48
+ url: "./spec/tmp/:style/:id.extension"
49
+
50
+ if Paperclip::VERSION >= "4.0"
51
+ do_not_validate_attachment_file_type :small_image
52
+ end
32
53
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip-meta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexey Bondar
@@ -9,22 +9,28 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-31 00:00:00.000000000 Z
12
+ date: 2014-02-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: paperclip
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 3.0.2
21
+ - - "<"
19
22
  - !ruby/object:Gem::Version
20
- version: '3.0'
23
+ version: '5.0'
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
24
27
  requirements:
25
- - - "~>"
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: 3.0.2
31
+ - - "<"
26
32
  - !ruby/object:Gem::Version
27
- version: '3.0'
33
+ version: '5.0'
28
34
  - !ruby/object:Gem::Dependency
29
35
  name: bundler
30
36
  requirement: !ruby/object:Gem::Requirement
@@ -54,19 +60,33 @@ dependencies:
54
60
  - !ruby/object:Gem::Version
55
61
  version: '10.1'
56
62
  - !ruby/object:Gem::Dependency
57
- name: rspec
63
+ name: minitest
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.7'
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '4.7'
76
+ - !ruby/object:Gem::Dependency
77
+ name: mocha
58
78
  requirement: !ruby/object:Gem::Requirement
59
79
  requirements:
60
80
  - - "~>"
61
81
  - !ruby/object:Gem::Version
62
- version: '2.14'
82
+ version: '1.0'
63
83
  type: :development
64
84
  prerelease: false
65
85
  version_requirements: !ruby/object:Gem::Requirement
66
86
  requirements:
67
87
  - - "~>"
68
88
  - !ruby/object:Gem::Version
69
- version: '2.14'
89
+ version: '1.0'
70
90
  - !ruby/object:Gem::Dependency
71
91
  name: activerecord
72
92
  requirement: !ruby/object:Gem::Requirement
@@ -115,10 +135,12 @@ files:
115
135
  - lib/paperclip-meta/railtie.rb
116
136
  - lib/paperclip-meta/version.rb
117
137
  - paperclip-meta.gemspec
138
+ - spec/attachment_spec.rb
118
139
  - spec/fixtures/big.jpg
119
140
  - spec/fixtures/big.zip
120
141
  - spec/fixtures/small.png
121
- - spec/paperclip-meta/paperclip-meta_spec.rb
142
+ - spec/gemfiles/Gemfile.paperclip-3
143
+ - spec/gemfiles/Gemfile.paperclip-4
122
144
  - spec/schema.rb
123
145
  - spec/spec_helper.rb
124
146
  homepage: http://github.com/teeparham/paperclip-meta
@@ -145,9 +167,11 @@ signing_key:
145
167
  specification_version: 4
146
168
  summary: Add width, height, and size to paperclip images
147
169
  test_files:
170
+ - spec/attachment_spec.rb
148
171
  - spec/fixtures/big.jpg
149
172
  - spec/fixtures/big.zip
150
173
  - spec/fixtures/small.png
151
- - spec/paperclip-meta/paperclip-meta_spec.rb
174
+ - spec/gemfiles/Gemfile.paperclip-3
175
+ - spec/gemfiles/Gemfile.paperclip-4
152
176
  - spec/schema.rb
153
177
  - spec/spec_helper.rb