pass specs again

This commit is contained in:
tdreyno 2009-11-30 11:32:02 -08:00
parent 9033f0b55a
commit 6172790a79
537 changed files with 13118 additions and 2972 deletions

View file

@ -1,6 +1,6 @@
bundle_path "lib/middleman/vendor/gems" bundle_path "lib/middleman/vendor/gems"
bin_path "lib/middleman/vendor/bin" bin_path "lib/middleman/vendor/bin"
disable_rubygems # disable_rubygems
# disable_system_gems # disable_system_gems
gem "shotgun" gem "shotgun"
@ -11,7 +11,7 @@ gem "sinatra-content-for"
gem "rack-test" gem "rack-test"
gem "yui-compressor" gem "yui-compressor"
gem "haml" gem "haml"
gem "compass" gem "compass", "0.10.0.pre1"
gem "json_pure" gem "json_pure"
gem "smusher" gem "smusher"
gem "compass-slickmap" gem "compass-slickmap"

View file

@ -1 +1 @@
0.12.0 0.12.0.pre

View file

@ -6,7 +6,7 @@ ENV['MM_ENV'] = "build"
require File.join(File.dirname(__FILE__), "..", "lib", "middleman") require File.join(File.dirname(__FILE__), "..", "lib", "middleman")
require 'middleman/builder' require 'middleman/builder'
#Middleman::Base.init! # Middleman::Base.init!
Middleman::Builder.init! Middleman::Builder.init!
Middleman::Generators.run_cli(Dir.pwd, 'mm-build', 1, %w(build --force).concat(ARGV)) Middleman::Generators.run_cli(Dir.pwd, 'mm-build', 1, %w(build --force).concat(ARGV))

View file

@ -0,0 +1,8 @@
Feature: Generator
In order to generate static assets for client
Scenario: Copying template files
Given generated directory at "generator-test"
Then template files should exist at "generator-test"
And empty directories should exist at "generator-test"
And cleanup at "generator-test"

View file

@ -1,2 +1,3 @@
ENV["MM_DIR"] = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "spec", "fixtures", "sample")
require File.join(File.dirname(File.dirname(File.dirname(__FILE__))), 'lib', 'middleman') require File.join(File.dirname(File.dirname(File.dirname(__FILE__))), 'lib', 'middleman')
require "rack/test" require "rack/test"

View file

@ -0,0 +1,24 @@
require 'fileutils'
Then /^template files should exist at "([^\"]*)"$/ do |dirname|
target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "spec", "fixtures", dirname)
template_glob = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "lib", "middleman", "template", "*/**/*")
Dir[template_glob].each do |f|
next if File.directory?(f)
File.exists?("#{target}/#{f.split('template/')[1]}").should be_true
end
end
Then /^empty directories should exist at "([^\"]*)"$/ do |dirname|
target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "spec", "fixtures", dirname)
%w(views/stylesheets public/stylesheets public/javascripts public/images).each do |d|
File.exists?("#{target}/#{d}").should be_true
end
end
Then /^cleanup at "([^\"]*)"$/ do |dirname|
target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "spec", "fixtures", dirname)
FileUtils.rm_rf(target)
end

View file

@ -1,10 +1,15 @@
Given /^"([^\"]*)" feature is "([^\"]*)"$/ do |feature, state| Given /^"([^\"]*)" feature is "([^\"]*)"$/ do |feature, state|
enable_or_disable = (state == "enabled") ? :enable : :disable enable_or_disable = (state == "enabled") ? :enable : :disable
Middleman::Base.set :root, File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "spec", "fixtures", "sample")
Middleman::Base.send(enable_or_disable, feature.to_sym) Middleman::Base.send(enable_or_disable, feature.to_sym)
@browser = Rack::Test::Session.new(Rack::MockSession.new(Middleman::Base.new)) @browser = Rack::Test::Session.new(Rack::MockSession.new(Middleman::Base.new))
end end
Given /^generated directory at "([^\"]*)"$/ do |dirname|
target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "spec", "fixtures", dirname)
init_cmd = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "bin", "mm-init")
`cd #{File.dirname(target)} && #{init_cmd} #{File.basename(target)}`
end
When /^I go to "([^\"]*)"$/ do |url| When /^I go to "([^\"]*)"$/ do |url|
@browser.get(url) @browser.get(url)
end end

View file

@ -9,7 +9,7 @@ end
module Middleman module Middleman
class Base < Sinatra::Base class Base < Sinatra::Base
set :app_file, __FILE__ set :app_file, __FILE__
set :root, Dir.pwd set :root, ENV["MM_DIR"] || Dir.pwd
set :reload, false set :reload, false
set :logging, false set :logging, false
set :environment, ENV['MM_ENV'] || :development set :environment, ENV['MM_ENV'] || :development
@ -18,21 +18,23 @@ module Middleman
set :js_dir, "javascripts" set :js_dir, "javascripts"
set :css_dir, "stylesheets" set :css_dir, "stylesheets"
set :images_dir, "images" set :images_dir, "images"
set :fonts_dir, "fonts"
set :build_dir, "build" set :build_dir, "build"
set :http_prefix, nil set :http_prefix, nil
use Rack::ConditionalGet if environment == :development use Rack::ConditionalGet if environment == :development
helpers Sinatra::ContentFor helpers Sinatra::ContentFor
@@features = [] set :features, []
def self.enable(*opts) def self.enable(*opts)
@@features << opts set :features, (self.features << opts).flatten
super super
end end
def self.disable(*opts) def self.disable(*opts)
@@features -= opts current = self.features
current -= opts.flatten
set :features, current
super super
end end
@ -67,14 +69,14 @@ module Middleman
include StaticRender include StaticRender
def self.page(url, options={}, &block) def self.page(url, options={}, &block)
layout = @@layout
layout = options[:layout] if !options[:layout].nil?
get(url) do get(url) do
request.layout = @@layout if (@@layout ||= nil)
request.layout = options[:layout] if options[:layout]
if block_given? if block_given?
yield yield
else else
process_request process_request(layout)
end end
end end
end end
@ -85,21 +87,26 @@ module Middleman
ensure ensure
@@layout = nil @@layout = nil
end end
# This will match all requests not overridden in the project's init.rb # This will match all requests not overridden in the project's init.rb
not_found do not_found do
process_request process_request
end end
def self.enabled?(name)
name = (name.to_s << "?").to_sym
self.respond_to?(name) && self.send(name)
end
private private
def process_request def process_request(layout = :layout)
# Normalize the path and add index if we're looking at a directory # Normalize the path and add index if we're looking at a directory
path = request.path path = request.path
path << options.index_file if path.match(%r{/$}) path << options.index_file if path.match(%r{/$})
path.gsub!(%r{^/}, '') path.gsub!(%r{^/}, '')
# If the enabled renderers succeed, return the content, mime-type and an HTTP 200 # If the enabled renderers succeed, return the content, mime-type and an HTTP 200
if content = render_path(path, (request.layout || :layout)) if content = render_path(path, layout)
content_type media_type(File.extname(path)), :charset => 'utf-8' content_type media_type(File.extname(path)), :charset => 'utf-8'
status 200 status 200
content content
@ -116,13 +123,13 @@ require "middleman/sass"
require "middleman/helpers" require "middleman/helpers"
require "middleman/rack/static" require "middleman/rack/static"
require "middleman/rack/sprockets" require "middleman/rack/sprockets"
require "middleman/rack/minify_javascript"
require "middleman/rack/minify_css"
require "middleman/rack/downstream"
class Middleman::Base class Middleman::Base
helpers Middleman::Helpers helpers Middleman::Helpers
use Middleman::Rack::Static
use Middleman::Rack::Sprockets
# Features disabled by default # Features disabled by default
disable :slickmap disable :slickmap
disable :cache_buster disable :cache_buster
@ -139,17 +146,23 @@ class Middleman::Base
configure :build do configure :build do
end end
def self.new(*args, &bk) # Check for and evaluate local configuration
# Check for and evaluate local configuration local_config = File.join(self.root, "init.rb")
local_config = File.join(self.root, "init.rb") if File.exists? local_config
if File.exists? local_config puts "== Reading: Local config" if logging?
puts "== Reading: Local config" if logging? Middleman::Base.class_eval File.read(local_config)
class_eval File.read(local_config) set :app_file, File.expand_path(local_config)
set :app_file, File.expand_path(local_config) end
end
use Middleman::Rack::Static
use Middleman::Rack::Sprockets
use Middleman::Rack::MinifyJavascript
use Middleman::Rack::MinifyCSS
use Middleman::Rack::Downstream
def self.new(*args, &bk)
# loop over enabled feature # loop over enabled feature
@@features.flatten.each do |feature_name| features.flatten.each do |feature_name|
next unless send(:"#{feature_name}?") next unless send(:"#{feature_name}?")
feature_path = "features/#{feature_name}" feature_path = "features/#{feature_name}"

