compass 0.10.5.pre.1 → 0.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,4 +2,4 @@
2
2
  :major: 0
3
3
  :minor: 10
4
4
  :patch: 5
5
- :build: pre.1
5
+ #:build: pre.1
@@ -258,16 +258,22 @@ Feature: Command Line
258
258
  Given I am using the existing project in test/fixtures/stylesheets/compass
259
259
  When I run: compass stats
260
260
  Then I am told statistics for each file:
261
- | Filename | Rules | Properties | Mixins Defs | Mixins Used | CSS Rules | CSS Properties |
262
- | sass/box.sass | 15 | 0 | 0 | 19 | 15 | 59 |
263
- | sass/gradients.sass | 19 | 0 | 0 | 19 | 19 | 19 |
264
- | sass/image_size.sass | 4 | 8 | 0 | 0 | 4 | 8 |
265
- | sass/layout.sass | 0 | 0 | 0 | 1 | 5 | 10 |
266
- | sass/print.sass | 0 | 0 | 0 | 2 | 61 | 61 |
267
- | sass/reset.sass | 4 | 1 | 0 | 2 | 190 | 664 |
268
- | sass/utilities.scss | 2 | 0 | 0 | 2 | 5 | 11 |
269
- | Total.* | 44 | 9 | 0 | 45 | 299 | 832 |
270
-
261
+ | Filename | Rules | Properties | Mixins Defs | Mixins Used | CSS Rules | CSS Properties |
262
+ | sass/border_radius.scss | 3 | 0 | 0 | 3 | 3 | 18 |
263
+ | sass/box.sass | 15 | 0 | 0 | 19 | 15 | 59 |
264
+ | sass/fonts.sass | 0 | 0 | 0 | 1 | 1 | 2 |
265
+ | sass/gradients.sass | 19 | 0 | 0 | 19 | 19 | 19 |
266
+ | sass/image_size.sass | 4 | 8 | 0 | 0 | 4 | 8 |
267
+ | sass/images.scss | 3 | 3 | 0 | 0 | 3 | 3 |
268
+ | sass/layout.sass | 0 | 0 | 0 | 1 | 5 | 10 |
269
+ | sass/legacy_clearfix.scss | 2 | 0 | 0 | 2 | 5 | 11 |
270
+ | sass/lists.scss | 9 | 0 | 0 | 9 | 35 | 111 |
271
+ | sass/print.sass | 0 | 0 | 0 | 2 | 61 | 61 |
272
+ | sass/reset.sass | 4 | 1 | 0 | 2 | 190 | 664 |
273
+ | sass/utilities.scss | 2 | 0 | 0 | 2 | 3 | 9 |
274
+ | ------------------------- | ----- | ---------- | -------------- | ----------- | --------- | -------------- |
275
+ | Total.* | 61 | 12 | 0 | 60 | 344 | 975 |
276
+
271
277
  @listframeworks
272
278
  Scenario: List frameworks registered with compass
273
279
  When I run: compass frameworks
@@ -34,7 +34,7 @@ Given %r{^I am in the parent directory$} do
34
34
  Dir.chdir ".."
35
35
  end
36
36
 
37
- Given /^I'm in a newly created rails project: (.+)$/ do |project_name|
37
+ Given %r{^I'm in a newly created rails project: (.+)$} do |project_name|
38
38
  @cleanup_directories << project_name
39
39
  begin
40
40
  generate_rails_app project_name
@@ -6,6 +6,6 @@ require 'compass/commands/registry'
6
6
  %w(base generate_grid_background help list_frameworks project_base
7
7
  update_project watch_project create_project imports installer_command
8
8
  print_version project_stats stamp_pattern validate_project
9
- write_configuration interactive).each do |lib|
9
+ write_configuration interactive unpack_extension).each do |lib|
10
10
  require "compass/commands/#{lib}"
11
11
  end
@@ -24,7 +24,7 @@ module Compass
24
24
  def configure!
25
25
  add_project_configuration
26
26
  Compass.add_configuration(options, "command_line")
27
- Compass.discover_extensions!
27
+ Compass.discover_extensions! unless skip_extension_discovery?
28
28
  end
29
29
 
30
30
  def add_project_configuration
@@ -88,6 +88,10 @@ module Compass
88
88
  path.index(File::SEPARATOR) == 0
89
89
  end
90
90
 
91
+ def skip_extension_discovery?
92
+ false
93
+ end
94
+
91
95
  end
92
96
  end
93
97
  end
