After a long, long time searching
the solution :
i d'ont know if it is the best one, but it works for me
1 ) follow the tutorial http://www.sencha.com/learn/theming/
and be sure to install compass 0.11.5 (the same version as in the tutorial )
Code:
gem uninstall compass
gem uninstall sass
gem install compass --version 0.11.5
if you do
Code:
gem install compass
it will be the last version of compass that will be installed
2) copy all the content of util.rbs in config.rbs
Code:
# $ext_path: This should be the path of where the ExtJS SDK is installed
# Generally this will be in a lib/extjs folder in your applications root
# <root>/lib/extjs
$ext_path = "../../lib/extjs"
# sass_path: the directory your Sass files are in. THIS file should also be in the Sass folder
# Generally this will be in a resources/sass folder
# <root>/resources/sass
sass_path = File.dirname(__FILE__)
# css_path: the directory you want your CSS files to be.
# Generally this is a folder in the parent directory of your Sass files
# <root>/resources/css
css_path = File.join(sass_path, "..", "css")
# output_style: The output style for your compiled CSS
# nested, expanded, compact, compressed
# More information can be found here http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#output_style
output_style = :expanded
# We need to load in the Ext4 themes folder, which includes all it's default styling, images, variables and mixins
load File.join(File.dirname(__FILE__), $ext_path, 'resources', 'themes')
module ExtJS4
module SassExtensions
module Functions
module Utils
def parsebox(list, n)
assert_type n, :Number
if !n.int?
raise ArgumentError.new("List index #{n} must be an integer")
elsif n.to_i < 1
raise ArgumentError.new("List index #{n} must be greater than or equal to 1")
elsif n.to_i > 4
raise ArgumentError.new("A box string can't contain more then 4")
end
new_list = list.clone.to_a
size = new_list.size
if n.to_i >= size
if size == 1
new_list[1] = new_list[0]
new_list[2] = new_list[0]
new_list[3] = new_list[0]
elsif size == 2
new_list[2] = new_list[0]
new_list[3] = new_list[1]
elsif size == 3
new_list[3] = new_list[1]
end
end
new_list.to_a[n.to_i - 1]
end
def parseint(value)
Sass::Script::Number.new(value.to_i)
end
# Returns a background-image property for a specified images for the theme
def theme_image(theme, path, without_url = false, relative = false)
path = path.value
theme = theme.value
without_url = (without_url.class == FalseClass) ? without_url : without_url.value
relative_path = "../images/"
if relative
if relative.class == Sass::Script::String
relative_path = relative.value
relative = true
elsif relative.class == FalseClass || relative.class == TrueClass
relative = relative
else
relative = relative.value
end
else
relative = false
end
if relative
image_path = File.join(relative_path, theme, path)
else
images_path=relative_path
image_path = File.join(images_path, path)
end
if !without_url
url = "url('#{image_path}')"
else
url = "#{image_path}"
end
Sass::Script::String.new(url)
end
def theme_image_exists(path)
result = false
where_to_look = path.value.gsub('../../resources', 'resources')
if where_to_look && FileTest.exists?("#{where_to_look}")
result = true
end
return Sass::Script::Bool.new(result)
end
end
end
end
end
module Sass::Script::Functions
include ExtJS4::SassExtensions::Functions::Utils
end
and then