View file

@ -1,18 +0,0 @@
module Middleman
module Minified
module Sass
include ::Haml::Filters::Base
def render(text)
result = ::Sass::Engine.new(text, ::Sass::Plugin.engine_options).render
if Middleman::Base.respond_to?(:minify_css?) && Middleman::Base.minify_css?
compressor = YUI::CssCompressor.new
compressor.compress(result)
else
result
end
end
end
end
end

View file

@ -0,0 +1,17 @@
module Middleman
module Rack
class Downstream
def initialize(app, options={})
@app = app
end
def call(env)
if env["DOWNSTREAM"]
env["DOWNSTREAM"]
else
@app.call(env)
end
end
end
end
end

View file

@ -0,0 +1,27 @@
begin
require "yui/compressor"
rescue LoadError
puts "YUI-Compressor not available. Install it with: gem install yui-compressor"
end
module Middleman
module Rack
class MinifyCSS
def initialize(app, options={})
@app = app
end
def call(env)
if env["DOWNSTREAM"] && env["PATH_INFO"].match(/\.css$/) && Middleman::Base.enabled?(:minify_css)
compressor = ::YUI::CssCompressor.new
source = env["DOWNSTREAM"][2].is_a?(::Rack::File) ? File.read(env["DOWNSTREAM"][2].path) : env["DOWNSTREAM"][2]
env["DOWNSTREAM"][2] = compressor.compress(source)
env["DOWNSTREAM"][1]["Content-Length"] = ::Rack::Utils.bytesize(env["DOWNSTREAM"][2]).to_s
end
@app.call(env)
end
end
end
end

View file

@ -0,0 +1,29 @@
begin
require "yui/compressor"
rescue LoadError
puts "YUI-Compressor not available. Install it with: gem install yui-compressor"
end
module Middleman
module Rack
class MinifyJavascript
def initialize(app, options={})
@app = app
end
def call(env)
if env["DOWNSTREAM"] && env["PATH_INFO"].match(/\.js$/) && Middleman::Base.enabled?(:minify_javascript)
compressor = ::YUI::JavaScriptCompressor.new(:munge => true)
source = env["DOWNSTREAM"][2].is_a?(::Rack::File) ? File.read(env["DOWNSTREAM"][2].path) : env["DOWNSTREAM"][2]
env["DOWNSTREAM"][2] = compressor.compress(source)
env["DOWNSTREAM"][1]["Content-Length"] = ::Rack::Utils.bytesize(env["DOWNSTREAM"][2]).to_s
end
@app.call(env)
end
end
end
end
# Middleman::Base.supported_formats << "js"

View file

@ -5,12 +5,6 @@ begin
rescue LoadError rescue LoadError
puts "Sprockets not available. Install it with: gem install sprockets" puts "Sprockets not available. Install it with: gem install sprockets"
end end
begin
require "yui/compressor"
rescue LoadError
puts "YUI-Compressor not available. Install it with: gem install yui-compressor"
end
module Middleman module Middleman
module Rack module Rack
@ -20,31 +14,26 @@ module Middleman
end end
def call(env) def call(env)
path = env["PATH_INFO"] path = env["PATH_INFO"]
source = File.join(Middleman::Base.views, path)
source_pub = File.join(Middleman::Base.views, path)
if path.match(/\.js$/) source_view = File.join(Middleman::Base.views, path)
if File.exists?(source) source = "public" if File.exists?(source_pub)
secretary = ::Sprockets::Secretary.new( :root => Middleman::Base.root, source = "views" if File.exists?(source_view)
:source_files => [ File.join("views", path) ],
:load_path => [ File.join("public", Middleman::Base.js_dir), if env["DOWNSTREAM"] && path.match(/\.js$/) && source
File.join("views", Middleman::Base.js_dir) ]) source_file = env["DOWNSTREAM"][2].is_a?(::Rack::File) ? env["DOWNSTREAM"][2].path : env["DOWNSTREAM"][2]
result = secretary.concatenation.to_s secretary = ::Sprockets::Secretary.new( :root => Middleman::Base.root,
else :source_files => [ source_file ],
result = File.read(File.join(Middleman::Base.public, path)) :load_path => [ File.join("public", Middleman::Base.js_dir),
end File.join("views", Middleman::Base.js_dir) ])
env["DOWNSTREAM"][2] = secretary.concatenation.to_s
if Middleman::Base.respond_to?(:minify_javascript?) && Middleman::Base.minify_javascript? env["DOWNSTREAM"][1]["Content-Length"] = ::Rack::Utils.bytesize(env["DOWNSTREAM"][2]).to_s
compressor = ::YUI::JavaScriptCompressor.new(:munge => true)
result = compressor.compress(result)
end
[200, { "Content-Type" => "text/javascript" }, [result]]
else
@app.call(env)
end end
@app.call(env)
end end
end end
end end

View file

@ -3,25 +3,21 @@ module Middleman
class Static class Static
def initialize(app, options={}) def initialize(app, options={})
@app = app @app = app
root = Middleman::Base.public
@file_server = ::Rack::File.new(root)
end
def templatize_js?(path)
path.match(/\.js$/) && Middleman::Base.respond_to?(:minify_javascript?) && Middleman::Base.minify_javascript?
end end
def call(env) def call(env)
path = env["PATH_INFO"] public_file_path = File.join(Middleman::Base.public, env["PATH_INFO"])
file_path = File.join(Middleman::Base.public, path) view_file_path = File.join(Middleman::Base.views, env["PATH_INFO"])
if templatize_js?(path) if File.exists?(public_file_path) && !File.directory?(public_file_path)
@app.call(env) file_server = ::Rack::File.new(Middleman::Base.public)
elsif path.include?("favicon.ico") || (File.exists?(file_path) && !File.directory?(file_path)) env["DOWNSTREAM"] = file_server.call(env)
@file_server.call(env) elsif File.exists?(view_file_path) && !File.directory?(view_file_path)
else file_server = ::Rack::File.new(Middleman::Base.views)
@app.call(env) env["DOWNSTREAM"] = file_server.call(env)
end end
@app.call(env)
end end
end end
end end