@@ -0,0 +1,117 @@
1
+ require 'compass/commands/project_base'
2
+ require 'fileutils'
3
+
4
+ module Compass
5
+ module Commands
6
+ module ExtensionOptionsParser
7
+ def set_options(opts)
8
+ opts.banner = %Q{
9
+ Usage: compass unpack EXTENSION
10
+
11
+ Description:
12
+ Copy an extension into your extensions folder for easy access to the source code.
13
+ This makes it easier to peruse the source in unfamiliar projects. It is not recommended
14
+ that you change other extensions' source -- this makes it hard to take updates from
15
+ the original author. The following extensions are available:
16
+
17
+ FRAMEWORKS
18
+
19
+ Options:
20
+ }.strip.split("\n").map{|l| l.gsub(/^ {0,10}/,'')}.join("\n")
21
+ opts.banner.gsub!(/FRAMEWORKS/,Compass::Frameworks.pretty_print(true))
22
+ super
23
+ end
24
+ end
25
+
26
+ class UnpackExtension < ProjectBase
27
+
28
+ register :unpack
29
+
30
+ def initialize(working_path, options)
31
+ super
32
+ assert_project_directory_exists!
33
+ end
34
+
35
+ def perform
36
+ framework = Compass::Frameworks[options[:framework]]
37
+ files = Dir["#{framework.path}/**/*"]
38
+ extension_dir = File.join(Compass.configuration.extensions_path, framework.name)
39
+ FileUtils.rm_rf extension_dir
40
+ FileUtils.mkdir_p extension_dir
41
+ write_file File.join(extension_dir, "DO_NOT_MODIFY"), readme(framework)
42
+ files.each do |f|
43
+ next if File.directory?(f)
44
+ ending = f[(framework.path.size+1)..-1]
45
+ destination = File.join(extension_dir, ending)
46
+ FileUtils.mkdir_p(File.dirname(destination))
47
+ copy f, destination
48
+ end
49
+ puts "\nYou have unpacked \"#{framework.name}\""
50
+ puts
51
+ puts readme(framework)
52
+ end
53
+
54
+ def readme(framework)
55
+ %Q{| This is a copy of the "#{framework.name}" extension.
56
+ |
57
+ | It now overrides the original which was found here:
58
+ |
59
+ | #{framework.path}
60
+ |
61
+ | Unpacking an extension is useful when you need to easily peruse the
62
+ | extension's source. You might find yourself tempted to change the
63
+ | stylesheets here. If you do this, you'll find it harder to take
64
+ | updates from the original author. Sometimes this seems like a good
65
+ | idea at the time, but in a few months, you'll probably regret it.
66
+ |
67
+ | In the future, if you take an update of this framework, you'll need to run
68
+ |
69
+ | compass unpack #{framework.name}
70
+ |
71
+ | again or remove this unpacked extension.
72
+ |}.gsub(/^\s*\| ?/,"")
73
+ end
74
+
75
+ def skip_extension_discovery?
76
+ true
77
+ end
78
+
79
+ class << self
80
+
81
+ def option_parser(arguments)
82
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
83
+ parser.extend(Compass::Exec::GlobalOptionsParser)
84
+ parser.extend(Compass::Exec::ProjectOptionsParser)
85
+ parser.extend(ExtensionOptionsParser)
86
+ end
87
+
88
+ def usage
89
+ option_parser([]).to_s
90
+ end
91
+
92
+ def description(command)
93
+ "Copy an extension into your extensions folder."
94
+ end
95
+
96
+ def parse!(arguments)
97
+ parser = option_parser(arguments)
98
+ parser.parse!
99
+ parse_arguments!(parser, arguments)
100
+ parser.options
101
+ end
102
+
103
+ def parse_arguments!(parser, arguments)
104
+ if arguments.size == 1
105
+ parser.options[:framework] = arguments.shift
106
+ elsif arguments.size == 0
107
+ raise Compass::Error, "Please specify an extension to unpack."
108
+ else
109
+ raise Compass::Error, "Too many arguments were specified."
110
+ end
111
+ end
112
+
113
+ end
114
+
115
+ end
116
+ end
117
+ end
@@ -7,10 +7,11 @@ module Compass
7
7
 
8
8
  class Framework
9
9
  attr_accessor :name
10
+ attr_accessor :path
10
11
  attr_accessor :templates_directory, :stylesheets_directory
11
12
  def initialize(name, *arguments)
12
13
  options = arguments.last.is_a?(Hash) ? arguments.pop : {}
13
- path = options[:path] || arguments.shift
14
+ self.path = path = options[:path] || arguments.shift
14
15
  @name = name
15
16
  @templates_directory = options[:templates_directory] || File.join(path, 'templates')
16
17
  @stylesheets_directory = options[:stylesheets_directory] || File.join(path, 'stylesheets')
@@ -97,7 +98,7 @@ module Compass
97
98
  end
98
99
  end
99
100
 
100
- def pretty_print
101
+ def pretty_print(skip_patterns = false)
101
102
  result = ""
102
103
  max = Compass::Frameworks::ALL.inject(0) do |gm, framework|
103
104
  fm = framework.template_directories.inject(0) do |lm,pattern|
