thumbnail_hover_effect 0.0.1 → 0.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.
@@ -0,0 +1,38 @@
1
+ # encoding: utf-8
2
+
3
+ class <%= get_class_name %> < ThumbnailHoverEffect::Image
4
+
5
+ # Provide a default URL as a default if there hasn't been a correct one
6
+ # IMAGE_NOT_FOUND = '/images/no-image-found.jpg'
7
+
8
+ # returns the html template
9
+ def get_template(effect_number)
10
+ "
11
+ <div class=\"view-<%= get_file_name %> effect0#{effect_number ||= <%= default_effect %>}\">
12
+ <div>
13
+ <span style=\"position: absolute;right: 5px;top: 10px;\" class=\"icon-thumbs-up\">##likes##</span>
14
+ <span style=\"position: absolute;right: 5px;top: 30px;\"class=\"icon-thumbs-down\">##dislikes##</span>
15
+ <a style=\"position: absolute;bottom: 10px;right: 5px;\" href=\"##url##\">
16
+ <span aria-hidden=\"true\" class=\"icon-print\"></span>
17
+ </a>
18
+ </div>
19
+ <div class=\"slice\" style=\"background-image: url(##url##);\">
20
+ <span class=\"overlay\"></span>
21
+ <div class=\"slice\" style=\"background-image: url(##url##);\">
22
+ <span class=\"overlay\"></span>
23
+ <div class=\"slice\" style=\"background-image: url(##url##);\">
24
+ <span class=\"overlay\"></span>
25
+ <div class=\"slice\" style=\"background-image: url(##url##);\">
26
+ <span class=\"overlay\"></span>
27
+ <div class=\"slice\" style=\"background-image: url(##url##);\">
28
+ <span class=\"overlay\"></span>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ "
36
+ end
37
+
38
+ end
@@ -0,0 +1,70 @@
1
+ class ThumbnailGenerator < Rails::Generators::Base
2
+ source_root File.expand_path('../templates', __FILE__)
3
+
4
+ desc 'Generates ruby class and css classes for thumbnail 3D hover effects'
5
+
6
+ argument :name, type: 'string', required: true,
7
+ desc: 'specifies generated ruby class and css class names'
8
+
9
+ class_option :width, type: 'numeric', default: 300, aliases: '-w',
10
+ desc: 'specifies image width'
11
+
12
+ class_option :height, type: 'numeric', default: 216, aliases: '-h',
13
+ desc: 'specifies image height'
14
+
15
+ class_option :effects, type: 'string', default: '1,2,3,4', aliases: '-e',
16
+ desc: 'specifies for which of the effects css classes are generated'
17
+
18
+ class_option :icons, type: 'boolean', default: true, aliases: '-i',
19
+ desc: 'disables icons files generation'
20
+
21
+ def generate_layout
22
+
23
+ # core functionality
24
+ template 'thumbnail.rb', "app/thumbnails/#{get_file_name}.rb"
25
+ template 'effects.css.sass.erb', "vendor/assets/stylesheets/thumbnails/#{get_file_name}/#{get_file_name}.css.sass"
26
+
27
+ # additional functionality - generation font icons
28
+ if options[:icons]
29
+ copy_file 'fonts/fontello.css',
30
+ 'vendor/assets/stylesheets/thumbnails/fontello.css'
31
+ copy_file 'fonts/fontello.eot',
32
+ 'vendor/assets/fonts/thumbnails/fontello.eot'
33
+ copy_file 'fonts/fontello.svg',
34
+ 'vendor/assets/fonts/thumbnails/fontello.svg'
35
+ copy_file 'fonts/fontello.ttf',
36
+ 'vendor/assets/fonts/thumbnails/fontello.ttf'
37
+ copy_file 'fonts/fontello.woff',
38
+ 'vendor/assets/fonts/thumbnails/fontello.woff'
39
+ end
40
+ end
41
+
42
+ private
43
+
44
+ def get_file_name
45
+ name.underscore
46
+ end
47
+
48
+ def get_class_name
49
+ name.camelize
50
+ end
51
+
52
+ def get_width
53
+ options[:width]
54
+ end
55
+
56
+ def get_height
57
+ options[:height]
58
+ end
59
+
60
+ def should_be_effect_rendered(param)
61
+ effects = (options[:effects].split(',') & ('1'...'5').to_a).any? ? options[:effects].split(',') : ('1'...'5').to_a
62
+ effects.include? param.to_s
63
+ end
64
+
65
+ def default_effect
66
+ min_effect = options[:effects].split(',').min.to_s
67
+ (('1'...'5').to_a.include? min_effect) ? min_effect : '1'
68
+ end
69
+
70
+ end
@@ -0,0 +1,11 @@
1
+ # This gem contains an engine class which inherits from Rails::Engine. By doing this, Rails is
2
+ # informed that the directory for this gem may contain assets and the app/assets, lib/assets
3
+ # and vendor/assets directories of this engine are added to the search path of Sprockets.
4
+ # Official reference: http://guides.rubyonrails.org/asset_pipeline.html#adding-assets-to-your-gems
5
+
6
+ module ThumbnailHoverEffect
7
+ class Engine < ::Rails::Engine
8
+ end
9
+ end
10
+
11
+
@@ -0,0 +1,72 @@
1
+ module ThumbnailHoverEffect
2
+ #
3
+ class Image
4
+
5
+ # image use if such is not specified
6
+ IMAGE_NOT_FOUND = '/images/no-image-found.jpg'
7
+
8
+ # class attributes
9
+ attr_accessor :url, # image source url
10
+ :attributes # data attributes
11
+
12
+ # validating input parameters and using defaults if necessary
13
+ def initialize(parameters = {})
14
+ @url = parameters.fetch(:url, IMAGE_NOT_FOUND)
15
+ @attributes = parameters.fetch(:attributes, {})
16
+
17
+ @url = IMAGE_NOT_FOUND unless File.extname(@url) =~/^(.png|.gif|.jpg|.jpeg|.bmp)$/
18
+ @attributes = {} unless @attributes.is_a?(Hash)
19
+ end
20
+
21
+ # rendering image without thumbnail effect
22
+ def to_s
23
+ "<img src=#{@url} #{@attributes.map{|key,value| "data-#{key}=#{value}" }.join(' ')}/>"
24
+ end
25
+
26
+ # rendering image with thumbnail effect applied
27
+ def render(parameters = {})
28
+
29
+ has_thumbnail = parameters.fetch(:has_thumbnail, true)
30
+ effect_number = parameters.fetch(:effect_number, false)
31
+ thumbnail_template = self.get_template(effect_number)
32
+
33
+
34
+ if has_thumbnail
35
+ @attributes.map { |key, value| thumbnail_template["###{key}##"] &&= value }
36
+ thumbnail_template.gsub!('##url##', @url).html_safe
37
+ else
38
+ self.to_s.html_safe
39
+ end
40
+ end
41
+
42
+ # returns the html template
43
+ def get_template(effect_number)
44
+ "
45
+ <div class=\"view-image effect0#{1 unless effect_number}\">
46
+ <div>
47
+ <span class=\"icon-emo-happy\">##title##</span>
48
+ <span class=\"icon-emo-happy\">##description##</span>
49
+ <a href=\"##url##\"><span aria-hidden=\"true\" class=\"icon-emo-happy\"></span></a>
50
+ </div>
51
+ <div class=\"slice\" style=\"background-image: url(##url##);\">
52
+ <span class=\"overlay\"></span>
53
+ <div class=\"slice\" style=\"background-image: url(##url##);\">
54
+ <span class=\"overlay\"></span>
55
+ <div class=\"slice\" style=\"background-image: url(##url##);\">
56
+ <span class=\"overlay\"></span>
57
+ <div class=\"slice\" style=\"background-image: url(##url##);\">
58
+ <span class=\"overlay\"></span>
59
+ <div class=\"slice\" style=\"background-image: url(##url##);\">
60
+ <span class=\"overlay\"></span>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ "
68
+ end
69
+
70
+
71
+ end
72
+ end
@@ -1,3 +1,3 @@
1
1
  module ThumbnailHoverEffect
