middleman-image-uploader-tag 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 362ef8e1b744f133c54355093a958ed4d1445ac1
4
- data.tar.gz: a2a0114837e730164b9927b952907f6a88b8b734
3
+ metadata.gz: e09ba1cd1ec0c3bb7494f10d3193573dec5c3a89
4
+ data.tar.gz: e76f501dd36d68c2be1ca359852f1581abf6eda1
5
5
  SHA512:
6
- metadata.gz: bd13ca115c108becb86f3e6c71c8b55cd56b7089bd5f1caa76904778ad5675ea73d4805692fbd0435e4eb3837af2d8b9c9b4328ecc698b994707cc0f6b928ad1
7
- data.tar.gz: 34c26fa912fc9bc2265e079c862fb6d1d52ec056930d41cbdadbf81b66ec793550483389103b1b7b9ed6aa2a9dab8af48a45f00d6386e1545b2f55b408bcb756
6
+ metadata.gz: 872f682fd1a9e2abc211598d27cabba775d1a018e6d22547e1625e0e9a2dc4430aa16e2ba4ac22d72b0f0314ce6085fca5d75e3c82520cc0cc7954d0e16aa53d
7
+ data.tar.gz: 94838cbd8cf5a81ced39ac281d8c855a8f50e555ed8c65ffde6fde68a7d19e43659d2ad033d2d01731ab6ec8ebccae09805a9ab4308a9a4aeb9fbcb6b190a575
data/.gitignore CHANGED
@@ -5,4 +5,4 @@
5
5
  /pkg
6
6
 
7
7
  # Ignore temporary remote images folder
8
- test/fixtures/test/source/remote_images/
8
+ test/fixtures/test/source/images/remote_images/
data/README.md CHANGED
@@ -41,7 +41,9 @@ Also you can install the latest code directly from repository with:
41
41
 
42
42
  ## Configuration
43
43
 
44
- Activate extension in your `config.rb`, providing credentials for remote provider:
44
+ In you `config.rb`:
45
+
46
+ Activate extension, providing credentials for remote provider:
45
47
 
46
48
  ```ruby
47
49
  activate :image_uploader_tag do |e|
@@ -58,9 +60,21 @@ activate :image_uploader_tag do |e|
58
60
  end
59
61
  ```
60
62
 
61
- Note: the `remote_images_dir` sets the only folder images being uploaded.
63
+ Add ignore option to prevent remote images uploading during deploy:
64
+
65
+ ```ruby
66
+ ignore '/images/remote_images/*'
67
+ ```
68
+
69
+ Also you could add a line in your `.gitignore` file, to prevent uploading images during development too:
70
+
71
+ ```
72
+ source/images/remote_images
73
+ ```
74
+
75
+ Note: the `remote_images_dir` sets the only folder images would remote uploaded.
62
76
 
63
- It is optional and by default has the value `'remote_images'`. You can change it but be sure to place it NOT within the images directory of the Middleman, just somewhere in the application root folder.
77
+ It is optional and by default has the value `'remote_images'`. You can change it but be sure to place it within the images directory of the Middleman.
64
78
 
65
79
  ## Usage
66
80
 
@@ -14,10 +14,11 @@ module Middleman
14
14
  end
15
15
  end
16
16
 
17
- def get_remote_link(image_path)
17
+ def get_remote_link(image_path, secure = false)
18
18
  raise NotFound if !image_path || !File.exist?(image_path.to_s)
19
19
 
20
- upload_to_cloud(image_path)[:secure_url]
20
+ image_attributes = upload_to_cloud(image_path)
21
+ secure ? image_attributes[:secure_url] : image_attributes[:url]
21
22
  end
22
23
 
23
24
  def upload_to_cloud(file, options = {})
@@ -25,19 +25,19 @@ module Middleman
25
25
  end
26
26
 
27
27
  helpers do
28
- def remote_image_tag(image_name, params = {})
29
- image_tag remote_image_tag_link(image_name), params
28
+ def remote_image_tag(image_name, secure = false, params = {})
29
+ image_tag remote_image_tag_link(image_name, secure), params
30
30
  end
31
31
 
32
- def remote_image_tag_link(image_name)
32
+ def remote_image_tag_link(image_name, secure = false)
33
33
  klass = ::Middleman::ImageUploaderTag::Extension
34
34
 