View file

@ -23,7 +23,7 @@ module Middleman
css_filename = File.join(location_of_sass_file, request.path_info) css_filename = File.join(location_of_sass_file, request.path_info)
result = sass(path.to_sym, ::Compass.sass_engine_options.merge({ :css_filename => css_filename })) result = sass(path.to_sym, ::Compass.sass_engine_options.merge({ :css_filename => css_filename }))
if options.respond_to?(:minify_css?) && options.minify_css? if options.enabled?(:minify_css?)
YUI::CssCompressor.new.compress(result) YUI::CssCompressor.new.compress(result)
else else
result result
@ -84,7 +84,9 @@ class Middleman::Base
::Compass.configuration do |config| ::Compass.configuration do |config|
config.project_path = self.root config.project_path = self.root
config.sass_dir = File.join(File.basename(self.views), self.css_dir) config.sass_dir = File.join(File.basename(self.views), self.css_dir)
config.output_style = :nested config.output_style = self.enabled?(:minify_css) ? :compressed : :nested
config.line_comments = false
config.fonts_dir = File.join(File.basename(self.public), self.fonts_dir)
config.css_dir = File.join(File.basename(self.public), self.css_dir) config.css_dir = File.join(File.basename(self.public), self.css_dir)
config.images_dir = File.join(File.basename(self.public), self.images_dir) config.images_dir = File.join(File.basename(self.public), self.images_dir)
config.http_images_path = self.http_images_path rescue File.join(self.http_prefix || "/", self.images_dir) config.http_images_path = self.http_images_path rescue File.join(self.http_prefix || "/", self.images_dir)
@ -102,5 +104,6 @@ class Middleman::Base
end end
::Compass.configure_sass_plugin! ::Compass.configure_sass_plugin!
Sass::Plugin.options.update(:line_comments => false)
end end
end end

View file

@ -2,7 +2,7 @@
%html{ :xmlns => "http://www.w3.org/1999/xhtml", "xml:lang" => "en", :lang => "en" } %html{ :xmlns => "http://www.w3.org/1999/xhtml", "xml:lang" => "en", :lang => "en" }
%head %head
%meta{ :content => "text/html; charset=utf-8", "http-equiv" => "Content-Type" } %meta{ :content => "text/html; charset=utf-8", "http-equiv" => "Content-Type" }
// Comment in layout / Comment in layout
= stylesheet_link_tag "site.css" = stylesheet_link_tag "site.css"
:javascript :javascript
// Comment in javascript // Comment in javascript

View file

@ -1,5 +1,5 @@
@import compass.sass @import compass.sass
@import blueprint/screen.sass @import blueprint.sass
!font_color = #2a2a2a !font_color = #2a2a2a
!link_color = #0388a6 !link_color = #0388a6

View file

@ -1,3 +1,3 @@
#!/Users/tdreyno/homebrew/Cellar/ruby/1.9.1-p243/bin/ruby #!/Users/tdreyno/homebrew/Cellar/ruby/1.9.1-p243/bin/ruby
require File.join(File.dirname(__FILE__), "../gems/environment") require File.join(File.dirname(__FILE__), "../gems/environment")
load File.join(File.dirname(__FILE__), "../gems/gems/compass-0.8.17/bin/compass") load File.join(File.dirname(__FILE__), "../gems/gems/compass-0.10.0.pre1/bin/compass")

Binary file not shown.

Binary file not shown.

View file

