retina_tag 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -37,8 +37,16 @@ Be sure to also specify the base dimensions in your `image_tag` calls:
37
37
 
38
38
  Awesome right?
39
39
 
40
- ## Lazy Loading Images
41
- if you set `:lazy => true` on an image_tag, the src attribute is moved to a lodpi_src attribute. You will need to manually instruct the image to load. To do this use `RetinaTag.refreshImage(img)` where img is the image element.
40
+ ### Forcing Refresh after loading dynamic content
41
+ Retina tag listens to the global event on document called `retina_tag:refresh`. Firing this event will force retina_tag to rescan the dom for images and update their image src if necessary. Useful if loading content dynamically. **Note:** retina_tag automatically supports turbolinks.
42
+
43
+ ### Override Hidpi src attribute
44
+ In some cases it becomes necessary to override the hidpi_src attribute and skip asset pipeline. A good example of this might be to load a users profile picture which is stored elsewhere.
45
+
46
+ <%=image_tag(user.photo.url(:medium), "hidpi_src" => user.photo.url(:medium_2x), :height=>75, :width => 75%>
47
+
48
+ ### Lazy Loading Images
49
+ If you set `:lazy => true` on an image_tag, the src attribute is moved to a lodpi_src attribute. You will need to manually instruct the image to load. To do this use `RetinaTag.refreshImage(img)` where img is the image element.
42
50
 
43
51
 
44
52
  ## Contributing
@@ -1,4 +1,51 @@
1
+
1
2
  module RetinaTag
3
+ module TagHelper
4
+ def self.included(base)
5
+ base.alias_method_chain :image_tag, :retina
6
+ end
7
+
8
+ def image_tag_with_retina(source,options={})
9
+ hidpi_asset_path = nil
10
+ begin
11
+ retina_els = path.split('.')
12
+ extension = retina_els.last
13
+ retina_els.slice!(-1)
14
+ retina_path = "#{retina_els.join('.')}@2x.#{extension}"
15
+
16
+ if !Rails.application.assets.find_asset(retina_path).nil?
17
+ hidpi_asset_path = asset_path(retina_path)
18
+ end
19
+ rescue
20
+ end
21
+ options_default = { :hidpi_src => hidpi_asset_path }
22
+
23
+ if lazy = options.delete(:lazy)
24
+ options["data-lazy-load"] = lazy
25
+ end
26
+
27
+ options_default.merge!(options)
28
+
29
+ image_tag_without_retina(source,options_default)
30
+
31
+ if options_default[:"data-lazy-load"]
32
+ puts "Lazy load detected"
33
+ options_default[:lowdpi_src] = options_default.delete(:src)
34
+ end
35
+ puts "Using custom image Tag!"
36
+ puts options_default
37
+ tag("img", options_default)
38
+ end
39
+
40
+
41
+ end
42
+
2
43
  class Engine < ::Rails::Engine
44
+ initializer :retina_tag_image_tag do
45
+ ActionView::Helpers::AssetTagHelper.module_eval do
46
+ include TagHelper
47
+ end
48
+
49
+ end
3
50
  end
4
51
  end
@@ -1,3 +1,3 @@
1
1
  module RetinaTag
2
- VERSION = "1.1.2"
2
+ VERSION = "1.1.3"
3
3
  end
data/lib/retina_tag.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require "retina_tag/version"
2
- require "retina_tag/image_tag_helper"
3
2
  require "retina_tag/engine"
4
3
 
5
4
  module RetinaTag
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: retina_tag
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-14 00:00:00.000000000 Z
12
+ date: 2012-12-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -59,7 +59,6 @@ files:
59
59
  - app/assets/javascripts/retina_tag.js
60
60
  - lib/retina_tag.rb
61
61
  - lib/retina_tag/engine.rb
62
- - lib/retina_tag/image_tag_helper.rb
63
62
  - lib/retina_tag/version.rb
64
63
  - retina_tag.gemspec
65
64
  homepage: http://github.com/davydotcom/retina_tag
@@ -76,7 +75,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
75
  version: '0'
77
76
  segments:
78
77
  - 0
79
- hash: -755295882179579949
78
+ hash: -2618567540484132469
80
79
  required_rubygems_version: !ruby/object:Gem::Requirement
81
80
  none: false
82
81
  requirements:
@@ -85,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
84
  version: '0'
86
85
  segments:
87
86
  - 0
88
- hash: -755295882179579949
87
+ hash: -2618567540484132469
89
88
  requirements: []
90
89
  rubyforge_project:
91
90
  rubygems_version: 1.8.24
@@ -1,42 +0,0 @@
1
- module ActionView
2
- module Helpers
3
- module AssetTagHelper
4
- def hidpi_asset_path(path)
5
- begin
6
- retina_els = path.split('.')
7
- extension = retina_els.last
8
- retina_els.slice!(-1)
9
- retina_path = "#{retina_els.join('.')}@2x.#{extension}"
10
-
11
- if !Rails.application.assets.find_asset(retina_path).nil?
12
- asset_path(retina_path)
13
- end
14
- rescue
15
- nil
16
- end
17
- end
18
-
19
- def image_tag_with_retina(source,options={})
20
- options_default = { :hidpi_src => hidpi_asset_path(source) }
21
-
22
- if lazy = options.delete(:lazy)
23
- options["data-lazy-load"] = lazy
24
- end
25
-
26
- options_default.merge!(options)
27
-
28
- image_tag_without_retina(source,options_default)
29
-
30
- if options_default[:"data-lazy-load"]
31
- puts "Lazy load detected"
32
- options_default[:lowdpi_src] = options_default.delete(:src)
33
- end
34
- puts "Using custom image Tag!"
35
- puts options_default
36
- tag("img", options_default)
37
- end
38
-
39
- alias_method_chain :image_tag, :retina
40
- end
41
- end
42
- end