Move the lemonade files around to adhere to compass conventions.
This commit is contained in:
parent
6a44d58b7c
commit
62157f6a7e
@ -4,7 +4,7 @@ end
|
|||||||
%w(
|
%w(
|
||||||
selectors enumerate urls display
|
selectors enumerate urls display
|
||||||
inline_image image_size constants gradient_support
|
inline_image image_size constants gradient_support
|
||||||
font_files lists colors trig
|
font_files lists colors trig sprites
|
||||||
).each do |func|
|
).each do |func|
|
||||||
require "compass/sass_extensions/functions/#{func}"
|
require "compass/sass_extensions/functions/#{func}"
|
||||||
end
|
end
|
||||||
@ -22,6 +22,7 @@ module Sass::Script::Functions
|
|||||||
include Compass::SassExtensions::Functions::Lists
|
include Compass::SassExtensions::Functions::Lists
|
||||||
include Compass::SassExtensions::Functions::Colors
|
include Compass::SassExtensions::Functions::Colors
|
||||||
include Compass::SassExtensions::Functions::Trig
|
include Compass::SassExtensions::Functions::Trig
|
||||||
|
include Compass::SassExtensions::Functions::Sprites
|
||||||
end
|
end
|
||||||
|
|
||||||
# Wierd that this has to be re-included to pick up sub-modules. Ruby bug?
|
# Wierd that this has to be re-included to pick up sub-modules. Ruby bug?
|
||||||
|
@ -1,19 +1,78 @@
|
|||||||
module Sass::Script::Functions
|
module Compass::SassExtensions::Functions::Sprites
|
||||||
|
|
||||||
|
class SpriteInfo < Sass::Script::Literal
|
||||||
|
attr_reader :sprite
|
||||||
|
attr_reader :sprite_item
|
||||||
|
attr_reader :type
|
||||||
|
|
||||||
|
def initialize(type, sprite, sprite_item = nil, position_x = nil, position_y_shift = nil)
|
||||||
|
super(nil)
|
||||||
|
@type = type
|
||||||
|
@sprite = sprite
|
||||||
|
@sprite_item = sprite_item
|
||||||
|
@position_x = position_x
|
||||||
|
@position_y_shift = position_y_shift
|
||||||
|
end
|
||||||
|
|
||||||
|
def to_s(opts = {})
|
||||||
|
case @type
|
||||||
|
when :position
|
||||||
|
position
|
||||||
|
when :url
|
||||||
|
url
|
||||||
|
when :both
|
||||||
|
pos = position
|
||||||
|
if pos == '0 0'
|
||||||
|
url
|
||||||
|
else
|
||||||
|
"#{url} #{pos}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def to_sass
|
||||||
|
to_s
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def position
|
||||||
|
x = @position_x || 0
|
||||||
|
if @sprite_item[:index] == 0 and (@position_y_shift.nil? or @position_y_shift.value == 0)
|
||||||
|
"#{x.inspect} 0"
|
||||||
|
else
|
||||||
|
expression = "Compass::Sprites.sprites['#{@sprite[:file]}'][:images][#{@sprite_item[:index]}][:y].unary_minus"
|
||||||
|
expression << ".plus(Sass::Script::Number.new(#{@position_y_shift.value}, ['px']))" if @position_y_shift
|
||||||
|
"#{x.inspect} <%= #{expression} %>"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def url
|
||||||
|
if defined?(Compass)
|
||||||
|
compass = Class.new.extend(Compass::SassExtensions::Functions::Urls)
|
||||||
|
compass.image_url(Sass::Script::String.new(@sprite[:file])).to_s
|
||||||
|
else
|
||||||
|
"url('/#{@sprite[:file]}')"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
def sprite_url(file)
|
def sprite_url(file)
|
||||||
dir, name, basename = extract_names(file)
|
dir, name, basename = extract_names(file)
|
||||||
sprite = sprite_for("#{dir}#{name}")
|
sprite = sprite_for("#{dir}#{name}")
|
||||||
Sass::Script::SpriteInfo.new(:url, sprite)
|
SpriteInfo.new(:url, sprite)
|
||||||
end
|
end
|
||||||
|
|
||||||
def sprite_position(file, position_x = nil, position_y_shift = nil, margin_top_or_both = nil, margin_bottom = nil)
|
def sprite_position(file, position_x = nil, position_y_shift = nil, margin_top_or_both = nil, margin_bottom = nil)
|
||||||
sprite, sprite_item = sprite_url_and_position(file, position_x, position_y_shift, margin_top_or_both, margin_bottom)
|
sprite, sprite_item = sprite_url_and_position(file, position_x, position_y_shift, margin_top_or_both, margin_bottom)
|
||||||
Sass::Script::SpriteInfo.new(:position, sprite, sprite_item, position_x, position_y_shift)
|
SpriteInfo.new(:position, sprite, sprite_item, position_x, position_y_shift)
|
||||||
end
|
end
|
||||||
|
|
||||||
def sprite_image(file, position_x = nil, position_y_shift = nil, margin_top_or_both = nil, margin_bottom = nil)
|
def sprite_image(file, position_x = nil, position_y_shift = nil, margin_top_or_both = nil, margin_bottom = nil)
|
||||||
sprite, sprite_item = sprite_url_and_position(file, position_x, position_y_shift, margin_top_or_both, margin_bottom)
|
sprite, sprite_item = sprite_url_and_position(file, position_x, position_y_shift, margin_top_or_both, margin_bottom)
|
||||||
Sass::Script::SpriteInfo.new(:both, sprite, sprite_item, position_x, position_y_shift)
|
SpriteInfo.new(:both, sprite, sprite_item, position_x, position_y_shift)
|
||||||
end
|
end
|
||||||
alias_method :sprite_img, :sprite_image
|
alias_method :sprite_img, :sprite_image
|
||||||
|
|
||||||
@ -94,7 +153,7 @@ private
|
|||||||
image[:margin_top] = margin_top if margin_top > image[:margin_top]
|
image[:margin_top] = margin_top if margin_top > image[:margin_top]
|
||||||
image[:margin_bottom] = margin_bottom if margin_bottom > image[:margin_bottom]
|
image[:margin_bottom] = margin_bottom if margin_bottom > image[:margin_bottom]
|
||||||
else
|
else
|
||||||
width, height = ImageProperties.new(file).size
|
width, height = Compass::SassExtensions::Functions::ImageSize::ImageProperties.new(file).size
|
||||||
x = (position_x and position_x.numerator_units == %w(%)) ? position_x : Sass::Script::Number.new(0)
|
x = (position_x and position_x.numerator_units == %w(%)) ? position_x : Sass::Script::Number.new(0)
|
||||||
y = sprite[:height] + margin_top
|
y = sprite[:height] + margin_top
|
||||||
y = Sass::Script::Number.new(y, y == 0 ? [] : ['px'])
|
y = Sass::Script::Number.new(y, y == 0 ? [] : ['px'])
|
@ -1,3 +1,3 @@
|
|||||||
%w(traversal).each do |patch|
|
%w(traversal sprites).each do |patch|
|
||||||
require "compass/sass_extensions/monkey_patches/#{patch}"
|
require "compass/sass_extensions/monkey_patches/#{patch}"
|
||||||
end
|
end
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
require 'chunky_png'
|
require 'chunky_png'
|
||||||
require 'compass/sprites/sprite_info'
|
|
||||||
|
|
||||||
module Compass::Sprites
|
module Compass::Sprites
|
||||||
@@sprites = {}
|
@@sprites = {}
|
||||||
@ -42,13 +41,6 @@ module Compass::Sprites
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def extend_sass!
|
|
||||||
require 'sass'
|
|
||||||
require 'sass/plugin'
|
|
||||||
require 'compass/sprites/sass_functions'
|
|
||||||
require 'compass/sprites/sass_extension'
|
|
||||||
end
|
|
||||||
|
|
||||||
def sprite_changed?(sprite_name, sprite)
|
def sprite_changed?(sprite_name, sprite)
|
||||||
existing_sprite_info = YAML.load(File.read(sprite_info_file(sprite_name)))
|
existing_sprite_info = YAML.load(File.read(sprite_info_file(sprite_name)))
|
||||||
existing_sprite_info[:sprite] != sprite or existing_sprite_info[:timestamps] != timestamps(sprite)
|
existing_sprite_info[:sprite] != sprite or existing_sprite_info[:timestamps] != timestamps(sprite)
|
||||||
@ -114,14 +106,3 @@ module Compass::Sprites
|
|||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
if defined?(ActiveSupport) and Sass::Util.has?(:public_method, ActiveSupport, :on_load)
|
|
||||||
# Rails 3.0
|
|
||||||
ActiveSupport.on_load :before_initialize do
|
|
||||||
Compass::Sprites.extend_sass!
|
|
||||||
end
|
|
||||||
else
|
|
||||||
Compass::Sprites.extend_sass!
|
|
||||||
end
|
|
||||||
|
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
require 'sass/script/literal'
|
|
||||||
|
|
||||||
module Sass::Script
|
|
||||||
|
|
||||||
class SpriteInfo < Literal
|
|
||||||
attr_reader :sprite
|
|
||||||
attr_reader :sprite_item
|
|
||||||
attr_reader :type
|
|
||||||
|
|
||||||
def initialize(type, sprite, sprite_item = nil, position_x = nil, position_y_shift = nil)
|
|
||||||
super(nil)
|
|
||||||
@type = type
|
|
||||||
@sprite = sprite
|
|
||||||
@sprite_item = sprite_item
|
|
||||||
@position_x = position_x
|
|
||||||
@position_y_shift = position_y_shift
|
|
||||||
end
|
|
||||||
|
|
||||||
def to_s(opts = {})
|
|
||||||
case @type
|
|
||||||
when :position
|
|
||||||
position
|
|
||||||
when :url
|
|
||||||
url
|
|
||||||
when :both
|
|
||||||
pos = position
|
|
||||||
if pos == '0 0'
|
|
||||||
url
|
|
||||||
else
|
|
||||||
"#{url} #{pos}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def to_sass
|
|
||||||
to_s
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def position
|
|
||||||
x = @position_x || 0
|
|
||||||
if @sprite_item[:index] == 0 and (@position_y_shift.nil? or @position_y_shift.value == 0)
|
|
||||||
"#{x.inspect} 0"
|
|
||||||
else
|
|
||||||
expression = "Compass::Sprites.sprites['#{@sprite[:file]}'][:images][#{@sprite_item[:index]}][:y].unary_minus"
|
|
||||||
expression << ".plus(Sass::Script::Number.new(#{@position_y_shift.value}, ['px']))" if @position_y_shift
|
|
||||||
"#{x.inspect} <%= #{expression} %>"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def url
|
|
||||||
if defined?(Compass)
|
|
||||||
compass = Class.new.extend(Compass::SassExtensions::Functions::Urls)
|
|
||||||
compass.image_url(Sass::Script::String.new(@sprite[:file])).to_s
|
|
||||||
else
|
|
||||||
"url('/#{@sprite[:file]}')"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
@ -1,9 +1,9 @@
|
|||||||
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
||||||
|
|
||||||
describe Sass::Script::SpriteInfo do
|
describe Compass::SassExtensions::Functions::Sprites::SpriteInfo do
|
||||||
|
|
||||||
def sprite_info(*args)
|
def sprite_info(*args)
|
||||||
Sass::Script::SpriteInfo.new(*args).to_s
|
Compass::SassExtensions::Functions::Sprites::SpriteInfo.new(*args).to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
Loading…
Reference in New Issue
Block a user