2
- VERSION = "0.0.1"
2
+ VERSION = '0.1.0'
3
3
  end
@@ -1,4 +1,6 @@
1
- require "thumbnail_hover_effect/version"
1
+ require 'thumbnail_hover_effect/engine'
2
+ require 'thumbnail_hover_effect/image'
3
+ require 'thumbnail_hover_effect/version'
2
4
 
3
5
  module ThumbnailHoverEffect
4
6
  # Your code goes here...
@@ -4,14 +4,15 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'thumbnail_hover_effect/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "thumbnail_hover_effect"
7
+ spec.name = 'thumbnail_hover_effect'
8
8
  spec.version = ThumbnailHoverEffect::VERSION
9
- spec.authors = ["gotqn"]
10
- spec.email = ["george_27@abv.bg"]
11
- spec.description = 'Simple image hover effects generators for your application'
12
- spec.summary = ''
13
- spec.homepage = ""
14
- spec.license = "MIT"
9
+ spec.authors = ['gotqn']
10
+ spec.email = ['george_27@abv.bg']
11
+ spec.description = 'Simple image hover css 3D effects for your application'
12
+ spec.summary = 'Introduces simple image thumbnail 3D image hover effects using CSS 3D transforms.
13
+ The idea is inspired by http://tympanus.net/codrops/2012/06/18/3d-thumbnail-hover-effects/.'
14
+ spec.homepage = 'https://github.com/gotqn/thumbnail_hover_effect'
15
+ spec.license = 'MIT'
15
16
 
