gridpaper 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -1
- data/Guardfile +6 -4
- data/README.rdoc +16 -1
- data/bin/gridpaper +6 -17
- data/examples/stylesheets/sass/gridpaper/_all.sass +1 -0
- data/examples/stylesheets/sass/gridpaper/_effects.sass +31 -0
- data/examples/stylesheets/sass/gridpaper/_forms.sass +27 -0
- data/examples/stylesheets/sass/gridpaper/_grid.sass +59 -0
- data/examples/stylesheets/sass/gridpaper/_reset.sass +102 -0
- data/examples/stylesheets/sass/gridpaper/_utilities.sass +6 -0
- data/examples/stylesheets/sass/styles.sass +1 -37
- data/gridpaper.gemspec +2 -2
- data/lib/gridpaper.rb +6 -40
- data/lib/gridpaper/version.rb +1 -1
- data/templates/{examples → sass/gridpaper/examples}/_columns.sass +0 -0
- data/templates/scss/gridpaper/_utilities.scss +6 -0
- data/templates/scss/gridpaper/examples/_columns.scss +45 -0
- metadata +23 -33
- data/examples/images/Untitled-1.png +0 -0
- data/examples/stylesheets/sass/_columns.sass +0 -51
- data/examples/stylesheets/scss/nested_folder/_imported_file.scss +0 -3
- data/examples/stylesheets/scss/nested_folder/generated.scss +0 -0
- data/examples/stylesheets/scss/something.scss +0 -1
- data/lib/Guardfile +0 -147
- data/lib/guard/gridpaper-watch.rb +0 -129
data/.gitignore
CHANGED
data/Guardfile
CHANGED
@@ -4,11 +4,11 @@ require 'colorize'
|
|
4
4
|
module ::Guard
|
5
5
|
class RakeInstall < Guard
|
6
6
|
def start
|
7
|
-
|
7
|
+
::Guard::Notifier::notify('ready', :title => 'Gridpaper')
|
8
8
|
end
|
9
9
|
|
10
10
|
def stop
|
11
|
-
|
11
|
+
::Guard::Notifier::notify('stopped watching for changes', :title => 'Gridpaper')
|
12
12
|
end
|
13
13
|
|
14
14
|
def reload
|
@@ -21,7 +21,8 @@ module ::Guard
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def run_on_change(paths)
|
24
|
-
|
24
|
+
system('rake install')
|
25
|
+
::Guard::Notifier::notify('built and installed', :title => 'Gridpaper')
|
25
26
|
end
|
26
27
|
|
27
28
|
end
|
@@ -29,5 +30,6 @@ end
|
|
29
30
|
|
30
31
|
# Available options: :pidfile, :port, :executable
|
31
32
|
guard 'rake-install' do
|
32
|
-
watch
|
33
|
+
watch(%r{^.+\.gemspec})
|
34
|
+
watch(%r{^(lib\/.+)|(bin\/.+)|(templates\/.+)})
|
33
35
|
end
|
data/README.rdoc
CHANGED
@@ -19,7 +19,7 @@ The <tt>gridpaper generate</tt> command is also aliased to:
|
|
19
19
|
gridpaper setup
|
20
20
|
gridpaper add
|
21
21
|
|
22
|
-
|
22
|
+
==== Options
|
23
23
|
|
24
24
|
The <tt>gridpaper</tt> command takes the following options
|
25
25
|
|
@@ -29,6 +29,21 @@ The <tt>gridpaper</tt> command takes the following options
|
|
29
29
|
--stylesheets-dir STRING
|
30
30
|
# the name of your stylesheets directory (default is "stylesheets")
|
31
31
|
|
32
|
+
=== Watch
|
33
|
+
|
34
|
+
Watch your project folder for changes to the sass or scss files and convert them to css with
|
35
|
+
gridpaper watch
|
36
|
+
|
37
|
+
==== Arguments
|
38
|
+
|
39
|
+
The <tt>gridpaper watch <input folder> <output folder></tt> command takes the following arguments
|
40
|
+
|
41
|
+
<input folder>
|
42
|
+
# A relative path to the folder containing your SASS files. Defaults to "stylesheets/sass"
|
43
|
+
|
44
|
+
<output folder>
|
45
|
+
# A relative path to the folder where your CSS files will be created. Defaults to "stylesheets"
|
46
|
+
|
32
47
|
== Development
|
33
48
|
|
34
49
|
=== Changelog
|
data/bin/gridpaper
CHANGED
@@ -30,32 +30,21 @@ command :generate do |c|
|
|
30
30
|
end
|
31
31
|
|
32
32
|
command :watch do |c|
|
33
|
-
c.syntax = 'gridpaper watch'
|
33
|
+
c.syntax = 'gridpaper watch <input folder> <output folder>'
|
34
34
|
c.description = 'Watches for changes in your input file and generates CSS to your output file.'
|
35
35
|
|
36
|
-
# c.option '--stylesheets-dir STRING', String, 'Use a different directory to hold your stylesheets'
|
37
|
-
|
38
36
|
c.action do |args, options|
|
39
|
-
stylesheets_dir = options.stylesheets_dir || "stylesheets"
|
40
|
-
# working_path = Dir.pwd
|
41
|
-
|
42
37
|
input_path = args[0] || "stylesheets/sass"
|
43
|
-
|
44
|
-
output_path = args[1] || "../stylesheets"
|
45
|
-
# output_path = File.expand_path File.join(working_path, output_path)
|
38
|
+
output_path = args[1] || "stylesheets"
|
46
39
|
|
47
|
-
|
40
|
+
# Pass to sass --watch
|
41
|
+
# TODO:
|
42
|
+
# - Hook into this and load custom SASS functions
|
43
|
+
system("sass --watch #{ input_path }:#{ output_path }")
|
48
44
|
end
|
49
45
|
|
50
46
|
end
|
51
47
|
|
52
|
-
def check_input_path(working_path)
|
53
|
-
unless File.exists?(File.join(working_path, 'sass')) || File.exists?(File.join(working_path, 'scss'))
|
54
|
-
puts "Could not find a directory named './#{ stylesheets_dir }/sass' or './#{ stylesheets_dir }/scss'. Aborting.".red
|
55
|
-
return false
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
48
|
alias_command :g, :generate
|
60
49
|
alias_command :new, :generate
|
61
50
|
alias_command :setup, :generate
|
@@ -0,0 +1 @@
|
|
1
|
+
@import reset, grid, effects, forms
|
@@ -0,0 +1,31 @@
|
|
1
|
+
@mixin border-radius($radii, $ie: false)
|
2
|
+
-webkit-border-radius: $radii
|
3
|
+
-moz-border-radius: $radii
|
4
|
+
-ms-border-radius: $radii
|
5
|
+
-o-border-radius: $radii
|
6
|
+
border-radius: $radii
|
7
|
+
-moz-background-clip: padding
|
8
|
+
-webkit-background-clip: padding-box
|
9
|
+
background-clip: padding-box
|
10
|
+
@if $ie
|
11
|
+
position: relative
|
12
|
+
behavior: url(/javascripts/PIE.htc)
|
13
|
+
|
14
|
+
@mixin box-shadow($style, $ie: false)
|
15
|
+
-webkit-box-shadow: $style
|
16
|
+
-moz-box-shadow: $style
|
17
|
+
-ms-box-shadow: $style
|
18
|
+
-o-box-shadow: $style
|
19
|
+
box-shadow: $style
|
20
|
+
@if $ie
|
21
|
+
behavior: url(/javascripts/PIE.htc)
|
22
|
+
|
23
|
+
@mixin box-gradient($from, $to)
|
24
|
+
background-color: mix($from, $to)
|
25
|
+
background-image: -webkit-gradient(linear, left top, left bottom, from($from), to($to))
|
26
|
+
background-image: -webkit-linear-gradient(top, $from, $to)
|
27
|
+
background-image: -moz-linear-gradient(top, $from, $to)
|
28
|
+
background-image: -ms-linear-gradient(top, $from, $to)
|
29
|
+
background-image: -o-linear-gradient(top, $from, $to)
|
30
|
+
background-image: linear-gradient(top, $from, $to)
|
31
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr="#{ $from }", EndColorStr="#{ $to }")
|
@@ -0,0 +1,27 @@
|
|
1
|
+
form
|
2
|
+
|
3
|
+
.field
|
4
|
+
margin-bottom: 1em
|
5
|
+
|
6
|
+
legend
|
7
|
+
display: block
|
8
|
+
margin-bottom: 1em
|
9
|
+
|
10
|
+
label
|
11
|
+
display: block
|
12
|
+
|
13
|
+
input[type="text"], input[type="email"], input[type="url"], input[type="search"], textarea
|
14
|
+
padding: 0.25em 0.5em
|
15
|
+
font:
|
16
|
+
size: 1em
|
17
|
+
family: sans-serif
|
18
|
+
border: 1px solid #7E7E7E
|
19
|
+
|
20
|
+
input[type="submit"]
|
21
|
+
padding: 0.5em 1em
|
22
|
+
border: 1px solid #7E7E7E
|
23
|
+
@include border-radius(5px)
|
24
|
+
cursor: pointer
|
25
|
+
|
26
|
+
|
27
|
+
|
@@ -0,0 +1,59 @@
|
|
1
|
+
/*
|
2
|
+
Default Gridpaper 24 Column Grid
|
3
|
+
Column Width: 24px
|
4
|
+
Gutter Width: 16px
|
5
|
+
Total Width: 976px
|
6
|
+
|
7
|
+
$grid-columns: 24 !default
|
8
|
+
$grid-column-width: 24px !default
|
9
|
+
$grid-gutter-width: 16px !default
|
10
|
+
|
11
|
+
@mixin container
|
12
|
+
width: ($grid-columns * $grid-column-width) + (($grid-columns - 1) * $grid-gutter-width)
|
13
|
+
padding:
|
14
|
+
left: $grid-gutter-width
|
15
|
+
right: $grid-gutter-width
|
16
|
+
margin:
|
17
|
+
left: auto
|
18
|
+
right: auto
|
19
|
+
|
20
|
+
@mixin column
|
21
|
+
display: block
|
22
|
+
float: left
|
23
|
+
&:last-child
|
24
|
+
margin-right: 0
|
25
|
+
|
26
|
+
@mixin span($n: $grid-columns, $adj: 0)
|
27
|
+
width: ($grid-column-width * $n) + ($grid-gutter-width * ($n - 1)) + $adj
|
28
|
+
margin-right: $grid-gutter-width
|
29
|
+
|
30
|
+
@mixin padding($left: inherit, $right: inherit)
|
31
|
+
@if $left != inherit
|
32
|
+
padding-left: ($grid-column-width * $left) + ($grid-gutter-width * $left)
|
33
|
+
@if $right != inherit
|
34
|
+
padding-right: ($grid-column-width * $right) + ($grid-gutter-width * $right)
|
35
|
+
|
36
|
+
@mixin margin($left: inherit, $right: inherit)
|
37
|
+
@if $left != inherit
|
38
|
+
margin-left: ($grid-column-width * $left) + ($grid-gutter-width * ($left - 1))
|
39
|
+
@if $right != inherit
|
40
|
+
margin-right: ($grid-column-width * $right) + ($grid-gutter-width * ($right - 1))
|
41
|
+
|
42
|
+
@mixin last
|
43
|
+
margin-right: 0
|
44
|
+
clear: right
|
45
|
+
|
46
|
+
@mixin text-columns($n, $gutter: $grid-gutter-width)
|
47
|
+
-webkit-column-count: $n
|
48
|
+
-moz-column-count: $n
|
49
|
+
column-count: $n
|
50
|
+
-webkit-column-gap: $gutter
|
51
|
+
-moz-column-gap: $gutter
|
52
|
+
column-gap: $gutter
|
53
|
+
|
54
|
+
|
55
|
+
@mixin showgrid
|
56
|
+
background: url(../images/grid.png)
|
57
|
+
border:
|
58
|
+
top: 1px solid fade-out(#dd7d96, 0.7)
|
59
|
+
right: 1px solid fade-out(#7dcadd, 0.3)
|
@@ -0,0 +1,102 @@
|
|
1
|
+
/*
|
2
|
+
html5doctor.com Reset Stylesheet
|
3
|
+
v1.6.1
|
4
|
+
Last Updated: 2010-09-17
|
5
|
+
Author: Richard Clark - http: //richclarkdesign.com
|
6
|
+
Twitter: @rich_clark
|
7
|
+
|
8
|
+
$base-font-size: 16px !default
|
9
|
+
|
10
|
+
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, a, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video
|
11
|
+
margin: 0
|
12
|
+
padding: 0
|
13
|
+
border: 0
|
14
|
+
outline: 0
|
15
|
+
font:
|
16
|
+
size: 100%
|
17
|
+
weight: normal
|
18
|
+
style: normal
|
19
|
+
family: sans-serif
|
20
|
+
vertical-align: baseline
|
21
|
+
background: transparent
|
22
|
+
line-height: 1
|
23
|
+
|
24
|
+
body
|
25
|
+
font-size: $base-font-size
|
26
|
+
|
27
|
+
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section
|
28
|
+
display: block
|
29
|
+
|
30
|
+
h1, h2, h3, h4, h5, h6, strong, b
|
31
|
+
font-weight: bold
|
32
|
+
|
33
|
+
em, i
|
34
|
+
font-style: italic
|
35
|
+
|
36
|
+
nav ul
|
37
|
+
list-style: none
|
38
|
+
|
39
|
+
blockquote, q
|
40
|
+
quotes: none
|
41
|
+
|
42
|
+
blockquote:before, blockquote:after, q:before, q:after
|
43
|
+
content: ''
|
44
|
+
content: none
|
45
|
+
|
46
|
+
ins
|
47
|
+
text-decoration: none
|
48
|
+
|
49
|
+
mark
|
50
|
+
font-style: italic
|
51
|
+
font-weight: bold
|
52
|
+
|
53
|
+
del
|
54
|
+
text-decoration: line-through
|
55
|
+
|
56
|
+
abbr[title], dfn[title]
|
57
|
+
border-bottom: 1px dotted
|
58
|
+
cursor: help
|
59
|
+
|
60
|
+
table
|
61
|
+
border-collapse: collapse
|
62
|
+
border-spacing: 0
|
63
|
+
|
64
|
+
hr
|
65
|
+
display: block
|
66
|
+
height: 0px
|
67
|
+
border: 0
|
68
|
+
border-top: 1px solid #cccccc
|
69
|
+
margin: 0
|
70
|
+
padding: 0
|
71
|
+
|
72
|
+
input, select
|
73
|
+
vertical-align: middle
|
74
|
+
|
75
|
+
textarea
|
76
|
+
margin: 0
|
77
|
+
|
78
|
+
h1
|
79
|
+
font-size: 5em
|
80
|
+
h2
|
81
|
+
font-size: 4em
|
82
|
+
h3
|
83
|
+
font-size: 3em
|
84
|
+
h4
|
85
|
+
font-size: 2em
|
86
|
+
h5
|
87
|
+
font-size: 1.5em
|
88
|
+
h6
|
89
|
+
font-size: 1em
|
90
|
+
|
91
|
+
@mixin clearfix
|
92
|
+
display: block
|
93
|
+
&:after
|
94
|
+
display: block
|
95
|
+
overflow: hidden
|
96
|
+
visibility: hidden
|
97
|
+
clear: both
|
98
|
+
height: 0
|
99
|
+
content: "\0020"
|
100
|
+
|
101
|
+
.clear
|
102
|
+
@include clearfix
|
@@ -1,38 +1,2 @@
|
|
1
1
|
@import settings
|
2
|
-
@import
|
3
|
-
|
4
|
-
@import columns
|
5
|
-
|
6
|
-
body
|
7
|
-
@include container
|
8
|
-
color: #333
|
9
|
-
|
10
|
-
p
|
11
|
-
line-height: 1.5em
|
12
|
-
margin-bottom: 1.5em
|
13
|
-
&:last-child
|
14
|
-
margin-bottom: 0
|
15
|
-
|
16
|
-
section, header, footer
|
17
|
-
overflow: hidden
|
18
|
-
margin-bottom: 1.5em
|
19
|
-
padding-bottom: 1.5em
|
20
|
-
|
21
|
-
.box
|
22
|
-
@include column
|
23
|
-
@include span(4)
|
24
|
-
|
25
|
-
.fake-button
|
26
|
-
@include border-radius(0px 30px, true)
|
27
|
-
@include box-shadow(4px 4px 4px rgba(0,0,0,0.2))
|
28
|
-
@include box-gradient(#eee, #aaa)
|
29
|
-
|
30
|
-
section h4:first-child
|
31
|
-
margin-bottom: 0.5em
|
32
|
-
padding: 0.25em 0.5em
|
33
|
-
color: #fff
|
34
|
-
background: #333
|
35
|
-
|
36
|
-
.something
|
37
|
-
display: block
|
38
|
-
position: relative
|
2
|
+
@import gridpaper/all
|
data/gridpaper.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
|
21
21
|
s.add_dependency("commander", '>= 4.0.4')
|
22
22
|
s.add_dependency("sass", '>=3.1.7')
|
23
|
-
s.add_dependency("guard", '>=0.8.8')
|
24
|
-
s.add_dependency("guard-sass", '>=0.5.4')
|
25
23
|
s.add_dependency("colorize", '>= 0.5.8')
|
24
|
+
|
25
|
+
s.add_development_dependency("guard", '>=0.8.8')
|
26
26
|
end
|
data/lib/gridpaper.rb
CHANGED
@@ -2,29 +2,24 @@ require 'rubygems'
|
|
2
2
|
require 'gridpaper/version'
|
3
3
|
require 'commander/import'
|
4
4
|
require 'fileutils'
|
5
|
-
require 'yaml'
|
6
5
|
require 'colorize'
|
7
|
-
require 'guard'
|
8
|
-
# require 'guard-sass'
|
9
6
|
|
10
7
|
module Gridpaper
|
11
8
|
class Generate
|
12
9
|
|
13
10
|
# Add Gridpaper to your project
|
14
11
|
def initialize(path, stylesheets_dir="stylesheets", syntax=:sass)
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
12
|
+
copy_files_to(
|
13
|
+
File.join(path, stylesheets_dir),
|
14
|
+
syntax.to_s
|
15
|
+
)
|
21
16
|
end
|
22
17
|
|
23
18
|
private
|
24
19
|
|
25
20
|
def copy_files_to(destination, syntax)
|
26
21
|
template_dir = File.expand_path(File.join(File.dirname(__FILE__), '../', 'templates', syntax.to_s))
|
27
|
-
template_dir_dest = File.join(destination,
|
22
|
+
template_dir_dest = File.join(destination, 'sass')
|
28
23
|
project_dir = Dir.pwd
|
29
24
|
|
30
25
|
if File.exists?(template_dir_dest)
|
@@ -38,7 +33,7 @@ module Gridpaper
|
|
38
33
|
# templates directory for the specified syntax
|
39
34
|
Dir.chdir(File.expand_path(template_dir))
|
40
35
|
files = Dir['**/*']
|
41
|
-
|
36
|
+
|
42
37
|
Dir.chdir(project_dir)
|
43
38
|
|
44
39
|
files.each do |file|
|
@@ -63,33 +58,4 @@ module Gridpaper
|
|
63
58
|
end
|
64
59
|
end
|
65
60
|
|
66
|
-
class Watch
|
67
|
-
|
68
|
-
|
69
|
-
def initialize(input, output)
|
70
|
-
# working_dir = Dir.pwd
|
71
|
-
@@output_path = output
|
72
|
-
@@input_path = input
|
73
|
-
|
74
|
-
guardfile = File.expand_path(File.join(File.dirname(__FILE__), 'Guardfile'))
|
75
|
-
# puts guardfile.cyan
|
76
|
-
|
77
|
-
# Guard.setup
|
78
|
-
# Guard::Dsl.evaluate_guardfile(:guardfile => guardfile)
|
79
|
-
# Guard::Dsl.local_guardfile_path(guardfile)
|
80
|
-
# puts Guard::Dsl.guardfile_path.cyan
|
81
|
-
|
82
|
-
Guard.start(:guardfile => guardfile, :watchdir => input)
|
83
|
-
end
|
84
|
-
|
85
|
-
def self.output_path
|
86
|
-
return @@output_path
|
87
|
-
end
|
88
|
-
|
89
|
-
def self.input_path
|
90
|
-
return @@input_path
|
91
|
-
end
|
92
|
-
|
93
|
-
end
|
94
|
-
|
95
61
|
end
|
data/lib/gridpaper/version.rb
CHANGED
File without changes
|
@@ -0,0 +1,45 @@
|
|
1
|
+
.column {
|
2
|
+
height: 100px;
|
3
|
+
margin-bottom: 16px;
|
4
|
+
background-color: $light-grey;
|
5
|
+
border: 1px solid $medium-grey; }
|
6
|
+
|
7
|
+
#columns-1 {
|
8
|
+
.column {
|
9
|
+
@include column;
|
10
|
+
@include span(24, -2px); } }
|
11
|
+
|
12
|
+
#columns-2 {
|
13
|
+
.column {
|
14
|
+
@include column;
|
15
|
+
@include span(12, -2px); } }
|
16
|
+
|
17
|
+
#columns-3 {
|
18
|
+
.column {
|
19
|
+
@include column;
|
20
|
+
@include span(8, -2px); } }
|
21
|
+
|
22
|
+
#columns-4 {
|
23
|
+
.column {
|
24
|
+
@include column;
|
25
|
+
@include span(6, -2px); } }
|
26
|
+
|
27
|
+
#columns-6 {
|
28
|
+
.column {
|
29
|
+
@include column;
|
30
|
+
@include span(4, -2px); } }
|
31
|
+
|
32
|
+
#columns-8 {
|
33
|
+
.column {
|
34
|
+
@include column;
|
35
|
+
@include span(3, -2px); } }
|
36
|
+
|
37
|
+
#columns-12 {
|
38
|
+
.column {
|
39
|
+
@include column;
|
40
|
+
@include span(2, -2px); } }
|
41
|
+
|
42
|
+
#columns-24 {
|
43
|
+
.column {
|
44
|
+
@include column;
|
45
|
+
@include span(1, -2px); } }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gridpaper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-11-25 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: commander
|
16
|
-
requirement: &
|
16
|
+
requirement: &70163140373560 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 4.0.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70163140373560
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: sass
|
27
|
-
requirement: &
|
27
|
+
requirement: &70163140373060 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,40 +32,29 @@ dependencies:
|
|
32
32
|
version: 3.1.7
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70163140373060
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
|
-
name:
|
38
|
-
requirement: &
|
39
|
-
none: false
|
40
|
-
requirements:
|
41
|
-
- - ! '>='
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: 0.8.8
|
44
|
-
type: :runtime
|
45
|
-
prerelease: false
|
46
|
-
version_requirements: *70266714517760
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: guard-sass
|
49
|
-
requirement: &70266714517300 !ruby/object:Gem::Requirement
|
37
|
+
name: colorize
|
38
|
+
requirement: &70163140372540 !ruby/object:Gem::Requirement
|
50
39
|
none: false
|
51
40
|
requirements:
|
52
41
|
- - ! '>='
|
53
42
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.5.
|
43
|
+
version: 0.5.8
|
55
44
|
type: :runtime
|
56
45
|
prerelease: false
|
57
|
-
version_requirements: *
|
46
|
+
version_requirements: *70163140372540
|
58
47
|
- !ruby/object:Gem::Dependency
|
59
|
-
name:
|
60
|
-
requirement: &
|
48
|
+
name: guard
|
49
|
+
requirement: &70163140372060 !ruby/object:Gem::Requirement
|
61
50
|
none: false
|
62
51
|
requirements:
|
63
52
|
- - ! '>='
|
64
53
|
- !ruby/object:Gem::Version
|
65
|
-
version: 0.
|
66
|
-
type: :
|
54
|
+
version: 0.8.8
|
55
|
+
type: :development
|
67
56
|
prerelease: false
|
68
|
-
version_requirements: *
|
57
|
+
version_requirements: *70163140372060
|
69
58
|
description: Gridpaper is a CSS framework built on top of SASS.
|
70
59
|
email:
|
71
60
|
- christiannaths@gmail.com
|
@@ -80,21 +69,19 @@ files:
|
|
80
69
|
- README.rdoc
|
81
70
|
- Rakefile
|
82
71
|
- bin/gridpaper
|
83
|
-
- examples/images/Untitled-1.png
|
84
72
|
- examples/images/grid.png
|
85
73
|
- examples/index.html
|
86
|
-
- examples/stylesheets/sass/_columns.sass
|
87
74
|
- examples/stylesheets/sass/_settings.sass
|
75
|
+
- examples/stylesheets/sass/gridpaper/_all.sass
|
76
|
+
- examples/stylesheets/sass/gridpaper/_effects.sass
|
77
|
+
- examples/stylesheets/sass/gridpaper/_forms.sass
|
78
|
+
- examples/stylesheets/sass/gridpaper/_grid.sass
|
79
|
+
- examples/stylesheets/sass/gridpaper/_reset.sass
|
80
|
+
- examples/stylesheets/sass/gridpaper/_utilities.sass
|
88
81
|
- examples/stylesheets/sass/styles.sass
|
89
|
-
- examples/stylesheets/scss/nested_folder/_imported_file.scss
|
90
|
-
- examples/stylesheets/scss/nested_folder/generated.scss
|
91
|
-
- examples/stylesheets/scss/something.scss
|
92
82
|
- gridpaper.gemspec
|
93
|
-
- lib/Guardfile
|
94
83
|
- lib/gridpaper.rb
|
95
84
|
- lib/gridpaper/version.rb
|
96
|
-
- lib/guard/gridpaper-watch.rb
|
97
|
-
- templates/examples/_columns.sass
|
98
85
|
- templates/sass/_settings.sass
|
99
86
|
- templates/sass/gridpaper/_all.sass
|
100
87
|
- templates/sass/gridpaper/_effects.sass
|
@@ -102,6 +89,7 @@ files:
|
|
102
89
|
- templates/sass/gridpaper/_grid.sass
|
103
90
|
- templates/sass/gridpaper/_reset.sass
|
104
91
|
- templates/sass/gridpaper/_utilities.sass
|
92
|
+
- templates/sass/gridpaper/examples/_columns.sass
|
105
93
|
- templates/sass/styles.sass
|
106
94
|
- templates/scss/_settings.scss
|
107
95
|
- templates/scss/gridpaper/_all.scss
|
@@ -109,6 +97,8 @@ files:
|
|
109
97
|
- templates/scss/gridpaper/_forms.scss
|
110
98
|
- templates/scss/gridpaper/_grid.scss
|
111
99
|
- templates/scss/gridpaper/_reset.scss
|
100
|
+
- templates/scss/gridpaper/_utilities.scss
|
101
|
+
- templates/scss/gridpaper/examples/_columns.scss
|
112
102
|
- templates/scss/styles.scss
|
113
103
|
homepage: http://christiannaths.com
|
114
104
|
licenses: []
|
Binary file
|
@@ -1,51 +0,0 @@
|
|
1
|
-
#columns-example
|
2
|
-
.row
|
3
|
-
overflow: hidden
|
4
|
-
|
5
|
-
.grid-column
|
6
|
-
min-height: 15em
|
7
|
-
margin: 0.5em 0
|
8
|
-
@include showgrid
|
9
|
-
background-color: #f1f1f1
|
10
|
-
|
11
|
-
|
12
|
-
#two-columns
|
13
|
-
div
|
14
|
-
@include column
|
15
|
-
@include span(12, -1px)
|
16
|
-
|
17
|
-
#three-columns
|
18
|
-
div
|
19
|
-
@include column
|
20
|
-
@include span(8, -1px)
|
21
|
-
|
22
|
-
#four-columns
|
23
|
-
div
|
24
|
-
@include column
|
25
|
-
@include span(6, -1px)
|
26
|
-
|
27
|
-
#six-columns
|
28
|
-
div
|
29
|
-
@include column
|
30
|
-
@include span(4, -1px)
|
31
|
-
|
32
|
-
#eight-columns
|
33
|
-
div
|
34
|
-
@include column
|
35
|
-
@include span(3, -1px)
|
36
|
-
|
37
|
-
|
38
|
-
#text-columns-example
|
39
|
-
|
40
|
-
.text-columns
|
41
|
-
@include showgrid
|
42
|
-
margin-bottom: 1.5em
|
43
|
-
|
44
|
-
#two-text-columns
|
45
|
-
@include text-columns(2)
|
46
|
-
|
47
|
-
#three-text-columns
|
48
|
-
@include text-columns(3)
|
49
|
-
|
50
|
-
#four-text-columns
|
51
|
-
@include text-columns(4)
|
File without changes
|
@@ -1 +0,0 @@
|
|
1
|
-
@import "nested_folder/_imported_file";
|
data/lib/Guardfile
DELETED
@@ -1,147 +0,0 @@
|
|
1
|
-
require 'gridpaper'
|
2
|
-
require 'colorize'
|
3
|
-
require 'guard/guard'
|
4
|
-
require 'sass'
|
5
|
-
|
6
|
-
module ::Guard
|
7
|
-
class GridpaperSass < ::Guard::Guard
|
8
|
-
|
9
|
-
DEFAULTS = {
|
10
|
-
:output => 'css', # Output directory
|
11
|
-
:notification => true, # Enable notifications?
|
12
|
-
:shallow => false, # Output nested directories?
|
13
|
-
:style => :nested, # Nested output
|
14
|
-
:debug_info => false, # File and line number info for FireSass
|
15
|
-
:noop => false, # Do no write output file
|
16
|
-
:hide_success => false, # Do not show success message
|
17
|
-
:load_paths => Dir.glob('**/**').find_all {|i| File.directory?(i) }
|
18
|
-
}
|
19
|
-
|
20
|
-
def initialize(watchers = [], options = {})
|
21
|
-
if options[:input]
|
22
|
-
options[:output] = options[:input] unless options.has_key?(:output)
|
23
|
-
watchers << ::Guard::Watcher.new(%r{^#{options.delete(:input)}/(.+\.s[ac]ss)$})
|
24
|
-
end
|
25
|
-
|
26
|
-
super(watchers, DEFAULTS.merge(options))
|
27
|
-
end
|
28
|
-
|
29
|
-
|
30
|
-
# Builds the sass or scss. Determines engine to use by extension
|
31
|
-
# of path given.
|
32
|
-
#
|
33
|
-
# @param file [String] path to file to build
|
34
|
-
# @return [String] the output css
|
35
|
-
#
|
36
|
-
def build_sass(file)
|
37
|
-
content = File.new(file).read
|
38
|
-
# sass or scss?
|
39
|
-
type = file[-4..-1].to_sym
|
40
|
-
sass_options = {
|
41
|
-
:syntax => type,
|
42
|
-
:load_paths => options[:load_paths],
|
43
|
-
:style => options[:style].to_sym,
|
44
|
-
:debug_info => options[:debug_info],
|
45
|
-
}
|
46
|
-
|
47
|
-
::Sass::Engine.new(content, sass_options).render
|
48
|
-
end
|
49
|
-
|
50
|
-
# Get the file path to output the css based on the file being
|
51
|
-
# built.
|
52
|
-
#
|
53
|
-
# @param file [String] path to file being built
|
54
|
-
# @return [String] path to file where output should be written
|
55
|
-
#
|
56
|
-
def get_output(file)
|
57
|
-
folder = File.join ::Guard.listener.directory, options[:output]
|
58
|
-
|
59
|
-
unless options[:shallow]
|
60
|
-
watchers.product([file]).each do |watcher, file|
|
61
|
-
if matches = file.match(watcher.pattern)
|
62
|
-
if matches[1]
|
63
|
-
folder = File.join(::Guard.listener.directory, options[:output], File.dirname(matches[1])).gsub(/\/\.$/, '')
|
64
|
-
break
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
FileUtils.mkdir_p folder
|
71
|
-
r = File.join folder, File.basename(file).split('.')[0]
|
72
|
-
r << '.css'
|
73
|
-
end
|
74
|
-
|
75
|
-
def ignored?(path)
|
76
|
-
File.basename(path)[0,1] == "_"
|
77
|
-
end
|
78
|
-
|
79
|
-
# ================
|
80
|
-
# = Guard method =
|
81
|
-
# ================
|
82
|
-
|
83
|
-
# Build all files being watched
|
84
|
-
def run_all
|
85
|
-
run_on_change(Watcher.match_files(self, Dir.glob(File.join('**', '[^_]*.*'))))
|
86
|
-
end
|
87
|
-
|
88
|
-
# Build the files given
|
89
|
-
def run_on_change(paths)
|
90
|
-
partials = paths.select { |f| ignored?(f) }
|
91
|
-
return run_all unless partials.empty?
|
92
|
-
|
93
|
-
changed_files = paths.reject{ |f| ignored?(f) }.map do |file|
|
94
|
-
css_file = get_output(file)
|
95
|
-
begin
|
96
|
-
contents = build_sass(file)
|
97
|
-
if contents
|
98
|
-
message = options[:noop] ? "verified #{file}" : "rebuilt #{file}"
|
99
|
-
|
100
|
-
File.open(css_file, 'w') {|f| f.write(contents) } unless options[:noop]
|
101
|
-
::Guard::UI.info "-> #{message}", :reset => true
|
102
|
-
if options[:notification] && !options[:hide_success]
|
103
|
-
::Guard::Notifier.notify(message, :title => "Guard::Sass", :image => :success)
|
104
|
-
end
|
105
|
-
end
|
106
|
-
css_file
|
107
|
-
rescue ::Sass::SyntaxError => e
|
108
|
-
::Guard::UI.error "Sass > #{e.sass_backtrace_str(file)}"
|
109
|
-
::Guard::Notifier.notify(
|
110
|
-
(options[:noop] ? 'validation' : 'rebuild') + " failed > #{e.sass_backtrace_str(file)}",
|
111
|
-
:title => "Guard::Sass",
|
112
|
-
:image => :error
|
113
|
-
) if options[:notification]
|
114
|
-
nil
|
115
|
-
end
|
116
|
-
end.compact
|
117
|
-
notify changed_files
|
118
|
-
end
|
119
|
-
|
120
|
-
def notify(changed_files)
|
121
|
-
::Guard.guards.reject{ |guard| guard == self }.each do |guard|
|
122
|
-
paths = Watcher.match_files(guard, changed_files)
|
123
|
-
guard.run_on_change paths unless paths.empty?
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
# input = File.join(Gridpaper::Watch::DIR, 'stylesheets')
|
133
|
-
# output = File.join(Gridpaper::Watch::DIR, 'stylesheets')
|
134
|
-
puts "#{ Gridpaper::Watch.input_path } => #{ Gridpaper::Watch.output_path }".light_red
|
135
|
-
|
136
|
-
guard 'gridpaper-sass', :input => Gridpaper::Watch.input_path, :output => Gridpaper::Watch.output_path do
|
137
|
-
# watch %r{^(s[ac]ss)/(.+\.s[ac]ss)$}
|
138
|
-
watch %r{^(.+\.s[ac]ss)$}
|
139
|
-
end
|
140
|
-
|
141
|
-
# guard 'sass',
|
142
|
-
# :input => Gridpaper::Watch.input_path,
|
143
|
-
# :output => Gridpaper::Watch.output_path,
|
144
|
-
# :style => :compact,
|
145
|
-
# :debug_info_ => true do
|
146
|
-
# watch %r{^(.+\.s[ac]ss)$}
|
147
|
-
# end
|
@@ -1,129 +0,0 @@
|
|
1
|
-
require 'guard'
|
2
|
-
require 'guard/guard'
|
3
|
-
require 'guard/watcher'
|
4
|
-
|
5
|
-
require 'sass'
|
6
|
-
|
7
|
-
module Guard
|
8
|
-
class GridpaperWatch < Guard
|
9
|
-
|
10
|
-
DEFAULTS = {
|
11
|
-
:output => 'css', # Output directory
|
12
|
-
:notification => true, # Enable notifications?
|
13
|
-
:shallow => false, # Output nested directories?
|
14
|
-
:style => :nested, # Nested output
|
15
|
-
:debug_info => false, # File and line number info for FireSass
|
16
|
-
:noop => false, # Do no write output file
|
17
|
-
:hide_success => false, # Do not show success message
|
18
|
-
:load_paths => Dir.glob('**/**').find_all {|i| File.directory?(i) }
|
19
|
-
}
|
20
|
-
|
21
|
-
def initialize(watchers = [], options = {})
|
22
|
-
if options[:input]
|
23
|
-
options[:output] = options[:input] unless options.has_key?(:output)
|
24
|
-
watchers << ::Guard::Watcher.new(%r{^#{options.delete(:input)}/(.+\.s[ac]ss)$})
|
25
|
-
end
|
26
|
-
|
27
|
-
super(watchers, DEFAULTS.merge(options))
|
28
|
-
end
|
29
|
-
|
30
|
-
|
31
|
-
# Builds the sass or scss. Determines engine to use by extension
|
32
|
-
# of path given.
|
33
|
-
#
|
34
|
-
# @param file [String] path to file to build
|
35
|
-
# @return [String] the output css
|
36
|
-
#
|
37
|
-
def build_sass(file)
|
38
|
-
content = File.new(file).read
|
39
|
-
# sass or scss?
|
40
|
-
type = file[-4..-1].to_sym
|
41
|
-
sass_options = {
|
42
|
-
:syntax => type,
|
43
|
-
:load_paths => options[:load_paths],
|
44
|
-
:style => options[:style].to_sym,
|
45
|
-
:debug_info => options[:debug_info],
|
46
|
-
}
|
47
|
-
|
48
|
-
::Sass::Engine.new(content, sass_options).render
|
49
|
-
end
|
50
|
-
|
51
|
-
# Get the file path to output the css based on the file being
|
52
|
-
# built.
|
53
|
-
#
|
54
|
-
# @param file [String] path to file being built
|
55
|
-
# @return [String] path to file where output should be written
|
56
|
-
#
|
57
|
-
def get_output(file)
|
58
|
-
folder = File.join ::Guard.listener.directory, options[:output]
|
59
|
-
|
60
|
-
unless options[:shallow]
|
61
|
-
watchers.product([file]).each do |watcher, file|
|
62
|
-
if matches = file.match(watcher.pattern)
|
63
|
-
if matches[1]
|
64
|
-
folder = File.join(::Guard.listener.directory, options[:output], File.dirname(matches[1])).gsub(/\/\.$/, '')
|
65
|
-
break
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
FileUtils.mkdir_p folder
|
72
|
-
r = File.join folder, File.basename(file).split('.')[0]
|
73
|
-
r << '.css'
|
74
|
-
end
|
75
|
-
|
76
|
-
def ignored?(path)
|
77
|
-
File.basename(path)[0,1] == "_"
|
78
|
-
end
|
79
|
-
|
80
|
-
# ================
|
81
|
-
# = Guard method =
|
82
|
-
# ================
|
83
|
-
|
84
|
-
# Build all files being watched
|
85
|
-
def run_all
|
86
|
-
run_on_change(Watcher.match_files(self, Dir.glob(File.join('**', '[^_]*.*'))))
|
87
|
-
end
|
88
|
-
|
89
|
-
# Build the files given
|
90
|
-
def run_on_change(paths)
|
91
|
-
partials = paths.select { |f| ignored?(f) }
|
92
|
-
return run_all unless partials.empty?
|
93
|
-
|
94
|
-
changed_files = paths.reject{ |f| ignored?(f) }.map do |file|
|
95
|
-
css_file = get_output(file)
|
96
|
-
begin
|
97
|
-
contents = build_sass(file)
|
98
|
-
if contents
|
99
|
-
message = options[:noop] ? "verified #{file}" : "rebuilt #{file}"
|
100
|
-
|
101
|
-
File.open(css_file, 'w') {|f| f.write(contents) } unless options[:noop]
|
102
|
-
::Guard::UI.info "-> #{message}", :reset => true
|
103
|
-
if options[:notification] && !options[:hide_success]
|
104
|
-
::Guard::Notifier.notify(message, :title => "Guard::Sass", :image => :success)
|
105
|
-
end
|
106
|
-
end
|
107
|
-
css_file
|
108
|
-
rescue ::Sass::SyntaxError => e
|
109
|
-
::Guard::UI.error "Sass > #{e.sass_backtrace_str(file)}"
|
110
|
-
::Guard::Notifier.notify(
|
111
|
-
(options[:noop] ? 'validation' : 'rebuild') + " failed > #{e.sass_backtrace_str(file)}",
|
112
|
-
:title => "Guard::Sass",
|
113
|
-
:image => :error
|
114
|
-
) if options[:notification]
|
115
|
-
nil
|
116
|
-
end
|
117
|
-
end.compact
|
118
|
-
notify changed_files
|
119
|
-
end
|
120
|
-
|
121
|
-
def notify(changed_files)
|
122
|
-
::Guard.guards.reject{ |guard| guard == self }.each do |guard|
|
123
|
-
paths = Watcher.match_files(guard, changed_files)
|
124
|
-
guard.run_on_change paths unless paths.empty?
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
end
|
129
|
-
end
|