@@ -108,12 +109,14 @@ module Compass
108
109
  Compass::Frameworks::ALL.each do |framework|
109
110
  next if framework.name =~ /^_/
110
111
  result << " * #{framework.name}\n"
111
- framework.template_directories.each do |pattern|
112
- result << " - #{framework.name}/#{pattern}".ljust(max)
113
- if description = framework.manifest(pattern).description
114
- result << " - #{description}"
112
+ unless skip_patterns
113
+ framework.template_directories.each do |pattern|
114
+ result << " - #{framework.name}/#{pattern}".ljust(max)
115
+ if description = framework.manifest(pattern).description
116
+ result << " - #{description}"
117
+ end
118
+ result << "\n"
115
119
  end
116
- result << "\n"
117
120
  end
118
121
  end
119
122
  result
@@ -11,7 +11,7 @@ module Compass
11
11
  def visit(node)
12
12
  self.prop_count += 1 if node.is_a?(Sass::Tree::PropNode) && !node.children.any?
13
13
  if node.is_a?(Sass::Tree::RuleNode)
14
- self.rule_count += node.rule.map{|r| r.split(/,/)}.flatten.compact.size
14
+ self.rule_count += node.rule.reject{|r| r.is_a?(Sass::Script::Node)}.map{|r| r.split(/,/)}.flatten.compact.size
15
15
  end
16
16
  self.mixin_def_count += 1 if node.is_a?(Sass::Tree::MixinDefNode)
17
17
  self.mixin_count += 1 if node.is_a?(Sass::Tree::MixinNode)
@@ -4,6 +4,6 @@ begin
4
4
  rescue LoadError
5
5
  raise Compass::MissingDependency, %Q{The Compass CSS Validator could not be loaded. Please install it:
6
6
 
7
- sudo gem install chriseppstein-compass-validator --source http://gems.github.com/
7
+ sudo gem install compass-validator
8
8
  }
9
9
  end
@@ -19,13 +19,18 @@ module Compass
19
19
  end
20
20
  else
21
21
  begin
22
- require 'rails/version'
23
- require 'rails_generator'
24
- require 'rails_generator/scripts/generate'
25
- Rails::Generator::Base.use_application_sources!
26
- capture_output do
27
- Rails::Generator::Base.logger = Rails::Generator::SimpleLogger.new $stdout
28
- Rails::Generator::Scripts::Generate.new.run([name], :generator => 'app')
22
+ require 'action_pack/version'
23
+ if ActionPack::VERSION::MAJOR >= 3
24
+ `rails new #{name}`
25
+ else
26
+ require 'rails/version'
27
+ require 'rails_generator'
28
+ require 'rails_generator/scripts/generate'
29
+ Rails::Generator::Base.use_application_sources!
30
+ capture_output do
31
+ Rails::Generator::Base.logger = Rails::Generator::SimpleLogger.new $stdout
32
+ Rails::Generator::Scripts::Generate.new.run([name], :generator => 'app')
33
+ end
29
34
  end
30
35
  rescue LoadError
31
36
  Kernel.exit!(2)
metadata CHANGED
@@ -1,15 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: compass
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1923831843
5
- prerelease: true
4
+ hash: 61
5
+ prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 10
9
9
  - 5
10
- - pre
11
- - 1
12
- version: 0.10.5.pre.1
10
+ version: 0.10.5
13
11
  platform: ruby
14
12
  authors:
15
13
  - Chris Eppstein
@@ -19,7 +17,7 @@ autorequire:
19
17
  bindir: bin
20
18
  cert_chain: []
21
19
 
22
- date: 2010-08-27 00:00:00 -07:00
20
+ date: 2010-08-29 00:00:00 -07:00
23
21
  default_executable: compass
24
22
  dependencies:
25
23
  - !ruby/object:Gem::Dependency
@@ -321,7 +319,6 @@ files:
321
319
  - frameworks/compass/stylesheets/compass/css3/_text-shadow.scss
322
320
  - frameworks/compass/stylesheets/compass/css3/_transform.scss
323
321
  - frameworks/compass/stylesheets/compass/css3/_transition.scss
324
- - frameworks/compass/stylesheets/compass/layout/_floated.scss
325
322
  - frameworks/compass/stylesheets/compass/layout/_sticky-footer.scss
326
323
  - frameworks/compass/stylesheets/compass/reset/_utilities.scss
327
324
  - frameworks/compass/stylesheets/compass/utilities/_general.scss
@@ -392,6 +389,7 @@ files:
392
389
  - lib/compass/commands/project_stats.rb
393
390
  - lib/compass/commands/registry.rb
394
391
  - lib/compass/commands/stamp_pattern.rb
392
+ - lib/compass/commands/unpack_extension.rb
395
393
  - lib/compass/commands/update_project.rb