@ -6,53 +6,111 @@ module Bundler
ENV["PATH"] = "#{dir}/../bin:#{ENV["PATH"]}" ENV["PATH"] = "#{dir}/../bin:#{ENV["PATH"]}"
ENV["RUBYOPT"] = "-r#{file} #{ENV["RUBYOPT"]}" ENV["RUBYOPT"] = "-r#{file} #{ENV["RUBYOPT"]}"
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/httpclient-2.1.5.2/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/extlib-0.9.13/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/httpclient-2.1.5.2/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/extlib-0.9.13/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/highline-1.5.1/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/highline-1.5.1/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/highline-1.5.1/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/highline-1.5.1/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rake-0.8.7/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rake-0.8.7/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/diff-lcs-1.1.2/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/diff-lcs-1.1.2/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/diff-lcs-1.1.2/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/diff-lcs-1.1.2/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/templater-1.0.0/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/templater-1.0.0/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/json-1.2.0/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/json-1.2.0/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/json-1.2.0/ext/json/ext") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/json-1.2.0/ext/json/ext")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/json-1.2.0/ext") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/json-1.2.0/ext")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/json-1.2.0/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/json-1.2.0/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/haml-2.2.14/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/haml-2.2.14/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/extlib-0.9.13/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/extlib-0.9.13/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/configuration-1.1.0/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/configuration-1.1.0/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/compass-0.8.17/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/compass-0.8.17/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/yui-compressor-0.9.1/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/yui-compressor-0.9.1/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/compass-slickmap-0.2.1/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/compass-slickmap-0.2.1/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/smusher-0.4.2/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/smusher-0.4.2/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/json_pure-1.2.0/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/json_pure-1.2.0/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/json_pure-1.2.0/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/json_pure-1.2.0/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/launchy-0.3.3/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/httpclient-2.1.5.2/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/launchy-0.3.3/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/httpclient-2.1.5.2/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-1.0.1/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/rake-0.8.7/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-1.0.1/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/rake-0.8.7/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-test-0.5.2/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-test-0.5.2/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/sprockets-1.0.2/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/sprockets-1.0.2/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/sprockets-1.0.2/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/sprockets-1.0.2/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/templater-1.0.0/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-1.0.1/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/templater-1.0.0/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-1.0.1/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-test-0.5.3/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/rack-test-0.5.3/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/configuration-1.1.0/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/configuration-1.1.0/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/launchy-0.3.3/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/launchy-0.3.3/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/shotgun-0.4/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/shotgun-0.4/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/shotgun-0.4/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/shotgun-0.4/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/sinatra-0.9.4/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/sinatra-0.9.4/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/sinatra-0.9.4/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/sinatra-0.9.4/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/smusher-0.4.2/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/smusher-0.4.2/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/yui-compressor-0.9.1/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/yui-compressor-0.9.1/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/sinatra-content-for-0.2/bin") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/sinatra-content-for-0.2/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/sinatra-content-for-0.2/lib") $LOAD_PATH.unshift File.expand_path("#{dir}/gems/sinatra-content-for-0.2/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/haml-2.2.14/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/haml-2.2.14/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/compass-0.10.0.pre1/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/compass-0.10.0.pre1/lib")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/compass-slickmap-0.2.1/bin")
$LOAD_PATH.unshift File.expand_path("#{dir}/gems/compass-slickmap-0.2.1/lib")
@gemfile = "#{dir}/../../../../Gemfile" @gemfile = "#{dir}/../../../../Gemfile"
require "rubygems"
@bundled_specs = {}
@bundled_specs["extlib"] = eval(File.read("#{dir}/specifications/extlib-0.9.13.gemspec"))
@bundled_specs["extlib"].loaded_from = "#{dir}/specifications/extlib-0.9.13.gemspec"
@bundled_specs["highline"] = eval(File.read("#{dir}/specifications/highline-1.5.1.gemspec"))
@bundled_specs["highline"].loaded_from = "#{dir}/specifications/highline-1.5.1.gemspec"
@bundled_specs["diff-lcs"] = eval(File.read("#{dir}/specifications/diff-lcs-1.1.2.gemspec"))
@bundled_specs["diff-lcs"].loaded_from = "#{dir}/specifications/diff-lcs-1.1.2.gemspec"
@bundled_specs["templater"] = eval(File.read("#{dir}/specifications/templater-1.0.0.gemspec"))
@bundled_specs["templater"].loaded_from = "#{dir}/specifications/templater-1.0.0.gemspec"
@bundled_specs["json"] = eval(File.read("#{dir}/specifications/json-1.2.0.gemspec"))
@bundled_specs["json"].loaded_from = "#{dir}/specifications/json-1.2.0.gemspec"
@bundled_specs["json_pure"] = eval(File.read("#{dir}/specifications/json_pure-1.2.0.gemspec"))
@bundled_specs["json_pure"].loaded_from = "#{dir}/specifications/json_pure-1.2.0.gemspec"
@bundled_specs["httpclient"] = eval(File.read("#{dir}/specifications/httpclient-2.1.5.2.gemspec"))
@bundled_specs["httpclient"].loaded_from = "#{dir}/specifications/httpclient-2.1.5.2.gemspec"
@bundled_specs["rake"] = eval(File.read("#{dir}/specifications/rake-0.8.7.gemspec"))
@bundled_specs["rake"].loaded_from = "#{dir}/specifications/rake-0.8.7.gemspec"
@bundled_specs["sprockets"] = eval(File.read("#{dir}/specifications/sprockets-1.0.2.gemspec"))
@bundled_specs["sprockets"].loaded_from = "#{dir}/specifications/sprockets-1.0.2.gemspec"
@bundled_specs["rack"] = eval(File.read("#{dir}/specifications/rack-1.0.1.gemspec"))
@bundled_specs["rack"].loaded_from = "#{dir}/specifications/rack-1.0.1.gemspec"
@bundled_specs["rack-test"] = eval(File.read("#{dir}/specifications/rack-test-0.5.3.gemspec"))
@bundled_specs["rack-test"].loaded_from = "#{dir}/specifications/rack-test-0.5.3.gemspec"
@bundled_specs["configuration"] = eval(File.read("#{dir}/specifications/configuration-1.1.0.gemspec"))
@bundled_specs["configuration"].loaded_from = "#{dir}/specifications/configuration-1.1.0.gemspec"
@bundled_specs["launchy"] = eval(File.read("#{dir}/specifications/launchy-0.3.3.gemspec"))
@bundled_specs["launchy"].loaded_from = "#{dir}/specifications/launchy-0.3.3.gemspec"
@bundled_specs["shotgun"] = eval(File.read("#{dir}/specifications/shotgun-0.4.gemspec"))
@bundled_specs["shotgun"].loaded_from = "#{dir}/specifications/shotgun-0.4.gemspec"
@bundled_specs["sinatra"] = eval(File.read("#{dir}/specifications/sinatra-0.9.4.gemspec"))
@bundled_specs["sinatra"].loaded_from = "#{dir}/specifications/sinatra-0.9.4.gemspec"
@bundled_specs["smusher"] = eval(File.read("#{dir}/specifications/smusher-0.4.2.gemspec"))
@bundled_specs["smusher"].loaded_from = "#{dir}/specifications/smusher-0.4.2.gemspec"
@bundled_specs["yui-compressor"] = eval(File.read("#{dir}/specifications/yui-compressor-0.9.1.gemspec"))
@bundled_specs["yui-compressor"].loaded_from = "#{dir}/specifications/yui-compressor-0.9.1.gemspec"
@bundled_specs["sinatra-content-for"] = eval(File.read("#{dir}/specifications/sinatra-content-for-0.2.gemspec"))
@bundled_specs["sinatra-content-for"].loaded_from = "#{dir}/specifications/sinatra-content-for-0.2.gemspec"
@bundled_specs["haml"] = eval(File.read("#{dir}/specifications/haml-2.2.14.gemspec"))
@bundled_specs["haml"].loaded_from = "#{dir}/specifications/haml-2.2.14.gemspec"
@bundled_specs["compass"] = eval(File.read("#{dir}/specifications/compass-0.10.0.pre1.gemspec"))
@bundled_specs["compass"].loaded_from = "#{dir}/specifications/compass-0.10.0.pre1.gemspec"
@bundled_specs["compass-slickmap"] = eval(File.read("#{dir}/specifications/compass-slickmap-0.2.1.gemspec"))
@bundled_specs["compass-slickmap"].loaded_from = "#{dir}/specifications/compass-slickmap-0.2.1.gemspec"
def self.add_specs_to_loaded_specs
Gem.loaded_specs.merge! @bundled_specs
end
def self.add_specs_to_index
@bundled_specs.each do |name, spec|
Gem.source_index.add_spec spec
end
end
add_specs_to_loaded_specs
add_specs_to_index
def self.require_env(env = nil) def self.require_env(env = nil)
context = Class.new do context = Class.new do
@ -109,36 +167,11 @@ module Bundler
end end
end end
$" << "rubygems.rb" module Gem
@loaded_stacks = Hash.new { |h,k| h[k] = [] }
module Kernel def source_index.refresh!
def gem(*) super
# Silently ignore calls to gem, since, in theory, everything Bundler.add_specs_to_index
# is activated correctly already.
end end
end end
# Define all the Gem errors for gems that reference them.
module Gem
def self.ruby ; "/Users/tdreyno/homebrew/Cellar/ruby/1.9.1-p243/bin/ruby" ; end
class LoadError < ::LoadError; end
class Exception < RuntimeError; end
class CommandLineError < Exception; end
class DependencyError < Exception; end
class DependencyRemovalException < Exception; end
class GemNotInHomeException < Exception ; end
class DocumentError < Exception; end
class EndOfYAMLException < Exception; end
class FilePermissionError < Exception; end
class FormatException < Exception; end
class GemNotFoundException < Exception; end
class InstallError < Exception; end
class InvalidSpecificationException < Exception; end
class OperationNotSupportedError < Exception; end
class RemoteError < Exception; end
class RemoteInstallationCancelled < Exception; end
class RemoteInstallationSkipped < Exception; end
class RemoteSourceException < Exception; end
class VerificationError < Exception; end
class SystemExitException < SystemExit; end
end

View file