16
17
  spec.files = `git ls-files`.split($/)
17
18
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thumbnail_hover_effect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - gotqn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-04 00:00:00.000000000 Z
11
+ date: 2014-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,7 +38,7 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description: Simple image hover effects generators for your application
41
+ description: Simple image hover css 3D effects for your application
42
42
  email:
43
43
  - george_27@abv.bg
44
44
  executables: []
@@ -46,20 +46,34 @@ extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
48
  - .gitignore
49
+ - .idea/.name
50
+ - .idea/.rakeTasks
49
51
  - .idea/encodings.xml
50
52
  - .idea/misc.xml
51
53
  - .idea/modules.xml
52
54
  - .idea/scopes/scope_settings.xml
53
55
  - .idea/thumbnail_hover_effect.iml
54
56
  - .idea/vcs.xml
57
+ - CHANGEDLOG.md
55
58
  - Gemfile
56
59
  - LICENSE.txt
57
60
  - README.md
58
61
  - Rakefile
62
+ - lib/generators/templates/effects.css.sass.erb
63
+ - lib/generators/templates/fonts/fontello.css
64
+ - lib/generators/templates/fonts/fontello.eot
65
+ - lib/generators/templates/fonts/fontello.svg
66
+ - lib/generators/templates/fonts/fontello.ttf
67
+ - lib/generators/templates/fonts/fontello.woff
68
+ - lib/generators/templates/thumbnail.rb
69
+ - lib/generators/thumbnail_generator.rb
59
70
  - lib/thumbnail_hover_effect.rb
71
+ - lib/thumbnail_hover_effect/engine.rb
72
+ - lib/thumbnail_hover_effect/image.rb
60
73
  - lib/thumbnail_hover_effect/version.rb
61
74
  - thumbnail_hover_effect.gemspec
62
- homepage: ''
75
+ - vendor/assets/images/no-image-found.jpg
76
+ homepage: https://github.com/gotqn/thumbnail_hover_effect
63
77
  licenses:
64
78
  - MIT
65
79
  metadata: {}
@@ -82,5 +96,6 @@ rubyforge_project:
82
96
  rubygems_version: 2.0.3
83
97
  signing_key:
84
98
  specification_version: 4
85
- summary: ''
99
+ summary: Introduces simple image thumbnail 3D image hover effects using CSS 3D transforms.
100
+ The idea is inspired by http://tympanus.net/codrops/2012/06/18/3d-thumbnail-hover-effects/.
86
101
  test_files: []