35
- klass.get_remote_path image_name
35
+ klass.get_remote_path image_name, secure
36
36
  end
37
37
  end
38
38
 
39
39
  def self.image_location(image_path)
40
- File.join(app.root, 'source', remote_images_dir, image_path)
40
+ File.join(app.root, 'source', app.images_dir, remote_images_dir, image_path)
41
41
  end
42
42
 
43
43
  def self.provider
@@ -49,14 +49,18 @@ module Middleman
49
49
  ).new(provider_options.provider_config)
50
50
  end
51
51
 
52
- def self.get_remote_path(image_name)
52
+ def self.get_remote_path(image_name, secure = false)
53
53
  image_path = image_location(image_name)
54
54
  raise NotFound unless File.exist?(image_path)
55
55
 
56
56
  if app.config.environment == :build
57
- provider.get_remote_link(image_path)
57
+ if provider.instance_of? ::Middleman::ImageUploaderTag::CloudinaryCDN
58
+ provider.get_remote_link image_path, secure
59
+ else
60
+ provider.get_remote_link image_path
61
+ end
58
62
  else
59
- image_name
63
+ File.join('/', app.images_dir, remote_images_dir, image_name)
60
64
  end
61
65
  end
62
66
 
@@ -73,7 +77,7 @@ module Middleman
73
77
  end
74
78
 
75
79
  def self.create_images_dir!
76
- img_dir = File.join(app.root, 'source', remote_images_dir)
80
+ img_dir = File.join(app.root, 'source', app.images_dir, remote_images_dir)
77
81
 
78
82
  Dir.mkdir(img_dir) unless Dir.exist?(img_dir)
79
83
  end
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module ImageUploaderTag
3
- VERSION = '0.0.1'
3
+ VERSION = '0.0.2'
4
4
  end
5
5
  end
@@ -101,11 +101,12 @@ class CloudinaryCDNTest < Minitest::Test
101
101
 
102
102
  Cloudinary::Uploader.instance_eval do
103
103
  def upload(file, options)
104
- { 'secure_url': 'http://cdn.com/test.jpg' }
104
+ { 'secure_url': 'https://cdn.com/test.jpg', 'url': 'http://cdn.com/test.jpg' }
105
105
  end
106
106
  end
107
107
 
108
- assert_equal 'http://cdn.com/test.jpg', cdn.new(config).get_remote_link(image_path)
108
+ assert_equal 'https://cdn.com/test.jpg', cdn.new(config).get_remote_link(image_path, true)
109
+ assert_equal 'http://cdn.com/test.jpg', cdn.new(config).get_remote_link(image_path, false)
109
110
  end
110
111
 
111
112
  private
@@ -126,7 +127,9 @@ class CloudinaryCDNTest < Minitest::Test
126
127
  end
127
128
 
128
129
  def extension
129
- Middleman::ImageUploaderTag::Extension.new(Class.new(Middleman::Application)).class
130
+ app = Class.new(Middleman::Application)
131
+ app.config.images_dir = 'images'
132
+ Middleman::ImageUploaderTag::Extension.new(app).class
130
133
  end
131
134
  end
132
135
 
@@ -7,6 +7,7 @@ class ExtensionTest < Minitest::Test
7
7
 
8
8
  def setup
9
9
  @application = Class.new(Middleman::Application)
10
+ set_app_config({ images_dir: 'images' })
10
11
  @ext_instance = Middleman::ImageUploaderTag::Extension.new(@application)
11
12
  @ext_instance.app = @application
12
13
  @ext_class = @ext_instance.class
@@ -33,7 +34,7 @@ class ExtensionTest < Minitest::Test
33
34
  end
34
35
 
35
36
  def test_create_images_dir!
36
- remote_images_dir = File.join(application.root, 'source', ext_class.remote_images_dir)
37
+ remote_images_dir = File.join(application.root, 'source', application.images_dir, ext_class.remote_images_dir)
37
38
 
38
39
  assert Dir.exists?(remote_images_dir)
39
40
 
@@ -71,6 +72,13 @@ class ExtensionTest < Minitest::Test
71
72
 
72
73
  assert_equal true, called
73
74
  assert_equal image, name_called
75
+
76
+ called = false
77
+ application.stub :remote_image_tag_link, image do
78
+ application.remote_image_tag 'test.jpg', true, alt: 'hello'
79
+ end
80
+
81
+ assert_equal true, called
74
82
  end