@ -1,6 +1,171 @@
COMPASS CHANGELOG COMPASS CHANGELOG
================= =================
0.10.0.pre1 (November 29, 2009)
--------------------------------
Deprecated in this release:
* The usless blueprint "modules" folder will be removed. Please update your
blueprint imports by removing the modules folder. Deprecation warnings will be
emitted if you use the old imports.
* Blueprint mixins that used to accept a "body selector" argument, are now
deprecated, instead you should pass `true` to them and mix them into
the selector of your choice.
* If you are using the `+opacity` or `+inline-block` mixins, you may need to update your imports.
* In your configuration file, setting `http_images_path` to `:relative` is
deprecated in favor of setting `relative_assets` to `true`
* The YUI framework has been extracted to a plugin.
If you use it, please follow the [installation instructions](http://github.com/chriseppstein/yui-compass-plugin)
Command-Line:
* The compass command-line tool has been re-written to allow be easier to
use and be more flexible. The old command line is still supported at
this time. "compass help" will get you started on using the new
command line syntax.
* Allow specification of a height for the grid image
* For the truly hardcore compass users, you may now create a
compass project using "compass create my_project --bare"
and you'll have a completely bare project created for you with no
sass files provided for you.
* Get stats on your compass project with "compass stats". You'll
need to install the "css_parser" ruby gem to get stats on your
css files.
Configuration:
* The entire configuration infrastructure has been re-written to make it
easier to support the various sources of configuration data (project type,
config file, command line, and hard coded defaults)
* Whether to generate relative links to assets is now controlled by a
separate boolean configuration flag called `relative_assets` in the
configuration file and `--relative-assets` on the command line.
Setting `http_images_path` to `:relative` is deprecated.
* You may now configure the http locations for your project by simply setting
`http_path` for the top level path of the project. You
may also set `http_images_dir`, `http_stylesheets_dir`, and
`http_javascripts_dir` relative to the `http_path` instead of
setting the absolute `http_XXX_path` counterparts.
* You may now configure the fonts directory for your project (fonts_dir).
By default, for standalone projects, it is the "fonts" subdirectory of
your css directory. Rails projects will default to "public/fonts".
Compass Core:
* A new helper function `stylesheet_url(path)` can now be used to refer
to assets that are relative to the css directory.
* Compass sprite mixins are now more flexible and feature rich.
* Fixed the append_selector function to allow comma-delimited selectors
for both arguments instead of just the first
* There is no longer any outline on unstyled links in the :active and :focused states.
* IE6 bug fixes for sticky-footer
* New CSS3 Compatibility Mixins. You can import them all with `@import compass/css3.sass`
* `+opacity(amount)` where amount should be between 0 and 1, where 0 is transparent and 1 is opaque.
* `+opaque` and `+transparent` mixins for convenience. Built on top of the opacity mixin.
* `+border-radius(amount)` as well as the following convenience mixins:
* `+border-top-left-radius(amount)`
* `+border-top-right-radius(amount)`
* `+border-top-right-radius(amount)`,
* `+border-bottom-left-radius(amount)`
* `+border-bottom-right-radius(amount)`
* `+border-top-radius(amount)`
* `+border-right-radius(amount)`
* `+border-left-radius(amount)`
* `+border-bottom-radius(amount)`
* `+box-shadow(!horiz_offset, !vert_offset, !blur, !color)`
* `+box-sizing(!sizing_mode)`
* Column support via the following mixins:
* `+column-count`
* `+column-gap`
* `+column-width`
* `+column-rule-width`
* `+column-rule-style`
* `+column-rule-color`
* `+column-rule`
* `+background-clip(clip)` where clip can be `padding-box` or `border-box`
* `+background-origin(origin)` where origin can be `padding-box`, `border-box`, or `content-box`
* `+background-size(size)` where size is a width and height. E.g. "50% 75%"
* `+font-face` should be mixed into the top level of your document.
Usage Example: `+font-face("this name", font-files("this.woff", "woff", "this.otf", "opentype"), "fonts/this.eot", "thisname")`
* Simple Background Gradient Support:
* `+gradient` - Generic background gradient mixin
* `+radial-gradient` - Radial gradient mixin
* `+linear-gradient` - Linear gradient mixin
* `+h-gradient` - Horizontal linear gradient mixin
* `+v-gradient` - Vertical linear gradient mixin
* `+text-shadow` - Create a text shadow effect.
* Transforms Support:
* `+transform`
* `+scale`
* `+rotate`
* `+translate`
* `+skew`
* Transition Support:
* `+transition-property`
* `+transition-duration`
* `+transition-timing-function`
* `+transition-delay`
* `+transition`
* The import for `+inline-block` has moved from compass/utilities/general/inline_block
to compass/css3/inline_block
* The import for `+opacity` has moved from compass/utilities/general/opacity
to compass/css3/opacity
* Note: If you are using the `+opacity` or `+inline-block` mixins,
you may need to update your imports.
Blueprint:
* Make the primary blueprint mixins easier to use by allowing them to be nested when passing true as the first argument.
The old approach of passing a selector as the first argument is now deprecated in favor of a simple flag to indicate nesting or not.
YUI:
* YUI was upgraded to 2.7.0
* Yahoo has deprecated the YUI CSS framework, as such YUI has been extracted to a plugin.
If you use it, please install it with: `sudo gem install compass-yui`
Extensions:
* Extensions can now be installed locally by unpacking them into a project's
"extensions" directory. Rails projects use "vendor/plugins/compass/extenstions".
* Extensions can deliver html to projects if they like. The html can be in
haml and will be transformed to html and can contain inline, compass-enabled
sass.
* All files can be processed using ERB before being copied into the user's
project.
* Compass extensions can now add support for other application frameworks.
These extensions can help compass understand the project structure of that
framework as well as provide runtime integration for ruby-based apps.
Contact me if you plan to do this -- the first couple times may be a little
rough.
* Compass extensions can now add new command line commands. Contact me if you
plan to do this -- the first couple times may be a little rough.
* Extensions can now provide help documentation just after a project is
created and on demand when the user uses the command line help system.
This can be done via the manifest file or by adding a USAGE.markdown file
at the top level of the framework template.
Miscellaneous:
* The compass configuration object is no longer a singleton, this makes it
possible for other ruby software to manage multiple compass projects at a
time.
* Compass no longer requires rubygems in order to work, this is a ruby
best-practice.
* All sass provided by compass now uses css-style property syntax.
* The command line tool is now tested using the cucumber testing framework.
Many thanks to the following Contributors:
* Brandon Mathis - CSS3 (+opacity, +border-radius) and sprites
* Eric Meyer - CSS3 (+box-shadow, +columns, +box-sizing)
* Jacques Crocker - Merb Compatibility fixes
* Gabriel Mansour - Fixes to +unstyled-link
* John Debs - IE6 Fixes for +sticky-footer
* Brian Johnson - Upgraded to YUI 2.7.0
* Beau Smith - fixing my dyslexia.
0.8.17 (September 24, 2009) 0.8.17 (September 24, 2009)
--------------------------- ---------------------------

View file

@ -3,8 +3,10 @@ A [Sass][sass]-based CSS Meta-Framework that allows you to mix and match any of
- [Compass Core][compass_core_website] - [Wiki Documentation][compass_core_wiki] - [Compass Core][compass_core_website] - [Wiki Documentation][compass_core_wiki]
- [Blueprint][blueprint_website] - [Wiki Documentation][bleuprint_wiki] - [Blueprint][blueprint_website] - [Wiki Documentation][bleuprint_wiki]
- [YUI][yui_website] - [Wiki Documentation][yui_wiki]
- [960][ninesixty_website] - [Wiki Documentation][ninesixty_wiki] - [960][ninesixty_website] - [Wiki Documentation][ninesixty_wiki]
- [Susy][susy_website] - [Wiki Documentation][susy_wiki]
- [YUI][yui_website] - [Wiki Documentation][yui_wiki]
- New frameworks and extensions are [tracked on the wiki][plugins_wiki] as they are created.
- Other frameworks can be added relatively easily. Create your own! - Other frameworks can be added relatively easily. Create your own!
## Compass Provides ## Compass Provides
@ -13,6 +15,13 @@ A [Sass][sass]-based CSS Meta-Framework that allows you to mix and match any of
2. Simple integration with [Ruby-on-Rails][ruby_on_rails_wiki], [Merb][merb_wiki], [StaticMatic][static_matic_wiki], and even [non-ruby application servers][command_line_wiki]. 2. Simple integration with [Ruby-on-Rails][ruby_on_rails_wiki], [Merb][merb_wiki], [StaticMatic][static_matic_wiki], and even [non-ruby application servers][command_line_wiki].
3. Loads of Sass mixins to make building your website a snap. 3. Loads of Sass mixins to make building your website a snap.
## Quick Start
$ (sudo) gem install compass
$ compass create my_compass_project --using blueprint
$ cd my_compass_project
$ compass watch
## More Information ## More Information
Please see the [wiki][wiki] Please see the [wiki][wiki]
@ -25,13 +34,14 @@ Copyright (c) 2008-2009 Christopher M. Eppstein<br>
All Rights Reserved.<br> All Rights Reserved.<br>
Released under a [slightly modified MIT License][license]. Released under a [slightly modified MIT License][license].
[sass]: http://haml.hamptoncatlin.com/docs/rdoc/classes/Sass.html "Syntactically Awesome StyleSheets" [sass]: http://sass-lang.com/ "Syntactically Awesome StyleSheets"
[compass_core_website]: http://github.com/chriseppstein/compass/tree/master/frameworks/compass [compass_core_website]: http://github.com/chriseppstein/compass/tree/master/frameworks/compass
[compass_core_wiki]: http://github.com/chriseppstein/compass/wikis/compass-core-documentation [compass_core_wiki]: http://github.com/chriseppstein/compass/wikis/compass-core-documentation
[blueprint_website]: http://blueprintcss.org/ [blueprint_website]: http://blueprintcss.org/
[bleuprint_wiki]: http://github.com/chriseppstein/compass/wikis/blueprint-documentation [bleuprint_wiki]: http://github.com/chriseppstein/compass/wikis/blueprint-documentation
[yui_website]: http://developer.yahoo.com/yui/grids/ [yui_website]: http://developer.yahoo.com/yui/grids/
[yui_wiki]: http://github.com/chriseppstein/compass/wikis/yui-documentation [yui_wiki]: http://github.com/chriseppstein/compass/wikis/yui-documentation
[plugins_wiki]: http://github.com/chriseppstein/compass/wikis/compass-plugins
[ninesixty_website]: http://960.gs/ [ninesixty_website]: http://960.gs/
[ninesixty_wiki]: http://github.com/chriseppstein/compass/wikis/960gs-documentation [ninesixty_wiki]: http://github.com/chriseppstein/compass/wikis/960gs-documentation
[command_line_wiki]: http://wiki.github.com/chriseppstein/compass/command-line-tool [command_line_wiki]: http://wiki.github.com/chriseppstein/compass/command-line-tool
@ -39,6 +49,8 @@ Released under a [slightly modified MIT License][license].
[ruby_on_rails_wiki]: http://wiki.github.com/chriseppstein/compass/ruby-on-rails-integration [ruby_on_rails_wiki]: http://wiki.github.com/chriseppstein/compass/ruby-on-rails-integration
[merb_wiki]: http://wiki.github.com/chriseppstein/compass/merb-integration [merb_wiki]: http://wiki.github.com/chriseppstein/compass/merb-integration
[static_matic_wiki]: http://wiki.github.com/chriseppstein/compass/staticmatic-integration [static_matic_wiki]: http://wiki.github.com/chriseppstein/compass/staticmatic-integration
[chris_eppstein]: http://acts-as-architect.blogspot.com [chris_eppstein]: http://chriseppstein.github.com
[caring.com]: http://www.caring.com/ "Senior Care Resources" [caring.com]: http://www.caring.com/ "Senior Care Resources"
[license]: http://github.com/chriseppstein/compass/tree/master/LICENSE.markdown [license]: http://github.com/chriseppstein/compass/tree/master/LICENSE.markdown
[susy_website]: http://www.oddbird.net/susy/
[susy_wiki]: http://github.com/chriseppstein/compass/wikis/susy-documentation

View file

@ -2,7 +2,8 @@ if ENV['RUN_CODE_RUN']
# We need to checkout edge haml for the run>code>run test environment. # We need to checkout edge haml for the run>code>run test environment.
if File.directory?("haml") if File.directory?("haml")
Dir.chdir("haml") do Dir.chdir("haml") do
sh "git", "pull" sh "git", "fetch"
sh "git", "reset", "--hard", "origin/stable"
end end
else else
sh "git", "clone", "git://github.com/nex3/haml.git" sh "git", "clone", "git://github.com/nex3/haml.git"
@ -12,7 +13,9 @@ end
require 'rubygems' require 'rubygems'
require 'rake' require 'rake'
require 'lib/compass' $:.unshift File.join(File.dirname(__FILE__), 'lib')
require 'compass'
require 'rcov/rcovtask'
# ----- Default: Testing ------ # ----- Default: Testing ------
@ -23,6 +26,7 @@ require 'fileutils'
Rake::TestTask.new :run_tests do |t| Rake::TestTask.new :run_tests do |t|
t.libs << 'lib' t.libs << 'lib'
t.libs << 'test'
t.libs << 'haml/lib' if ENV["RUN_CODE_RUN"] t.libs << 'haml/lib' if ENV["RUN_CODE_RUN"]
test_files = FileList['test/**/*_test.rb'] test_files = FileList['test/**/*_test.rb']
test_files.exclude('test/rails/*', 'test/haml/*') test_files.exclude('test/rails/*', 'test/haml/*')
@ -45,7 +49,7 @@ begin
gemspec.description = "Compass is a Sass-based Stylesheet Framework that streamlines the creation and maintainance of CSS." gemspec.description = "Compass is a Sass-based Stylesheet Framework that streamlines the creation and maintainance of CSS."
gemspec.authors = ["Chris Eppstein"] gemspec.authors = ["Chris Eppstein"]
gemspec.has_rdoc = false gemspec.has_rdoc = false
gemspec.add_dependency('haml', '>= 2.2.0') gemspec.add_dependency('haml', '>= 2.2.14')
gemspec.files = [] gemspec.files = []
gemspec.files << "CHANGELOG.markdown" gemspec.files << "CHANGELOG.markdown"
gemspec.files << "README.markdown" gemspec.files << "README.markdown"
@ -58,12 +62,13 @@ begin
gemspec.files += Dir.glob("examples/**/*.*") gemspec.files += Dir.glob("examples/**/*.*")
gemspec.files -= Dir.glob("examples/**/*.css") gemspec.files -= Dir.glob("examples/**/*.css")
gemspec.files -= Dir.glob("examples/**/*.html") gemspec.files -= Dir.glob("examples/**/*.html")
gemspec.files += Dir.glob("frameworks/**/*.*") gemspec.files -= Dir.glob("examples/*/extensions/**")
gemspec.files += Dir.glob("lib/**/*") gemspec.files += Dir.glob("lib/**/*")
gemspec.files += Dir.glob("test/**/*.*") gemspec.files += Dir.glob("test/**/*.*")
gemspec.files -= Dir.glob("test/fixtures/stylesheets/*/saved/**/*.*") gemspec.files -= Dir.glob("test/fixtures/stylesheets/*/saved/**/*.*")
gemspec.test_files = Dir.glob("test/**/*.*") gemspec.test_files = Dir.glob("test/**/*.*")
gemspec.test_files -= Dir.glob("test/fixtures/stylesheets/*/saved/**/*.*") gemspec.test_files -= Dir.glob("test/fixtures/stylesheets/*/saved/**/*.*")
gemspec.test_files += Dir.glob("features/**/*.*")
end end
rescue LoadError rescue LoadError
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com" puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
@ -89,6 +94,8 @@ end
task :release => :commit_revision task :release => :commit_revision
task :gem => :build
desc "Compile Examples into HTML and CSS" desc "Compile Examples into HTML and CSS"
task :examples do task :examples do
linked_haml = "tests/haml" linked_haml = "tests/haml"
@ -105,6 +112,10 @@ task :examples do
next unless File.directory?(example) next unless File.directory?(example)
puts "\nCompiling #{example}" puts "\nCompiling #{example}"
puts "=" * "Compiling #{example}".length puts "=" * "Compiling #{example}".length
Dir.chdir example do
load "bootstrap.rb" if File.exists?("bootstrap.rb")
Compass::Exec::SwitchUI.new(["--force"]).run!
end
# compile any haml templates to html # compile any haml templates to html
FileList["#{example}/**/*.haml"].each do |haml_file| FileList["#{example}/**/*.haml"].each do |haml_file|
basename = haml_file[0..-6] basename = haml_file[0..-6]
@ -114,9 +125,6 @@ task :examples do
output.write(engine.render) output.write(engine.render)
output.close output.close
end end
Dir.chdir example do
Compass::Exec::Compass.new(["--force"]).run!
end
end end
end end
@ -125,3 +133,34 @@ namespace :git do
sh "git", "clean", "-fdx" sh "git", "clean", "-fdx"
end end
end end
require 'cucumber/rake/task'
namespace :rcov do
Cucumber::Rake::Task.new(:cucumber) do |t|
t.rcov = true
t.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/,features\/ --aggregate coverage.data}
t.rcov_opts << %[-o "coverage"]
end
Rcov::RcovTask.new(:units) do |rcov|
rcov.libs << 'lib'
rcov.libs << 'haml/lib' if ENV["RUN_CODE_RUN"]
test_files = FileList['test/**/*_test.rb']
test_files.exclude('test/rails/*', 'test/haml/*')
rcov.pattern = test_files
rcov.output_dir = 'coverage'
rcov.verbose = true
rcov.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/,features\/ --aggregate coverage.data}
rcov.rcov_opts << %[-o "coverage" --sort coverage]
end
desc "Run both specs and features to generate aggregated coverage"
task :all do |t|
rm "coverage.data" if File.exist?("coverage.data")
Rake::Task["rcov:units"].invoke
Rake::Task["rcov:cucumber"].invoke
end
end

