class Object

Constants

DEFAULT_ANGLE
DEFAULT_COLOR_STOPS
DEFAULT_HEIGHT
DEFAULT_TYPE
DEFAULT_WIDTH

Public Instance Methods

color2hex(color) click to toggle source
# File lib/inline-gradient.rb, line 42
def color2hex (color)
    <<-DOC
        Color can be:
            - rgba
            - rgb
            - hex
        Use Sass::Script::Color class
    DOC

    color = color.to_s

    if color.start_with?('rgba')
        rgba = color.split(",").map { |s| s.to_i }
        color = Sass::Script::Color.new(rgba[0..2]).with(:alpha => rgba[3])
    elsif color.start_with?('rba')
        rgb = color.split(",").map { |s| s.to_i }
        color = Sass::Script::Color.new(rgba[0..2])
    end

    color
end
distance2px(distance, width) click to toggle source
# File lib/inline-gradient.rb, line 19
def distance2px (distance, width)
    distance = distance.to_s
    if distance.end_with?("%")
        percents = Sass::Script::Number.new(distance.gsub("%", "").strip)
        all_persents = Sass::Script::Number.new(100)
        distance = percents.div(all_persents).times(width)
    else
        distance = Sass::Script::Number.new(distance.to_i)
    end
    distance
end
image2base64(image) click to toggle source
# File lib/inline-gradient.rb, line 64
def image2base64(image)
    image.format = "png"

    begin
        #online mode
        client = TinyPNG::Client.new
        image = client.shrink(image.to_blob)
        image = File.read(image.to_file)
    rescue Exception => e
        #offline mode
        image = image.to_blob
    end

    Base64.encode64(image).gsub("\n","")
end
side2angle(side) click to toggle source
# File lib/inline-gradient.rb, line 31
def side2angle (side)
    side2angle_object = {
         "to_top" => 0,
         "to_right" => 90,
         "to_bottom" => 180,
         "to_left"  => 270
    }
    side_name = side.to_s.strip.gsub("\s", "_")
    side2angle_object[side_name] or side.to_i
end