396
394
  - lib/compass/commands/validate_project.rb
397
395
  - lib/compass/commands/watch_project.rb
@@ -587,14 +585,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
587
585
  required_rubygems_version: !ruby/object:Gem::Requirement
588
586
  none: false
589
587
  requirements:
590
- - - ">"
588
+ - - ">="
591
589
  - !ruby/object:Gem::Version
592
- hash: 25
590
+ hash: 3
593
591
  segments:
594
- - 1
595
- - 3
596
- - 1
597
- version: 1.3.1
592
+ - 0
593
+ version: "0"
598
594
  requirements: []
599
595
 
600
596
  rubyforge_project:
@@ -1,111 +0,0 @@
1
- @import "compass/utilities/general/float";
2
- @import "compass/utilities/general/clearfix";
3
-
4
- // Direction of the float
5
- $compass-float-direction: left !default;
6
- // Set to 0 to disable gutters
7
- $compass-gutter-width: 10px !default;
8
- $compass-left-gutter-width: ceil($compass-gutter-width / 2);
9
- $compass-right-gutter-width: floor($compass-gutter-width / 2);
10
-
11
- // A floated element is generally assigned a width to achieve table-less alignment
12
- @mixin floated($side : $compass-float-direction,
13
- $left-gutter : $compass-left-gutter-width,
14
- $right-gutter : $compass-right-gutter-width) {
15
- @include float($side);
16
- @if $left-gutter > 0 {
17
- margin-left: $left-gutter;
18
- }
19
- @if $right-gutter > 0 {
20
- margin-right: $right-gutter;
21
- }
22
- }
23
-
24
- // Remove the gutter for a particular side of a floated element
25
- // pass `both` to disable the gutter on both sides.
26
- @mixin gutterless($side) {
27
- margin-#{$side}: 0;
28
- @if $side == both {
29
- margin-#{opposite-position($side)}: 0;
30
- }
31
- }
32
-
33
- // provides the base structure required to make an element pushable in
34
- // the specified direction (which defaults to `right`).
35
- @mixin pushable($side: opposite-position($compass-float-direction)) {
36
- @include float($side);
37
- position: relative;
38
- }
39
-
40
- // provides the base structure required to make an element pullable in
41
- // the specified direction (which defaults to `left`).
42
- @mixin pullable($side : $compass-float-direction) {
43
- @include float($side);
44
- position: relative;
45
- }
46
-
47
- // push an element in the specified direction by the specified amount.
48
- @mixin pushed($side, $amount) {
49
- margin-#{$side}: -$amount;
50
- margin-#{opposite-position($side)}: $amount;
51
- }
52
-
53
- // pull an element in the specified directionn by the specified amount.
54
- @mixin pulled($side, $amount) {
55
- margin-#{$side}: $amount;
56
- }
57
-
58
- // Take an element out of the float if it had been made floated already.
59
- // This might be applied to an element to allow it to fill the remainder
60
- // of a row, in which case you'll probably want to make that element also
61
- // a float container.
62
- @mixin sunken {
63
- float: none;
64
- width: auto;
65
- margin-left: auto;
66
- margin-right: auto;
67
- }
68
-
69
- // make an element centered within its fixed-width parent.
70
- // Can be applied to a top level float container to create
71
- // a centered layout within the window.
72
- @mixin centered {
73
- margin-left: auto;
74
- margin-right: auto;
75
- }
76
-
77
- @mixin act-like-blueprint {
78
- .clearfixed { @include pie-clearfix; }
79
- .column { @include floated(left, 0, $compass-gutter-width); }
80
- .last { @include gutterless(right); }
81
- .float-container { @extend .clearfixed; }
82
- .container { @extend .float-container; @include centered; }
83
- .push { @include pushable; }
84
- .pull { @include pullable; }
85
- }
86
-
87
- @mixin act-like-960 {
88
- .clearfixed { @include pie-clearfix; }
89
- .grid { @include floated(left, $compass-gutter-left-width, $compass-gutter-right-width); }
90
- .alpha { @include gutterless(left); }
91
- .omega { @include gutterless(right); }
92
- .container { @extend .clearfixed; }
93
- .grid-container { @extend .container; @include centered; }
94
- .push { @include pushable; }
95
- .pull { @include pullable; }
96
- }
97
-
98
- @mixin act-like-oocss {
99
- .clearfixed { @include pie-clearfix; }
100
- .line { @extend .clearfixed; }
101
- .unit { @include floated(left, 0, 0); }
102
- .lastUnit { @extend .clearfixed; @include sunken; }
103
- .size1of1 { @include sunken; }
104
-
105
- @for $divisions from 2 through 5 {
106
- @for $segment from 1 to $divisions {
107
- .size#{$segment}of#{$divisions} { width: percentage($segment / $divisions); }
108
- }
109
- }
110
- }
111
-