View file

@ -0,0 +1,5 @@
---
:patch: 0
:major: 0
:minor: 10
:build: pre1

View file

@ -0,0 +1,26 @@
#!/usr/bin/env ruby
# The compass command line utility
# This allows compass to run easily from a git checkout without install.
def fallback_load_path(path)
retried = false
begin
yield
rescue LoadError
unless retried
$: << path
retried = true
retry
end
raise
end
end
fallback_load_path(File.join(File.dirname(__FILE__), '..', 'lib')) do
require 'compass'
require 'compass/exec'
end
command_line_class = Compass::Exec::Helpers.select_appropriate_command_line_ui(ARGV)
exit command_line_class.new(ARGV).run!

View file

@ -32,7 +32,7 @@
%a{ :href => "parts/grid.html" } %a{ :href => "parts/grid.html" }
Grid Grid
%td %td
%a{ :href => "../../frameworks/blueprint/stylesheets/blueprint/modules/_grid.sass" } %a{ :href => "../../frameworks/blueprint/stylesheets/blueprint/_grid.sass" }
grid.sass grid.sass
%td %td
Tests classes provided by the grid module. Tests classes provided by the grid module.
@ -41,7 +41,7 @@
%a{ :href => "parts/elements.html" } %a{ :href => "parts/elements.html" }
Typography Typography
%td %td
%a{ :href => "../../frameworks/blueprint/stylesheets/blueprint/modules/_typography.sass" } %a{ :href => "../../frameworks/blueprint/stylesheets/blueprint/_typography.sass" }
typography.sass typography.sass
%td %td
Tests HTML elements which gets set in the typography module. Tests HTML elements which gets set in the typography module.
@ -50,7 +50,7 @@
%a{ :href => "parts/forms.html" } %a{ :href => "parts/forms.html" }
Forms Forms
%td %td
%a{ :href => "../../frameworks/blueprint/stylesheets/blueprint/modules/_form.sass" } %a{ :href => "../../frameworks/blueprint/stylesheets/blueprint/_form.sass" }
form.sass form.sass
%td %td
Tests classes and default look provided by the form module. Tests classes and default look provided by the form module.

