archetype 0.0.1.pre.13 → 1.0.0.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +97 -24
- data/README.md +11 -5
- data/VERSION +1 -0
- data/lib/archetype.rb +30 -18
- data/lib/archetype/actions/migrate.rb +152 -0
- data/lib/archetype/actions/theme.rb +6 -7
- data/lib/archetype/executor.rb +21 -7
- data/lib/archetype/extensions.rb +57 -0
- data/lib/archetype/functions.rb +2 -3
- data/lib/archetype/functions/css.rb +70 -0
- data/lib/archetype/functions/css/constants.rb +247 -0
- data/lib/archetype/functions/css/helpers.rb +265 -0
- data/lib/archetype/functions/css/routers.rb +28 -0
- data/lib/archetype/functions/css/routers/animation.rb +55 -0
- data/lib/archetype/functions/css/routers/background.rb +38 -0
- data/lib/archetype/functions/css/routers/border.rb +151 -0
- data/lib/archetype/functions/css/routers/list.rb +63 -0
- data/lib/archetype/functions/css/routers/margin_padding.rb +40 -0
- data/lib/archetype/functions/css/routers/outline.rb +56 -0
- data/lib/archetype/functions/css/routers/overflow.rb +11 -0
- data/lib/archetype/functions/css/routers/target.rb +38 -0
- data/lib/archetype/functions/css/routers/transition.rb +48 -0
- data/lib/archetype/functions/css/shorthands.rb +43 -0
- data/lib/archetype/functions/css/shorthands/animation.rb +18 -0
- data/lib/archetype/functions/css/shorthands/background.rb +68 -0
- data/lib/archetype/functions/css/shorthands/border.rb +102 -0
- data/lib/archetype/functions/hash.rb +3 -149
- data/lib/archetype/functions/hash/extend.rb +74 -0
- data/lib/archetype/functions/hash/shim.rb +48 -0
- data/lib/archetype/functions/helpers.rb +231 -22
- data/lib/archetype/functions/styleguide_memoizer.rb +18 -1
- data/lib/archetype/sass_extensions.rb +1 -3
- data/lib/archetype/sass_extensions/functions.rb +15 -1
- data/lib/archetype/sass_extensions/functions/environment.rb +152 -1
- data/lib/archetype/sass_extensions/functions/lists.rb +95 -45
- data/lib/archetype/sass_extensions/functions/locale.rb +107 -28
- data/lib/archetype/sass_extensions/functions/numbers.rb +118 -4
- data/lib/archetype/sass_extensions/functions/strings.rb +53 -0
- data/lib/archetype/sass_extensions/functions/styleguide.rb +43 -375
- data/lib/archetype/sass_extensions/functions/styleguide/components.rb +25 -0
- data/lib/archetype/sass_extensions/functions/styleguide/constants.rb +27 -0
- data/lib/archetype/sass_extensions/functions/styleguide/grammar.rb +80 -0
- data/lib/archetype/sass_extensions/functions/styleguide/helpers.rb +36 -0
- data/lib/archetype/sass_extensions/functions/styleguide/resolve.rb +159 -0
- data/lib/archetype/sass_extensions/functions/styleguide/styles.rb +146 -0
- data/lib/archetype/sass_extensions/functions/styleguide/themes.rb +40 -0
- data/lib/archetype/sass_extensions/functions/ui.rb +7 -57
- data/lib/archetype/sass_extensions/functions/ui/glyphs.rb +118 -0
- data/lib/archetype/sass_extensions/functions/ui/scopes.rb +96 -0
- data/lib/archetype/sass_extensions/functions/util.rb +14 -0
- data/lib/archetype/sass_extensions/functions/util/debug.rb +22 -0
- data/lib/archetype/sass_extensions/functions/util/hacks.rb +44 -0
- data/lib/archetype/sass_extensions/functions/util/images.rb +132 -0
- data/lib/archetype/sass_extensions/functions/util/misc.rb +220 -0
- data/lib/archetype/sass_extensions/functions/util/spacing.rb +83 -0
- data/lib/archetype/sass_extensions/functions/version.rb +12 -17
- data/lib/archetype/version.rb +1 -1
- data/stylesheets/archetype/_config.scss +1 -389
- data/stylesheets/archetype/_core.scss +15 -0
- data/stylesheets/archetype/_hacks.scss +4 -120
- data/stylesheets/archetype/_init.scss +4 -22
- data/stylesheets/archetype/_required.scss +3 -0
- data/stylesheets/archetype/_reset.scss +3 -0
- data/stylesheets/archetype/_styleguide.scss +2 -6
- data/stylesheets/archetype/_ui.scss +2 -358
- data/stylesheets/archetype/_util.scss +3 -10
- data/stylesheets/archetype/config/_core.scss +14 -0
- data/stylesheets/archetype/config/_environment.scss +19 -0
- data/stylesheets/archetype/config/_formatting.scss +63 -0
- data/stylesheets/archetype/config/_glyphs.scss +252 -0
- data/stylesheets/archetype/config/_resets.scss +7 -0
- data/stylesheets/archetype/config/_resolution.scss +3 -0
- data/stylesheets/archetype/config/_spacing.scss +5 -0
- data/stylesheets/archetype/config/_targeting.scss +18 -0
- data/stylesheets/archetype/config/_theme.scss +3 -0
- data/stylesheets/archetype/config/_typography.scss +56 -0
- data/stylesheets/archetype/config/_units.scss +2 -0
- data/stylesheets/archetype/config/_vars.scss +10 -0
- data/stylesheets/archetype/hacks/_core.scss +4 -0
- data/stylesheets/archetype/hacks/_hacks.scss +160 -0
- data/stylesheets/archetype/hacks/_init.scss +2 -0
- data/stylesheets/archetype/styleguide/_core.scss +4 -0
- data/stylesheets/archetype/styleguide/_init.scss +1 -0
- data/stylesheets/archetype/styleguide/_styleguide.scss +41 -18
- data/stylesheets/archetype/ui/_accessibility.scss +41 -0
- data/stylesheets/archetype/ui/_breakpoints.scss +19 -0
- data/stylesheets/archetype/ui/_core.scss +10 -0
- data/stylesheets/archetype/ui/_elements.scss +98 -0
- data/stylesheets/archetype/ui/_glyphs.scss +244 -0
- data/stylesheets/archetype/ui/_init.scss +5 -0
- data/stylesheets/archetype/ui/_layout.scss +37 -0
- data/stylesheets/archetype/ui/_locale.scss +12 -0
- data/stylesheets/archetype/ui/_scopes.scss +42 -0
- data/stylesheets/archetype/util/_core.scss +8 -0
- data/stylesheets/archetype/util/_debug.scss +9 -21
- data/stylesheets/archetype/util/_init.scss +1 -0
- data/stylesheets/archetype/util/_misc.scss +21 -86
- data/stylesheets/archetype/util/_spacing.scss +9 -40
- data/stylesheets/archetype/util/_styles.scss +189 -178
- data/stylesheets/archetype/util/_targeting.scss +51 -68
- data/templates/example/manifest.rb +2 -2
- data/templates/example/screen.scss +0 -1
- data/templates/project/manifest.rb +3 -8
- metadata +93 -263
- data/bin/archetype +0 -3
- data/lib/archetype/sass_extensions/monkey_patches.rb +0 -3
- data/lib/archetype/sass_extensions/monkey_patches/handle_include_loop.rb +0 -13
- data/stylesheets/archetype/_base.scss +0 -54
- data/stylesheets/archetype/_grid.scss +0 -3
- data/stylesheets/archetype/base/_h5bp.scss +0 -307
- data/stylesheets/archetype/base/_hybrid.scss +0 -25
- data/stylesheets/archetype/base/_normalize.scss +0 -634
- data/stylesheets/archetype/base/_reset.scss +0 -72
- data/stylesheets/archetype/grid/_config.scss +0 -14
- data/stylesheets/archetype/grid/_grid.scss +0 -391
- data/stylesheets/archetype/styleguide/_components.scss +0 -25
- data/stylesheets/archetype/styleguide/_helpers.scss +0 -215
- data/stylesheets/archetype/styleguide/_primitives.scss +0 -10
- data/stylesheets/archetype/styleguide/components/_alerts.scss +0 -59
- data/stylesheets/archetype/styleguide/components/_annotations.scss +0 -27
- data/stylesheets/archetype/styleguide/components/_bristol.scss +0 -15
- data/stylesheets/archetype/styleguide/components/_button_groups.scss +0 -47
- data/stylesheets/archetype/styleguide/components/_button_toolbars.scss +0 -17
- data/stylesheets/archetype/styleguide/components/_buttons.scss +0 -339
- data/stylesheets/archetype/styleguide/components/_canvas.scss +0 -15
- data/stylesheets/archetype/styleguide/components/_carets.scss +0 -336
- data/stylesheets/archetype/styleguide/components/_closes.scss +0 -63
- data/stylesheets/archetype/styleguide/components/_container.scss +0 -27
- data/stylesheets/archetype/styleguide/components/_copy.scss +0 -85
- data/stylesheets/archetype/styleguide/components/_flyouts.scss +0 -52
- data/stylesheets/archetype/styleguide/components/_headings.scss +0 -33
- data/stylesheets/archetype/styleguide/components/_headlines.scss +0 -64
- data/stylesheets/archetype/styleguide/components/_hovercards.scss +0 -27
- data/stylesheets/archetype/styleguide/components/_icons.scss +0 -17
- data/stylesheets/archetype/styleguide/components/_identities.scss +0 -34
- data/stylesheets/archetype/styleguide/components/_links.scss +0 -68
- data/stylesheets/archetype/styleguide/components/_loaders.scss +0 -154
- data/stylesheets/archetype/styleguide/components/_menu_items.scss +0 -31
- data/stylesheets/archetype/styleguide/components/_module.scss +0 -15
- data/stylesheets/archetype/styleguide/components/_pullquotes.scss +0 -29
- data/stylesheets/archetype/styleguide/components/_punchcut.scss +0 -18
- data/stylesheets/archetype/styleguide/components/_tooltips.scss +0 -28
- data/stylesheets/archetype/styleguide/primitives/_animations.scss +0 -17
- data/stylesheets/archetype/styleguide/primitives/_dimensions.scss +0 -50
- data/stylesheets/archetype/styleguide/primitives/_glyphs.scss +0 -11
- data/stylesheets/archetype/styleguide/primitives/_misc.scss +0 -8
- data/stylesheets/archetype/styleguide/primitives/_palettes.scss +0 -94
- data/stylesheets/archetype/styleguide/primitives/_shadows.scss +0 -23
- data/stylesheets/archetype/styleguide/primitives/_sprites.scss +0 -46
- data/stylesheets/archetype/styleguide/primitives/_textures.scss +0 -10
- data/stylesheets/archetype/styleguide/primitives/_typography.scss +0 -56
- data/stylesheets/archetype/util/_lists.scss +0 -57
- data/stylesheets/archetype/util/_rtl.scss +0 -279
- data/stylesheets/archetype/util/_units.scss +0 -18
- data/templates/project/screen.scss +0 -1
- data/templates/project/vendor/archetype/animations/loaders/large/large.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/large/large_dark.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/large/large_dark_static.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/large/large_static.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/medium/medium.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/medium/medium_dark.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/medium/medium_dark_static.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/medium/medium_static.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/small/small.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/small/small_dark.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/small/small_dark_static.png +0 -0
- data/templates/project/vendor/archetype/animations/loaders/small/small_static.png +0 -0
- data/templates/project/vendor/archetype/fontawesome-webfont.eot +0 -0
- data/templates/project/vendor/archetype/fontawesome-webfont.svg +0 -255
- data/templates/project/vendor/archetype/fontawesome-webfont.ttf +0 -0
- data/templates/project/vendor/archetype/fontawesome-webfont.woff +0 -0
- data/test/fixtures/stylesheets/archetype/assets/fonts/fontawesome-webfont.eot +0 -0
- data/test/fixtures/stylesheets/archetype/assets/fonts/fontawesome-webfont.svg +0 -255
- data/test/fixtures/stylesheets/archetype/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/test/fixtures/stylesheets/archetype/assets/fonts/fontawesome-webfont.woff +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders-s7889ccc8c1.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/large/large.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/large/large_dark.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/large/large_dark_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/large/large_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/medium/medium.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/medium/medium_dark.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/medium/medium_dark_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/medium/medium_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/small/small.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/small/small_dark.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/small/small_dark_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders/small/small_static.png +0 -0
- data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/sprites/hovercard_tip.png +0 -0
- data/test/fixtures/stylesheets/archetype/config.rb +0 -21
- data/test/fixtures/stylesheets/archetype/source/b.scss +0 -9
- data/test/fixtures/stylesheets/archetype/source/base.scss +0 -3
- data/test/fixtures/stylesheets/archetype/source/hacks/ie_pseudo.scss +0 -13
- data/test/fixtures/stylesheets/archetype/source/hacks/transparent_focusable.scss +0 -5
- data/test/fixtures/stylesheets/archetype/source/locale.scss +0 -43
- data/test/fixtures/stylesheets/archetype/source/styleguide/alerts.scss +0 -21
- data/test/fixtures/stylesheets/archetype/source/styleguide/buttons.scss +0 -18
- data/test/fixtures/stylesheets/archetype/source/styleguide/drop.scss +0 -101
- data/test/fixtures/stylesheets/archetype/source/styleguide/extend.scss +0 -24
- data/test/fixtures/stylesheets/archetype/source/styleguide/fallback_styles.scss +0 -23
- data/test/fixtures/stylesheets/archetype/source/styleguide/invalid_structures.scss +0 -85
- data/test/fixtures/stylesheets/archetype/source/styleguide/multi_value.scss +0 -18
- data/test/fixtures/stylesheets/archetype/source/styleguide/nested_styleguides.scss +0 -40
- data/test/fixtures/stylesheets/archetype/source/styleguide/selective_state.scss +0 -22
- data/test/fixtures/stylesheets/archetype/source/ui/glyph_icon.scss +0 -35
- data/test/fixtures/stylesheets/archetype/source/ui/hide_element.scss +0 -5
- data/test/fixtures/stylesheets/archetype/source/ui/stroke.scss +0 -13
- data/test/fixtures/stylesheets/archetype/source/ui/triangle.scss +0 -13
- data/test/fixtures/stylesheets/archetype/source/utilities/associative.scss +0 -24
- data/test/fixtures/stylesheets/archetype/source/utilities/custom_output_styler.scss +0 -22
- data/test/fixtures/stylesheets/archetype/source/utilities/if-set.scss +0 -16
- data/test/fixtures/stylesheets/archetype/source/utilities/spacing/horizontal-spacing.scss +0 -27
- data/test/fixtures/stylesheets/archetype/source/utilities/spacing/vertical-spacing.scss +0 -27
- data/test/fixtures/stylesheets/archetype/source/utilities/styles/filter.scss +0 -9
- data/test/fixtures/stylesheets/archetype/source/utilities/styles/font-family.scss +0 -9
- data/test/fixtures/stylesheets/archetype/source/utilities/styles/z-index.scss +0 -18
- data/test/fixtures/stylesheets/archetype/source/utilities/targeting/target-browser.scss +0 -77
- data/test/fixtures/stylesheets/archetype/source/utilities/targeting/target-os.scss +0 -42
- data/test/fixtures/stylesheets/archetype/tmp/b.css +0 -14
- data/test/fixtures/stylesheets/archetype/tmp/base.css +0 -349
- data/test/fixtures/stylesheets/archetype/tmp/hacks/ie_pseudo.css +0 -11
- data/test/fixtures/stylesheets/archetype/tmp/hacks/transparent_focusable.css +0 -4
- data/test/fixtures/stylesheets/archetype/tmp/locale.css +0 -23
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/alerts.css +0 -711
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/buttons.css +0 -2119
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/drop.css +0 -63
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/extend.css +0 -11
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/fallback_styles.css +0 -10
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/invalid_structures.css +0 -21
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/multi_value.css +0 -13
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/nested_styleguides.css +0 -28
- data/test/fixtures/stylesheets/archetype/tmp/styleguide/selective_state.css +0 -177
- data/test/fixtures/stylesheets/archetype/tmp/ui/glyph_icon.css +0 -127
- data/test/fixtures/stylesheets/archetype/tmp/ui/hide_element.css +0 -8
- data/test/fixtures/stylesheets/archetype/tmp/ui/stroke.css +0 -17
- data/test/fixtures/stylesheets/archetype/tmp/ui/triangle.css +0 -35
- data/test/fixtures/stylesheets/archetype/tmp/utilities/associative.css +0 -9
- data/test/fixtures/stylesheets/archetype/tmp/utilities/custom_output_styler.css +0 -8
- data/test/fixtures/stylesheets/archetype/tmp/utilities/if-set.css +0 -9
- data/test/fixtures/stylesheets/archetype/tmp/utilities/spacing/horizontal-spacing.css +0 -29
- data/test/fixtures/stylesheets/archetype/tmp/utilities/spacing/vertical-spacing.css +0 -29
- data/test/fixtures/stylesheets/archetype/tmp/utilities/styles/filter.css +0 -11
- data/test/fixtures/stylesheets/archetype/tmp/utilities/styles/font-family.css +0 -16
- data/test/fixtures/stylesheets/archetype/tmp/utilities/styles/z-index.css +0 -15
- data/test/fixtures/stylesheets/archetype/tmp/utilities/targeting/target-browser.css +0 -105
- data/test/fixtures/stylesheets/archetype/tmp/utilities/targeting/target-os.css +0 -55
- data/test/helpers/diff.rb +0 -49
- data/test/helpers/io.rb +0 -36
- data/test/helpers/test_case.rb +0 -62
- data/test/integrations/archetype_test.rb +0 -126
- data/test/test_helper.rb +0 -26
- data/test/units/sass_extensions_test.rb +0 -200
data/test/helpers/test_case.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
module Compass
|
2
|
-
module TestCaseHelper
|
3
|
-
def absolutize(path)
|
4
|
-
if Compass::Util.blank?(path)
|
5
|
-
File.expand_path('../../', __FILE__)
|
6
|
-
elsif path[0] == ?/
|
7
|
-
File.join(File.expand_path('../', __FILE__), path)
|
8
|
-
else
|
9
|
-
File.join(File.expand_path('../../', __FILE__), path)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
# compile a Sass string in the context of a project in the current working directory.
|
14
|
-
def compile_for_project(contents, options = {})
|
15
|
-
Compass.add_project_configuration
|
16
|
-
options[:syntax] ||= :scss
|
17
|
-
Sass::Engine.new(contents, Compass.configuration.to_sass_engine_options.merge(options)).render
|
18
|
-
end
|
19
|
-
|
20
|
-
def assert_correct(before, after)
|
21
|
-
if before == after
|
22
|
-
assert(true)
|
23
|
-
else
|
24
|
-
assert false, diff_as_string(before.inspect, after.inspect)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
module ClassMethods
|
29
|
-
|
30
|
-
def let(method, &block)
|
31
|
-
define_method method, &block
|
32
|
-
end
|
33
|
-
|
34
|
-
def it(name, &block)
|
35
|
-
test(name, &block)
|
36
|
-
end
|
37
|
-
|
38
|
-
def test(name, &block)
|
39
|
-
define_method "test_#{underscore(name)}".to_sym, &block
|
40
|
-
end
|
41
|
-
|
42
|
-
def setup(&block)
|
43
|
-
define_method :setup do
|
44
|
-
yield
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def after(&block)
|
49
|
-
define_method :teardown do
|
50
|
-
yield
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
private
|
55
|
-
|
56
|
-
def underscore(string)
|
57
|
-
string.gsub(' ', '_')
|
58
|
-
end
|
59
|
-
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,126 +0,0 @@
|
|
1
|
-
# this is all take from Compass because they already did the awesome testing framework
|
2
|
-
require 'test_helper'
|
3
|
-
require 'compass'
|
4
|
-
require 'compass/logger'
|
5
|
-
require 'sass/plugin'
|
6
|
-
unless ENV['CI']
|
7
|
-
require 'fileutils'
|
8
|
-
end
|
9
|
-
|
10
|
-
class ArchetypeTest < Test::Unit::TestCase
|
11
|
-
|
12
|
-
def setup
|
13
|
-
Compass.reset_configuration!
|
14
|
-
end
|
15
|
-
|
16
|
-
def teardown
|
17
|
-
[:archetype].each do |project_name|
|
18
|
-
::FileUtils.rm_rf tempfile_path(project_name)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_archetype
|
23
|
-
within_project('archetype') do |proj|
|
24
|
-
each_css_file(proj.css_path) do |css_file|
|
25
|
-
assert_no_errors css_file, 'archetype'
|
26
|
-
end
|
27
|
-
each_sass_file do |sass_file|
|
28
|
-
assert_renders_correctly sass_file, :ignore_charset => true
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
def assert_no_errors(css_file, project_name)
|
35
|
-
file = css_file[(tempfile_path(project_name).size+1)..-1]
|
36
|
-
msg = "Syntax Error found in #{file}. Results saved into #{save_path(project_name)}/#{file}"
|
37
|
-
assert_equal 0, open(css_file).readlines.grep(/Sass::SyntaxError/).size, msg
|
38
|
-
end
|
39
|
-
|
40
|
-
def assert_renders_correctly(*arguments)
|
41
|
-
options = arguments.last.is_a?(Hash) ? arguments.pop : {}
|
42
|
-
for name in arguments
|
43
|
-
actual_result_file = "#{tempfile_path(@current_project)}/#{name}.css"
|
44
|
-
expected_result_file = "#{result_path(@current_project)}/#{name}.css"
|
45
|
-
actual_lines = File.read(actual_result_file)
|
46
|
-
actual_lines.gsub!(/^@charset[^;]+;/,'') if options[:ignore_charset]
|
47
|
-
actual_lines = actual_lines.split("\n").reject{|l| l=~/\A\Z/}
|
48
|
-
expected_lines = ERB.new(File.read(expected_result_file)).result(binding)
|
49
|
-
expected_lines.gsub!(/^@charset[^;]+;/,'') if options[:ignore_charset]
|
50
|
-
expected_lines = expected_lines.split("\n").reject{|l| l=~/\A\Z/}
|
51
|
-
expected_lines.zip(actual_lines).each_with_index do |pair, line|
|
52
|
-
if pair.first == pair.last
|
53
|
-
assert(true)
|
54
|
-
else
|
55
|
-
assert false, "Error in #{result_path(@current_project)}/#{name}.css:#{line + 1}\n"+diff_as_string(pair.first.inspect, pair.last.inspect)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
if expected_lines.size < actual_lines.size
|
59
|
-
assert(false, "#{actual_lines.size - expected_lines.size} Trailing lines found in #{actual_result_file}.css: #{actual_lines[expected_lines.size..-1].join('\n')}")
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def within_project(project_name, config_block = nil)
|
65
|
-
@current_project = project_name
|
66
|
-
Compass.add_configuration(configuration_file(project_name)) if File.exists?(configuration_file(project_name))
|
67
|
-
Compass.configuration.project_path = project_path(project_name)
|
68
|
-
Compass.configuration.environment = :production
|
69
|
-
args = Compass.configuration.to_compiler_arguments(:logger => Compass::NullLogger.new)
|
70
|
-
|
71
|
-
if config_block
|
72
|
-
config_block.call(Compass.configuration)
|
73
|
-
end
|
74
|
-
|
75
|
-
if Compass.configuration.sass_path && File.exists?(Compass.configuration.sass_path)
|
76
|
-
compiler = Compass::Compiler.new *args
|
77
|
-
compiler.clean!
|
78
|
-
compiler.run
|
79
|
-
end
|
80
|
-
yield Compass.configuration if block_given?
|
81
|
-
rescue
|
82
|
-
save_output(project_name)
|
83
|
-
raise
|
84
|
-
end
|
85
|
-
|
86
|
-
def each_css_file(dir, &block)
|
87
|
-
Dir.glob("#{dir}/**/*.css").each(&block)
|
88
|
-
end
|
89
|
-
|
90
|
-
def each_sass_file(sass_dir = nil)
|
91
|
-
sass_dir ||= template_path(@current_project)
|
92
|
-
Dir.glob("#{sass_dir}/**/*.s[ac]ss").each do |sass_file|
|
93
|
-
yield sass_file[(sass_dir.length+1)..-6]
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
def save_output(dir)
|
98
|
-
FileUtils.rm_rf(save_path(dir))
|
99
|
-
FileUtils.cp_r(tempfile_path(dir), save_path(dir)) if File.exists?(tempfile_path(dir))
|
100
|
-
end
|
101
|
-
|
102
|
-
def project_path(project_name)
|
103
|
-
absolutize("fixtures/stylesheets/#{project_name}")
|
104
|
-
end
|
105
|
-
|
106
|
-
def configuration_file(project_name)
|
107
|
-
File.join(project_path(project_name), "config.rb")
|
108
|
-
end
|
109
|
-
|
110
|
-
def tempfile_path(project_name)
|
111
|
-
File.join(project_path(project_name), "tmp")
|
112
|
-
end
|
113
|
-
|
114
|
-
def template_path(project_name)
|
115
|
-
File.join(project_path(project_name), "source")
|
116
|
-
end
|
117
|
-
|
118
|
-
def result_path(project_name)
|
119
|
-
File.join(project_path(project_name), "expected")
|
120
|
-
end
|
121
|
-
|
122
|
-
def save_path(project_name)
|
123
|
-
File.join(project_path(project_name), "saved")
|
124
|
-
end
|
125
|
-
|
126
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# borrowed from Compass
|
2
|
-
lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
-
$:.unshift(lib_dir) unless $:.include?(lib_dir)
|
4
|
-
test_dir = File.dirname(__FILE__)
|
5
|
-
$:.unshift(test_dir) unless $:.include?(test_dir)
|
6
|
-
|
7
|
-
require 'rubygems'
|
8
|
-
require 'compass'
|
9
|
-
require 'test/unit'
|
10
|
-
|
11
|
-
class String
|
12
|
-
def name
|
13
|
-
to_s
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
%w(diff io test_case).each do |helper|
|
18
|
-
require "helpers/#{helper}"
|
19
|
-
end
|
20
|
-
|
21
|
-
class Test::Unit::TestCase
|
22
|
-
include Compass::Diff
|
23
|
-
include Compass::TestCaseHelper
|
24
|
-
include Compass::IoHelper
|
25
|
-
extend Compass::TestCaseHelper::ClassMethods
|
26
|
-
end
|
@@ -1,200 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require 'archetype'
|
3
|
-
|
4
|
-
class SassExtensionsTest < Test::Unit::TestCase
|
5
|
-
setup do
|
6
|
-
Compass.reset_configuration!
|
7
|
-
Compass.configuration.testing = true
|
8
|
-
end
|
9
|
-
|
10
|
-
## VERSION
|
11
|
-
# test that archetype-version() is working correctly
|
12
|
-
def test_version
|
13
|
-
version_pattern = /\d+(\.\d+)*(\.[x|\*])?/
|
14
|
-
assert_equal Archetype::VERSION.match(version_pattern)[0], evaluate("archetype-version()")
|
15
|
-
assert_equal Compass::VERSION.match(version_pattern)[0], evaluate("archetype-version(compass)")
|
16
|
-
assert_equal Sass::VERSION.match(version_pattern)[0], evaluate("archetype-version(sass)")
|
17
|
-
assert_equal "true", evaluate("archetype-version('Compass >= 0.12')")
|
18
|
-
assert_equal "false", evaluate("archetype-version('Sass >= 99.0.0')")
|
19
|
-
assert_equal "true", evaluate("archetype-version('Sass gt 3.0')")
|
20
|
-
assert_equal "true", evaluate("archetype-version(Archetype ne 99)")
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
## ENVIRONMENT
|
25
|
-
# test that archetype-env() is working correctly
|
26
|
-
def test_env
|
27
|
-
reset
|
28
|
-
assert_equal "development", evaluate("archetype-env()")
|
29
|
-
Compass.configuration.environment = :production
|
30
|
-
assert_equal "production", evaluate("archetype-env()")
|
31
|
-
Compass.configuration.environment = :staging
|
32
|
-
assert_equal "staging", evaluate("archetype-env()")
|
33
|
-
reset
|
34
|
-
end
|
35
|
-
|
36
|
-
|
37
|
-
## LISTS
|
38
|
-
# list-replace
|
39
|
-
def test_list_replace
|
40
|
-
# TODO
|
41
|
-
end
|
42
|
-
|
43
|
-
# list-remove
|
44
|
-
def test_list_remove
|
45
|
-
# TODO
|
46
|
-
end
|
47
|
-
|
48
|
-
# list-insert
|
49
|
-
def test_list_insert
|
50
|
-
# TODO
|
51
|
-
end
|
52
|
-
|
53
|
-
# list-add
|
54
|
-
def test_list_add
|
55
|
-
assert_equal "2 3 4", evaluate("list-add(1 2 3, 1)")
|
56
|
-
assert_equal "5 6 7", evaluate("list-add(1 2 3, 4)")
|
57
|
-
assert_equal "5 7 9", evaluate("list-add(1 2 3, 4 5 6)")
|
58
|
-
end
|
59
|
-
|
60
|
-
# list-subtract
|
61
|
-
def test_list_subtract
|
62
|
-
assert_equal "0 1 2", evaluate("list-subtract(1 2 3, 1)")
|
63
|
-
assert_equal "1 2 3", evaluate("list-subtract(5 6 7, 4)")
|
64
|
-
assert_equal "1 2 3", evaluate("list-subtract(5 7 9, 4 5 6)")
|
65
|
-
end
|
66
|
-
|
67
|
-
# list-multiply
|
68
|
-
def test_list_multiply
|
69
|
-
assert_equal "2 4 6", evaluate("list-multiply(1 2 3, 2)")
|
70
|
-
assert_equal "20 24 28", evaluate("list-multiply(5 6 7, 4)")
|
71
|
-
assert_equal "20 35 54", evaluate("list-multiply(5 7 9, 4 5 6)")
|
72
|
-
end
|
73
|
-
|
74
|
-
# list-divide
|
75
|
-
def test_list_divide
|
76
|
-
assert_equal "2/2 4/2 6/2", evaluate("list-divide(2 4 6, 2)")
|
77
|
-
assert_equal "20/4 24/4 28/4", evaluate("list-divide(20 24 28, 4)")
|
78
|
-
assert_equal "20/4 35/5 54/6", evaluate("list-divide(20 35 54, 4 5 6)")
|
79
|
-
end
|
80
|
-
|
81
|
-
# list-mod
|
82
|
-
def test_list_mod
|
83
|
-
assert_equal "1 0 1", evaluate("list-mod(1 2 3, 2)")
|
84
|
-
assert_equal "0 1 2", evaluate("list-mod(4 5 6, 4)")
|
85
|
-
assert_equal "3 2 1", evaluate("list-mod(15 17 19, 4 5 6)")
|
86
|
-
end
|
87
|
-
|
88
|
-
# index2
|
89
|
-
def test_index2
|
90
|
-
assert_equal "1", evaluate("index2(a b c, a)")
|
91
|
-
assert_equal "4", evaluate("index2(a b c f, d e f)")
|
92
|
-
assert_equal "false", evaluate("index2(a b c, d)")
|
93
|
-
assert_equal "false", evaluate("index2(a b c, d e f)")
|
94
|
-
end
|
95
|
-
|
96
|
-
# nth-cyclic
|
97
|
-
def test_nth_cyclic
|
98
|
-
assert_equal "a", evaluate("nth-cyclic(a b c, 1)")
|
99
|
-
assert_equal "b", evaluate("nth-cyclic(a b c, 2)")
|
100
|
-
assert_equal "b", evaluate("nth-cyclic(a b c, 5)")
|
101
|
-
assert_equal "c", evaluate("nth-cyclic(a b c, 24)")
|
102
|
-
end
|
103
|
-
|
104
|
-
# associative
|
105
|
-
def test_associative
|
106
|
-
# TODO
|
107
|
-
end
|
108
|
-
|
109
|
-
# associative-merge
|
110
|
-
def test_list_associative_merge
|
111
|
-
# TODO
|
112
|
-
end
|
113
|
-
|
114
|
-
|
115
|
-
## LOCALE
|
116
|
-
# locale
|
117
|
-
def test_locale
|
118
|
-
reset
|
119
|
-
assert_equal "en_US", evaluate("locale()")
|
120
|
-
Compass.configuration.locale = "ja_JP"
|
121
|
-
assert_equal "ja_JP", evaluate("locale()")
|
122
|
-
reset
|
123
|
-
end
|
124
|
-
|
125
|
-
# lang
|
126
|
-
def test_lang
|
127
|
-
reset
|
128
|
-
assert_equal "true", evaluate("lang(en_US)")
|
129
|
-
assert_equal "true", evaluate("lang(fr_FR en_US)")
|
130
|
-
assert_equal "false", evaluate("lang(fr_FR)")
|
131
|
-
Compass.configuration.locale = "ja_JP"
|
132
|
-
assert_equal "false", evaluate("lang(en_US)")
|
133
|
-
assert_equal "true", evaluate("lang(ja_JP)")
|
134
|
-
assert_equal "true", evaluate("lang(CJK)")
|
135
|
-
assert_equal "true", evaluate("lang(CJK en_US)")
|
136
|
-
reset
|
137
|
-
end
|
138
|
-
|
139
|
-
|
140
|
-
## NUMBERS
|
141
|
-
def test_strip_units
|
142
|
-
assert_equal "12", evaluate("strip-units(12px)")
|
143
|
-
assert_equal "0.5", evaluate("strip-units(0.5em)")
|
144
|
-
assert_equal "20", evaluate("strip-units('20rem')")
|
145
|
-
assert_equal "0", evaluate("strip-units(10 somethings)") # this is a failure, so returns 0
|
146
|
-
end
|
147
|
-
|
148
|
-
|
149
|
-
## STYLEGUIDE
|
150
|
-
# styleguide-add-component
|
151
|
-
def test_styleguide_add_component
|
152
|
-
# TODO - this is a more complex test
|
153
|
-
end
|
154
|
-
|
155
|
-
# styleguide-extend-component
|
156
|
-
def test_styleguide_extend_component
|
157
|
-
# TODO - this is a more complex test
|
158
|
-
end
|
159
|
-
|
160
|
-
# styleguide
|
161
|
-
def test_styleguide
|
162
|
-
# TODO - this is a more complex test
|
163
|
-
end
|
164
|
-
|
165
|
-
# styleguide-diff
|
166
|
-
def test_styleguide_diff
|
167
|
-
# TODO - this is a more complex test
|
168
|
-
end
|
169
|
-
|
170
|
-
|
171
|
-
## UI
|
172
|
-
# test generating unique tokens
|
173
|
-
def test_unique
|
174
|
-
assert_equal ".archetype-uid-RANDOM_UID", evaluate("unique(class)")
|
175
|
-
assert_equal ".archetype-uid-RANDOM_UID", evaluate("unique(class)")
|
176
|
-
assert_equal "\#archetype-uid-RANDOM_UID", evaluate("unique(id)")
|
177
|
-
assert_equal "my-prefix-archetype-uid-RANDOM_UID", evaluate("unique(my-prefix-)")
|
178
|
-
assert_equal ".testing-archetype-uid-RANDOM_UID", evaluate("unique('.testing-')")
|
179
|
-
end
|
180
|
-
|
181
|
-
# test pseudo content escaping and formatting for innerHTML
|
182
|
-
def test_ie_pseudo_content
|
183
|
-
assert_equal "this is a test", evaluate("-ie-pseudo-content(this is a test)")
|
184
|
-
assert_equal "this is > awesome", evaluate("-ie-pseudo-content('this is > awesome')")
|
185
|
-
assert_equal "tests & more tests", evaluate("-ie-pseudo-content('tests & more tests')")
|
186
|
-
assert_equal "testing unicode &\#x2079;", evaluate("-ie-pseudo-content('testing unicode \\2079')")
|
187
|
-
assert_equal "a character &\#x2079; mid-sentence", evaluate("-ie-pseudo-content('a character \\2079 mid-sentence')")
|
188
|
-
assert_equal "&\#x2079;", evaluate("-ie-pseudo-content('\\2079')")
|
189
|
-
end
|
190
|
-
|
191
|
-
protected
|
192
|
-
def evaluate(value)
|
193
|
-
Sass::Script::Parser.parse(value, 0, 0).perform(Sass::Environment.new).to_s
|
194
|
-
end
|
195
|
-
|
196
|
-
def reset
|
197
|
-
Compass.reset_configuration!
|
198
|
-
Compass.configuration.testing = true
|
199
|
-
end
|
200
|
-
end
|