require 'jacket'
require 'color-schemer'
require 'breakpoint'
require 'breakpoint-slicer'
require 'animate'
require 'singularitygs'
require 'singularity-extras'

# Require any additional compass plugins here.
on_sprite_saved do |filename|
  if File.exists?(filename)
    FileUtils.cp filename, filename.gsub(%r{-s[a-z0-9]{10}\.png$}, '.png')
  end
end

# Replace in stylesheets generated references to sprites
# by their counterparts without the hash uniqueness.
on_stylesheet_saved do |filename|
  if File.exists?(filename)
    css = File.read filename
    File.open(filename, 'w+') do |f|
      f << css.gsub(%r{-s[a-z0-9]{10}\.png}, '.png')
    end
  end
end

Sass::Script::Number.precision = 7
# Modify SASS 
module Sass::Script::Functions

  # Ensure maximum useful precision
  def precision(*args)
    if !args[0].nil?
      precision = args[0]
      assert_type precision, :Number
      Sass::Script::Number.precision = precision.value
    end
    Sass::Script::Number.new(Sass::Script::Number.precision)
  end

  declare :precision, :args => [:number]

  # Remove Unit
  # line-height: remove_unit(25px)
  # font-size: one_unit(100%)
  # height: assert_unit(5,rem)

  # return a number without its unit
  def remove_unit(number)
    assert_type number, :Number
    Sass::Script::Number.new(number.value)
  end
  declare :remove_unit, [:number]

  # return 1 * the unit of the input number
  def one_unit(number)
    assert_type number, :Number
    Sass::Script::Number.new(1, ["#{number.unit_str}"])
  end
  declare :one_unit, [:number]

  # force the unit of a given number
  def assert_unit(number, unit)
    assert_type number, :Number
    assert_type unit, :String
    Sass::Script::Number.new(number.value, ["#{unit}"])
  end
  declare :assert_unit, [:number]
  
end



# Set this to the root of your project when deployed:
relative_assets    = true
http_path          = "app"
sass_dir           = "lib/sass"
css_dir            = "app/components/css"
images_dir         = "app/components/img"
fonts_dir          = "app/components/fonts"
# sass_options = {:debug_info => true }
line_comments      = false
asset_cache_buster :none
output_style       = :compressed


# You can select your preferred output style here (can be overridden via the command line):
# output_style = :expanded or :nested or :compact or :compressed

# To enable relative paths to assets via compass helper functions. Uncomment:
# relative_assets = true