View file

@ -184,6 +184,8 @@
%input#q.text{ :type => "text", :name => "q", :value => "Field with class .text" } %input#q.text{ :type => "text", :name => "q", :value => "Field with class .text" }
.span-2.last .span-2.last
%input.button{ :type => "submit", :value => "submit" } %input.button{ :type => "submit", :value => "submit" }
/ WTF This doesn't render correctly without some space.
&nbsp;
%hr %hr
%p %p
%a{ :href => "http://validator.w3.org/check?uri=referer" } %a{ :href => "http://validator.w3.org/check?uri=referer" }

View file

@ -1,5 +1,5 @@
@import blueprint.sass @import blueprint.sass
@import blueprint/modules/scaffolding.sass @import blueprint/scaffolding.sass
@import compass/reset.sass @import compass/reset.sass
+blueprint +blueprint

View file

@ -31,13 +31,13 @@
%a{ :href => "plugins/fancy_type.html" } %a{ :href => "plugins/fancy_type.html" }
Fancy Type Fancy Type
%td %td
%a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/modules/_grid.sass" } %a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/_grid.sass" }
grid.sass grid.sass
, ,
%a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/modules/_typography.sass" } %a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/_typography.sass" }
typography.sass typography.sass
, ,
%a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/modules/_fancy_type.sass" } %a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/_fancy_type.sass" }
fancy_type.sass fancy_type.sass
%td %td
A simple sample page, with common elements and fancy type. A simple sample page, with common elements and fancy type.
@ -46,7 +46,7 @@
%a{ :href => "plugins/buttons.html" } %a{ :href => "plugins/buttons.html" }
Buttons Buttons
%td %td
%a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/modules/_buttons.sass" } %a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/_buttons.sass" }
buttons.sass buttons.sass
%td %td
A simple page, showing links and buttons styled using the button plugin. A simple page, showing links and buttons styled using the button plugin.
@ -55,7 +55,7 @@
%a{ :href => "plugins/link_icons.html" } %a{ :href => "plugins/link_icons.html" }
Link Icons Link Icons
%td %td
%a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/modules/_link_icons.sass" } %a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/_link_icons.sass" }
link_icons.sass link_icons.sass
%td %td
A simple page, showing links icons. A simple page, showing links icons.
@ -64,7 +64,7 @@
%a{ :href => "plugins/rtl.html" } %a{ :href => "plugins/rtl.html" }
RTL RTL
%td %td
%a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/modules/_rtl.sass" } %a{ :href => "http://github.com/chriseppstein/compass/blob/master/frameworks/blueprint/stylesheets/blueprint/_rtl.sass" }
rtl.sass rtl.sass
%td %td
A simple page, showing a right-to-left grid layout. A simple page, showing a right-to-left grid layout.