75
83
 
76
84
  def test_remote_image_tag_link_helper
@@ -78,17 +86,27 @@ class ExtensionTest < Minitest::Test
78
86
  image = ext_class.image_location('test.jpg')
79
87
 
80
88
  mock = Minitest::Mock.new
81
- mock.expect :get_remote_path, image, ['test.jpg']
89
+ mock.expect :get_remote_path, image, ['test.jpg', false]
82
90
 
83
91
  ::Middleman::ImageUploaderTag.stub_const(:Extension, mock) do
84
92
  application.remote_image_tag_link 'test.jpg'
85
93
  end
86
94
 
87
95
  mock.verify
96
+
97
+ mock = Minitest::Mock.new
98
+ mock.expect :get_remote_path, image, ['test.jpg', true]
99
+
100
+ ::Middleman::ImageUploaderTag.stub_const(:Extension, mock) do
101
+ application.remote_image_tag_link 'test.jpg', true
102
+ end
103
+
104
+ mock.verify
88
105
  end
89
106
 
90
107
  def test_image_location
91
- remote_images_dir = File.join(application.root, 'source', ext_class.remote_images_dir)
108
+ remote_images_dir = File.join(application.root, 'source',
109
+ application.images_dir, ext_class.remote_images_dir)
92
110
 
93
111
  assert_equal remote_images_dir + '/test.jpg', ext_class.image_location('test.jpg')
94
112
  assert_equal remote_images_dir + '/test.jpg', ext_class.image_location('/test.jpg')
@@ -102,14 +120,15 @@ class ExtensionTest < Minitest::Test
102
120
  end
103
121
 
104
122
  def test_get_remote_path_during_development
123
+ remote_images_dir = File.join(application.images_dir, ext_class.remote_images_dir)
105
124
  create_fake_image!('test.jpg')
106
125
  create_fake_image!('test/test.jpg')
107
126
 
108
127
  set_app_config environment: :development
109
128
 
110
- assert_equal 'test.jpg', ext_class.get_remote_path('test.jpg')
111
- assert_equal '/test.jpg', ext_class.get_remote_path('/test.jpg')
112
- assert_equal 'test/test.jpg', ext_class.get_remote_path('test/test.jpg')
129
+ assert_equal File.join('/', remote_images_dir, 'test.jpg'), ext_class.get_remote_path('test.jpg')
130
+ assert_equal File.join('/', remote_images_dir, '/test.jpg'), ext_class.get_remote_path('/test.jpg')
131
+ assert_equal File.join('/', remote_images_dir, 'test/test.jpg'), ext_class.get_remote_path('test/test.jpg')
113
132
  end
114
133
 
115
134
  def test_get_remote_path_raises_exception_for_absent_image
@@ -127,12 +146,31 @@ class ExtensionTest < Minitest::Test
127
146
  image = ext_class.image_location('test.jpg')
128
147
 
129
148
  mock = Minitest::Mock.new
130
- mock.expect :get_remote_link, image, [image]
149
+ mock.expect :instance_of?, true, [::Middleman::ImageUploaderTag::CloudinaryCDN]
150
+ mock.expect :get_remote_link, image, [image, false]
131
151
 
132
152
  ext_class.stub :provider, mock do
133
153
  ext_class.get_remote_path 'test.jpg'
134
154
  end
135
155
  mock.verify
156
+
157
+ mock = Minitest::Mock.new
158
+ mock.expect :instance_of?, true, [::Middleman::ImageUploaderTag::CloudinaryCDN]
159
+ mock.expect :get_remote_link, image, [image, true]
160
+
161
+ ext_class.stub :provider, mock do
162
+ ext_class.get_remote_path 'test.jpg', true
163
+ end
164
+ mock.verify
165
+
166
+ mock = Minitest::Mock.new
167
+ mock.expect :instance_of?, false, [::Middleman::ImageUploaderTag::CloudinaryCDN]
168
+ mock.expect :get_remote_link, image, [image]
169
+
170
+ ext_class.stub :provider, mock do
171
+ ext_class.get_remote_path 'test.jpg', true
172
+ end
173
+ mock.verify
136
174
  end
137
175
 
138
176
  private
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-image-uploader-tag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aliaksandr Buhayeu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-23 00:00:00.000000000 Z
11
+ date: 2015-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: middleman-core