class ResizeCss
Attributes
base_size[R]
new_size[R]
options[R]
size_prefix[R]
sprite_name[R]
stylesheet_folder[R]
stylesheet_name[R]
template_lang[R]
Public Class Methods
new(base_size, new_size, options = {})
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 12 def initialize base_size, new_size, options = {} @base_size = base_size @new_size = new_size @options = options @stylesheet_folder = options[:stylesheet_folder] if options[:stylesheet_folder] @stylesheet_name = options[:stylesheet_name] if options[:stylesheet_name] @sprite_name = options[:sprite_name] if options[:sprite_name] resize = "convert #{sprite_name}-#{base_size}.png -resize #{factor * 100}%" new_file_name = "#{sprite_name}-#{new_size}" command_resize = "#{resize} #{new_file_name}.png" command_resize_light = "#{resize} #{lighten} #{new_file_name}_light.png" command_resize_dark = "#{resize} #{darken} #{new_file_name}_dark.png" command_resize_gray = "#{resize} #{grayscale} #{new_file_name}_gray.png" if auto_exec? Open3.popen3("pwd") do |stdin, stdout, e, t| base_dir = stdout Open3.popen3 "cd #{images_dir}" Open3.popen3 command_resize Open3.popen3 command_resize_light if lighten? Open3.popen3 command_resize_dark if darken? Open3.popen3 command_resize_gray if gray? Open3.popen3 "cd #{base_dir}" end else puts "Use ImageMagick to resize #{sprite_name} sprites:" puts command_resize puts command_resize_light if lighten? puts command_resize_dark if darken? puts command_resize_gray if gray? end end
Public Instance Methods
auto_exec?()
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 74 def auto_exec? options[:auto_exec] end
blank?(txt)
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 110 def blank? txt !txt || txt.empty? end
darken()
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 66 def darken "-level 0%,100%,0.5" end
darken?()
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 54 def darken? options[:dark] end
execute(options = {:ext => 'css', :semi => false})
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 114 def execute options = {:ext => 'css', :semi => false} semi = options[:semi] ? '-semi': '' ext = options[:ext] ? options[:ext] : 'css' src_file_path = File.expand_path "#{stylesheet_full_path}/#{stylesheet_name}#{base_size}#{semi}.#{ext}#{template_ext}", File.dirname(__FILE__) target_file_path = File.expand_path "#{stylesheet_full_path}/#{stylesheet_name}#{new_size}#{semi}.#{ext}#{template_ext}", File.dirname(__FILE__) puts "src: #{src_file_path} -> #{target_file_path}" lines = File.open(src_file_path).readlines img_exp = "#{sprite_name}-#{base_size}" replace_img = "#{sprite_name}-#{new_size}" # puts "img_exp: #{img_exp}" # puts "replace_img: #{replace_img}" repositioned_css = lines.map do |line| pos_match = line.match /.+position:\s-?(\d+)(px)?\s-?(\d+)(px)?/ # puts "pos_match: #{line} - #{pos_match.inspect}" img_match = line.match /#{img_exp}/ new_line = line.sub(/#{img_exp}/, replace_img) if img_match new_line = replace_pos pos_match, line if pos_match # puts "line: #{line} -> #{new_line}" new_line ||= line new_line end.join("") puts "Write new CSS:" puts repositioned_css File.open(target_file_path, 'w') do |f| f.puts repositioned_css.gsub ".#{size_prefix}#{base_size}", ".#{size_prefix}#{new_size}" end end
factor()
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 149 def factor @factor ||= new_size / base_size.to_f end
gray?()
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 58 def gray? options[:gray] end
grayscale()
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 70 def grayscale "-colorspace Gray" end
lighten()
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 62 def lighten "-level 0%,100%,2.0" end
lighten?()
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 50 def lighten? options[:light] end
replace_pos(pos_match, line)
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 153 def replace_pos pos_match, line pos_x = pos_match[1].to_i new_pos_x = (pos_x * factor).to_i.to_s pos_y = pos_match[3].to_i new_pos_y = (pos_y * factor).to_i.to_s # puts "new pos: #{new_pos_x}, #{new_pos_y}" rest = line[6..-1] rest = rest.sub /#{pos_x}/, new_pos_x.to_s rest = rest.sub /#{pos_y}/, new_pos_y.to_s rest = rest.gsub /#{base_size}px;/, "#{new_size}px;" # first = line[0..10].sub(".f#{base_size}", ".f#{newsize}") line[0..5] + rest end
stylesheet_full_path()
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 90 def stylesheet_full_path @stylesheet_full_path ||= File.join(stylesheet_path, stylesheet_folder) end
stylesheet_path()
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 82 def stylesheet_path "../../../vendor/assets/stylesheets" end
template_ext()
click to toggle source
# File lib/pictos-icons/tools/resize_css.rb, line 106 def template_ext !blank?(template_lang) ? ".#{template_lang}" : '' end