View file

@ -1,5 +1,5 @@
@import compass/utilities/general/float.sass @import compass/utilities/general/float.sass
@import blueprint/modules/buttons.sass @import blueprint/buttons.sass
// //
Use the following HTML code to place the buttons on your site: Use the following HTML code to place the buttons on your site:
@ -23,7 +23,7 @@ a.button
+anchor-button("left") +anchor-button("left")
// All the button color mixins take 4 optional arguments: // All the button color mixins take 4 optional arguments:
// font color, background color, border color, border highlight color // font color, background color, border color, border highlight color
// the first three default to constants set in blueprint/modules/buttons.sass // the first three default to constants set in blueprint/buttons.sass
// the last one defaults to a shade lighter than the border color. // the last one defaults to a shade lighter than the border color.
+button-colors +button-colors
+button-hover-colors +button-hover-colors

View file

@ -1,4 +1,4 @@
@import blueprint/modules/link_icons.sass @import blueprint/link_icons.sass
// This turns link icons on for all links. You can change the scoping selector from // This turns link icons on for all links. You can change the scoping selector from
// body to something more specific if you prefer. // body to something more specific if you prefer.

View file

@ -1,7 +1,7 @@
@import blueprint.sass @import blueprint.sass
@import blueprint/modules/fancy_type.sass @import blueprint/fancy_type.sass
@import blueprint/modules/scaffolding.sass @import blueprint/scaffolding.sass
@import blueprint/modules/rtl.sass @import blueprint/rtl.sass
@import compass/reset.sass @import compass/reset.sass

View file

@ -1,6 +1,6 @@
@import blueprint.sass @import blueprint.sass
@import blueprint/modules/fancy_type.sass @import blueprint/fancy_type.sass
@import blueprint/modules/scaffolding.sass @import blueprint/scaffolding.sass
@import compass/reset.sass @import compass/reset.sass

View file

@ -0,0 +1,4 @@
@import blueprint.sass
body.bp
+blueprint-ie(true)

View file

@ -0,0 +1,4 @@
@import blueprint.sass
body.bp
+blueprint-print(true)

View file

@ -1,4 +1,5 @@
@import blueprint.sass @import blueprint.sass
@import compass/reset.sass @import compass/reset.sass
+blueprint("body.bp") body.bp
+blueprint(true)

View file

@ -37,7 +37,7 @@
%hr.space %hr.space
#main #main
%p %p
%img#test{ :src => "test.jpg", :alt => "test" } %img#test.left{ :src => "test.jpg", :alt => "test" }
Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet,
%em %em
consectetuer adipiscing elit consectetuer adipiscing elit

View file

@ -1,15 +1,14 @@
@import blueprint.sass @import blueprint.sass
@import blueprint/modules/fancy_type.sass @import blueprint/fancy_type.sass
@import blueprint/modules/scaffolding.sass @import blueprint/scaffolding.sass
@import blueprint/modules/liquid.sass @import blueprint/liquid.sass
@import compass/reset.sass @import compass/reset.sass
.container .container
+container +container
+blueprint-typography("body.blueprint")
body.blueprint body.blueprint
+blueprint-typography(true)
+blueprint-scaffolding-body +blueprint-scaffolding-body
hr hr
+colruler +colruler
@ -67,4 +66,4 @@ body#sample
+reset-font +reset-font
+alt +alt
#parting-thought #parting-thought
+alt +alt

View file

@ -1,11 +1,10 @@
@import blueprint.sass @import blueprint.sass
@import blueprint/modules/fancy_type.sass @import blueprint/fancy_type.sass
@import blueprint/modules/scaffolding.sass @import blueprint/scaffolding.sass
@import compass/reset.sass @import compass/reset.sass
+blueprint-typography("body.blueprint")
body.blueprint body.blueprint
+blueprint-typography(true)
+blueprint-scaffolding-body +blueprint-scaffolding-body
.container .container
+container +container
@ -68,4 +67,4 @@ body#sample
+reset-font +reset-font
+alt +alt
#parting-thought #parting-thought
+alt +alt

View file

@ -0,0 +1,3 @@
require File.join(File.dirname(__FILE__), '..', 'downloader')
install_from_github('chriseppstein', 'yui-compass-plugin', 'yui')

View file

@ -0,0 +1,70 @@
=yui-base
body
:margin 10px
h1
:font-size 138.5%
h2
:font-size 123.1%
h3
:font-size 108%
h1, h2, h3
:margin 1em 0
h1,h2, h3, h4, h5, h6, strong, dt
:font-weight bold
optgroup
:font-weight normal
abbr, acronym
:border-bottom 1px dotted #000
:cursor help
em
:font-style italic
del
:text-decoration line-through
blockquote, ul, ol, dl
:margin 1em
ol,ul,dl
:margin-left 2em
ol li
:list-style decimal outside
ul li
:list-style disc outside
dl dd
:margin-left 1em
th, td
:border 1px solid #000
:padding .5em
th
:font-weight bold
:text-align center
caption
:margin-bottom .5em
:text-align center
sup
:vertical-align super
sub
:vertical-align sub
p, fieldset, table, pre
:margin-bottom 1em
button, input[type="checkbox"], input[type="radio"], input[type="reset"], input[type="submit"]
padding: 1px

View file

@ -13,7 +13,7 @@
// +font-size(18px) // +font-size(18px)
// .big .bigger // .big .bigger
// +font-size(18px, 16px) // +font-size(18px, 16px)
// //
// For more information see the table found at http://developer.yahoo.com/yui/fonts/#fontsize // For more information see the table found at http://developer.yahoo.com/yui/fonts/#fontsize
=font-size(!size, !base_font_size = !yui_default_base_font_size) =font-size(!size, !base_font_size = !yui_default_base_font_size)
:font-size= percentage(!size / !base_font_size) :font-size= percentage(!size / !base_font_size)
@ -28,6 +28,13 @@
:*font-size small :*font-size small
:*font x-small :*font x-small
select,
input,
button,
textarea,
button
:font 99% arial,helvetica,clean,sans-serif
table table
:font-size inherit :font-size inherit
:font 100% :font 100%

Some files were not shown because too many files have changed in this diff Show more