keystone-sass 0.1.0

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.
Files changed (32) hide show
  1. data/Manifest +30 -0
  2. data/README.md +12 -0
  3. data/Rakefile +17 -0
  4. data/app/assets/stylesheets/_keystone.scss +4 -0
  5. data/app/assets/stylesheets/keystone/_css3.scss +6 -0
  6. data/app/assets/stylesheets/keystone/_scaffolding.scss +3 -0
  7. data/app/assets/stylesheets/keystone/_typography.scss +3 -0
  8. data/app/assets/stylesheets/keystone/_utilities.scss +3 -0
  9. data/app/assets/stylesheets/keystone/css3/_background-clip.scss +5 -0
  10. data/app/assets/stylesheets/keystone/css3/_border-radius.scss +5 -0
  11. data/app/assets/stylesheets/keystone/css3/_box-shadow.scss +5 -0
  12. data/app/assets/stylesheets/keystone/css3/_box-sizing.scss +5 -0
  13. data/app/assets/stylesheets/keystone/css3/_opacity.scss +6 -0
  14. data/app/assets/stylesheets/keystone/css3/_transition.scss +5 -0
  15. data/app/assets/stylesheets/keystone/scaffolding/_grid.scss +0 -0
  16. data/app/assets/stylesheets/keystone/scaffolding/_reset.scss +75 -0
  17. data/app/assets/stylesheets/keystone/scaffolding/_structure.scss +23 -0
  18. data/app/assets/stylesheets/keystone/typography/_links.scss +66 -0
  19. data/app/assets/stylesheets/keystone/typography/_lists.scss +38 -0
  20. data/app/assets/stylesheets/keystone/typography/_replacement.scss +12 -0
  21. data/app/assets/stylesheets/keystone/utilities/_alignment.scss +3 -0
  22. data/app/assets/stylesheets/keystone/utilities/_autoclear.scss +11 -0
  23. data/app/assets/stylesheets/keystone/utilities/_hoverbox.scss +32 -0
  24. data/bin/keystone +5 -0
  25. data/keystone-sass.gemspec +30 -0
  26. data/keystone.gemspec +30 -0
  27. data/lib/keystone.rb +7 -0
  28. data/lib/keystone/boot.rb +17 -0
  29. data/lib/keystone/cli.rb +27 -0
  30. data/lib/keystone/compiler.rb +60 -0
  31. data/lib/keystone/installer.rb +53 -0
  32. metadata +90 -0
@@ -0,0 +1,30 @@
1
+ README.md
2
+ Rakefile
3
+ app/assets/stylesheets/_keystone.scss
4
+ app/assets/stylesheets/keystone/_css3.scss
5
+ app/assets/stylesheets/keystone/_scaffolding.scss
6
+ app/assets/stylesheets/keystone/_typography.scss
7
+ app/assets/stylesheets/keystone/_utilities.scss
8
+ app/assets/stylesheets/keystone/css3/_background-clip.scss
9
+ app/assets/stylesheets/keystone/css3/_border-radius.scss
10
+ app/assets/stylesheets/keystone/css3/_box-shadow.scss
11
+ app/assets/stylesheets/keystone/css3/_box-sizing.scss
12
+ app/assets/stylesheets/keystone/css3/_opacity.scss
13
+ app/assets/stylesheets/keystone/css3/_transition.scss
14
+ app/assets/stylesheets/keystone/scaffolding/_grid.scss
15
+ app/assets/stylesheets/keystone/scaffolding/_reset.scss
16
+ app/assets/stylesheets/keystone/scaffolding/_structure.scss
17
+ app/assets/stylesheets/keystone/typography/_links.scss
18
+ app/assets/stylesheets/keystone/typography/_lists.scss
19
+ app/assets/stylesheets/keystone/typography/_replacement.scss
20
+ app/assets/stylesheets/keystone/utilities/_alignment.scss
21
+ app/assets/stylesheets/keystone/utilities/_autoclear.scss
22
+ app/assets/stylesheets/keystone/utilities/_hoverbox.scss
23
+ bin/keystone
24
+ keystone.gemspec
25
+ lib/keystone.rb
26
+ lib/keystone/boot.rb
27
+ lib/keystone/cli.rb
28
+ lib/keystone/compiler.rb
29
+ lib/keystone/installer.rb
30
+ Manifest
@@ -0,0 +1,12 @@
1
+ ___ ___ ___ ___ ___ ___
2
+ /__/| / /\ ___ / /\ ___ / /\ /__/\ / /\
3
+ | |:| / /:/_ /__/| / /:/_ / /\ / /::\ \ \:\ / /:/_
4
+ | |:| / /:/ /\ | |:| / /:/ /\ / /:/ / /:/\:\ \ \:\ / /:/ /\
5
+ __| |:| / /:/ /:/_ | |:| / /:/ /::\ / /:/ / /:/ \:\ _____\__\:\ / /:/ /:/_
6
+ /__/\_|:|____ /__/:/ /:/ /\ __|__|:| /__/:/ /:/\:\ / /::\ /__/:/ \__\:\ /__/::::::::\ /__/:/ /:/ /\
7
+ \ \:\/:::::/ \ \:\/:/ /:/ /__/::::\ \ \:\/:/~/:/ /__/:/\:\ \ \:\ / /:/ \ \:\~~\~~\/ \ \:\/:/ /:/
8
+ \ \::/~~~~ \ \::/ /:/ ~\~~\:\ \ \::/ /:/ \__\/ \:\ \ \:\ /:/ \ \:\ ~~~ \ \::/ /:/
9
+ \ \:\ \ \:\/:/ \ \:\ \__\/ /:/ \ \:\ \ \:\/:/ \ \:\ \ \:\/:/
10
+ \ \:\ \ \::/ \__\/ /__/:/ \__\/ \ \::/ \ \:\ \ \::/
11
+ \__\/ \__\/ \__\/ \__\/ \__\/ \__\/
12
+
@@ -0,0 +1,17 @@
1
+ $: << File.expand_path(File.dirname(__FILE__) + "/lib")
2
+
3
+ require 'rubygems'
4
+ require 'rake'
5
+ require 'bundler'
6
+ require 'echoe'
7
+ require 'keystone'
8
+
9
+ Echoe.new('keystone-sass', Keystone::VERSION) do |p|
10
+ p.description = "A library of Sass mixins."
11
+ p.summary = "Keystone provides a simple library of commonly used design patterns in the form of Sass mixins."
12
+ p.url = "http://github.com/imulus/keystone"
13
+ p.author = "Imulus"
14
+ p.email = "developer@imulus.com"
15
+ p.ignore_pattern = ["tmp/*", "test/*"]
16
+ p.development_dependencies = []
17
+ end
@@ -0,0 +1,4 @@
1
+ @import "keystone/css3";
2
+ @import "keystone/scaffolding";
3
+ @import "keystone/typography";
4
+ @import "keystone/utilities";
@@ -0,0 +1,6 @@
1
+ @import "css3/background-clip";
2
+ @import "css3/border-radius";
3
+ @import "css3/box-shadow";
4
+ @import "css3/box-sizing";
5
+ @import "css3/opacity";
6
+ @import "css3/transition";
@@ -0,0 +1,3 @@
1
+ @import "scaffolding/grid";
2
+ @import "scaffolding/reset";
3
+ @import "scaffolding/structure";
@@ -0,0 +1,3 @@
1
+ @import "typography/links";
2
+ @import "typography/lists";
3
+ @import "typography/replacement";
@@ -0,0 +1,3 @@
1
+ @import "utilities/alignment";
2
+ @import "utilities/autoclear";
3
+ @import "utilities/hoverbox";
@@ -0,0 +1,5 @@
1
+ @mixin background-clip($clip) {
2
+ -webkit-background-clip: $clip;
3
+ -moz-background-clip: $clip;
4
+ background-clip: $clip;
5
+ }
@@ -0,0 +1,5 @@
1
+ @mixin border-radius($radius: 5px) {
2
+ -webkit-border-radius: $radius;
3
+ -moz-border-radius: $radius;
4
+ border-radius: $radius;
5
+ }
@@ -0,0 +1,5 @@
1
+ @mixin box-shadow($shadow: 0 1px 3px rgba(0,0,0,.25)) {
2
+ -webkit-box-shadow: $shadow;
3
+ -moz-box-shadow: $shadow;
4
+ box-shadow: $shadow;
5
+ }
@@ -0,0 +1,5 @@
1
+ @mixin box-sizing($sizing) {
2
+ -webkit-box-sizing: $sizing;
3
+ -moz-box-sizing: $sizing;
4
+ box-sizing: $sizing;
5
+ }
@@ -0,0 +1,6 @@
1
+ @mixin opacity($opacity: 100) {
2
+ filter: alpha(opacity=$opacity);
3
+ -moz-opacity: $opacity * 0.01;
4
+ -khtml-opacity: $opacity * 0.01;
5
+ opacity: $opacity * 0.01;
6
+ }
@@ -0,0 +1,5 @@
1
+ @mixin transition($transition) {
2
+ -webkit-transition: $transition;
3
+ -moz-transition: $transition;
4
+ transition: $transition;
5
+ }
@@ -0,0 +1,75 @@
1
+ @mixin global-reset {
2
+ html, body, div, span, applet, object, iframe,
3
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
4
+ a, abbr, acronym, address, big, cite, code,
5
+ del, dfn, em, img, ins, kbd, q, s, samp,
6
+ small, strike, strong, sub, sup, tt, var,
7
+ b, u, i, center,
8
+ dl, dt, dd, ol, ul, li,
9
+ fieldset, form, label, legend,
10
+ table, caption, tbody, tfoot, thead, tr, th, td,
11
+ article, aside, canvas, details, embed,
12
+ figure, figcaption, footer, header, hgroup,
13
+ menu, nav, output, ruby, section, summary,
14
+ time, mark, audio, video {
15
+ margin: 0;
16
+ padding: 0;
17
+ border: 0;
18
+ font-size: 100%;
19
+ font: inherit;
20
+ vertical-align: baseline;
21
+ }
22
+
23
+ article, aside, details, figcaption, figure,
24
+ footer, header, hgroup, menu, nav, section {
25
+ display: block;
26
+ }
27
+
28
+ body {
29
+ line-height: 1;
30
+ }
31
+
32
+ ol, ul {
33
+ list-style: none;
34
+ }
35
+
36
+ blockquote, q {
37
+ quotes: none;
38
+ }
39
+
40
+ blockquote:before, blockquote:after,
41
+ q:before, q:after {
42
+ content: "";
43
+ content: none;
44
+ }
45
+
46
+ table {
47
+ border-collapse: collapse;
48
+ border-spacing: 0;
49
+ }
50
+ }
51
+
52
+ @mixin imulus-reset {
53
+ input, select, textarea, button {
54
+ background: transparent;
55
+ margin: 0;
56
+ padding: 0;
57
+ border: 0;
58
+ }
59
+
60
+ ins {
61
+ text-decoration: none;
62
+ }
63
+
64
+ del {
65
+ text-decoration: line-through;
66
+ }
67
+
68
+ strong {
69
+ font-weight: bold;
70
+ }
71
+
72
+ em {
73
+ font-style: italic;
74
+ }
75
+ }
@@ -0,0 +1,23 @@
1
+ @mixin html($html-background: false) {
2
+ font: $font-size/normal $sans-serif;
3
+ color: $font-color;
4
+ @if $html-background {
5
+ background: $html-background;
6
+ }
7
+ overflow-y: scroll;
8
+ }
9
+
10
+ @mixin body($body-background: false) {
11
+ position: relative;
12
+ line-height: $baseline;
13
+ @if $body-background {
14
+ background: $body-background;
15
+ }
16
+ }
17
+
18
+ @mixin container($width) {
19
+ position: relative;
20
+ width: $width;
21
+ margin: 0 auto;
22
+ @include autoclear;
23
+ }
@@ -0,0 +1,66 @@
1
+ @mixin link-colors($normal, $hover: false, $active: false, $visited: false, $focus: false) {
2
+ color: $normal;
3
+
4
+ @if $visited {
5
+ &:visited {
6
+ color: $visited;
7
+ }
8
+ }
9
+
10
+ @if $focus {
11
+ &:focus {
12
+ color: $focus;
13
+ }
14
+ }
15
+
16
+ @if $hover {
17
+ &:hover {
18
+ color: $hover;
19
+ }
20
+ }
21
+
22
+ @if $active {
23
+ &:active {
24
+ color: $active;
25
+ }
26
+ }
27
+ }
28
+
29
+ @mixin link-underlines($normal, $hover: false, $active: false, $visited: false, $focus: false) {
30
+ text-decoration: $normal;
31
+
32
+ @if $visited {
33
+ &:visited {
34
+ text-decoration: $visited;
35
+ }
36
+ }
37
+
38
+ @if $focus {
39
+ &:focus {
40
+ text-decoration: $focus;
41
+ }
42
+ }
43
+
44
+ @if $hover {
45
+ &:hover {
46
+ text-decoration: $hover;
47
+ }
48
+ }
49
+
50
+ @if $active {
51
+ &:active {
52
+ text-decoration: $active;
53
+ }
54
+ }
55
+ }
56
+
57
+ @mixin unstyled-link {
58
+ color: inherit;
59
+ text-decoration: inherit;
60
+ cursor: inherit;
61
+
62
+ &:active,
63
+ &:focus {
64
+ outline: none;
65
+ }
66
+ }
@@ -0,0 +1,38 @@
1
+ @mixin no-bullets {
2
+ list-style: none;
3
+ margin-left: 0;
4
+
5
+ ul, ol {
6
+ list-style: none;
7
+ margin-left: 0;
8
+ }
9
+ }
10
+
11
+ @mixin inline-list {
12
+ @include no-bullets;
13
+ float: left;
14
+
15
+ li {
16
+ float: left;
17
+ }
18
+ }
19
+
20
+ @mixin fancy-lists {
21
+ ul {
22
+ padding: 0 0 10px 15px;
23
+
24
+ li {
25
+ padding: 0 0 5px 15px;
26
+ background: url("/images/icons/bullet.png") left 5px no-repeat;
27
+ }
28
+
29
+ ul {
30
+ padding-bottom: 0;
31
+ padding-top: 5px;
32
+
33
+ li {
34
+ background-image: url("/images/icons/bullet-inner.png");
35
+ }
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,12 @@
1
+ @mixin hide-text {
2
+ text-indent: -9999px;
3
+ overflow: hidden;
4
+ text-align: left;
5
+ }
6
+
7
+ @mixin image-replacement($image, $width, $height, $x: 0, $y: 0) {
8
+ @include hide-text;
9
+ background: url($image) $x $y no-repeat;
10
+ width: $width;
11
+ height: $height;
12
+ }
@@ -0,0 +1,3 @@
1
+ @mixin align-center {
2
+ text-align: center;
3
+ }
@@ -0,0 +1,11 @@
1
+ @mixin autoclear {
2
+ zoom: 1;
3
+ &:before,
4
+ &:after {
5
+ display: table;
6
+ content: "";
7
+ }
8
+ &:after {
9
+ clear: both;
10
+ }
11
+ }
@@ -0,0 +1,32 @@
1
+ @mixin hoverbox {
2
+ a.hover-box img,
3
+ a.hover-box img.original {
4
+ float: left;
5
+ position: relative;
6
+ }
7
+
8
+ a.hover-box img.hover {
9
+ display: none;
10
+ }
11
+
12
+ a.hover-box {
13
+ position: relative;
14
+ float: left;
15
+ display: block;
16
+ }
17
+
18
+ a.hover-box:hover {
19
+ display: block;
20
+ font-size: 100%;
21
+ z-index: 1;
22
+ }
23
+
24
+ a.hover-box:hover img.hover {
25
+ display: block;
26
+ position: absolute;
27
+ float: left;
28
+ left: 0;
29
+ top: 0;
30
+ z-index: 10;
31
+ }
32
+ }
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $: << File.expand_path(File.dirname(__FILE__) + "/../lib")
4
+ require 'rubygems'
5
+ require 'keystone/cli'
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "keystone-sass"
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Imulus"]
9
+ s.date = "2012-03-08"
10
+ s.description = "A library of Sass mixins."
11
+ s.email = "developer@imulus.com"
12
+ s.executables = ["keystone"]
13
+ s.extra_rdoc_files = ["README.md", "bin/keystone", "lib/keystone.rb", "lib/keystone/boot.rb", "lib/keystone/cli.rb", "lib/keystone/compiler.rb", "lib/keystone/installer.rb"]
14
+ s.files = ["README.md", "Rakefile", "app/assets/stylesheets/_keystone.scss", "app/assets/stylesheets/keystone/_css3.scss", "app/assets/stylesheets/keystone/_scaffolding.scss", "app/assets/stylesheets/keystone/_typography.scss", "app/assets/stylesheets/keystone/_utilities.scss", "app/assets/stylesheets/keystone/css3/_background-clip.scss", "app/assets/stylesheets/keystone/css3/_border-radius.scss", "app/assets/stylesheets/keystone/css3/_box-shadow.scss", "app/assets/stylesheets/keystone/css3/_box-sizing.scss", "app/assets/stylesheets/keystone/css3/_opacity.scss", "app/assets/stylesheets/keystone/css3/_transition.scss", "app/assets/stylesheets/keystone/scaffolding/_grid.scss", "app/assets/stylesheets/keystone/scaffolding/_reset.scss", "app/assets/stylesheets/keystone/scaffolding/_structure.scss", "app/assets/stylesheets/keystone/typography/_links.scss", "app/assets/stylesheets/keystone/typography/_lists.scss", "app/assets/stylesheets/keystone/typography/_replacement.scss", "app/assets/stylesheets/keystone/utilities/_alignment.scss", "app/assets/stylesheets/keystone/utilities/_autoclear.scss", "app/assets/stylesheets/keystone/utilities/_hoverbox.scss", "bin/keystone", "keystone.gemspec", "lib/keystone.rb", "lib/keystone/boot.rb", "lib/keystone/cli.rb", "lib/keystone/compiler.rb", "lib/keystone/installer.rb", "Manifest", "keystone-sass.gemspec"]
15
+ s.homepage = "http://github.com/imulus/keystone"
16
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Keystone-sass", "--main", "README.md"]
17
+ s.require_paths = ["lib"]
18
+ s.rubyforge_project = "keystone-sass"
19
+ s.rubygems_version = "1.8.17"
20
+ s.summary = "Keystone provides a simple library of commonly used design patterns in the form of Sass mixins."
21
+
22
+ if s.respond_to? :specification_version then
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
+ else
27
+ end
28
+ else
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "keystone"
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Imulus"]
9
+ s.date = "2012-03-08"
10
+ s.description = "A library of Sass mixins."
11
+ s.email = "developer@imulus.com"
12
+ s.executables = ["keystone"]
13
+ s.extra_rdoc_files = ["README.md", "bin/keystone", "lib/keystone.rb", "lib/keystone/boot.rb", "lib/keystone/cli.rb", "lib/keystone/compiler.rb", "lib/keystone/installer.rb"]
14
+ s.files = ["README.md", "Rakefile", "app/assets/stylesheets/_keystone.scss", "app/assets/stylesheets/keystone/_css3.scss", "app/assets/stylesheets/keystone/_scaffolding.scss", "app/assets/stylesheets/keystone/_typography.scss", "app/assets/stylesheets/keystone/_utilities.scss", "app/assets/stylesheets/keystone/css3/_background-clip.scss", "app/assets/stylesheets/keystone/css3/_border-radius.scss", "app/assets/stylesheets/keystone/css3/_box-shadow.scss", "app/assets/stylesheets/keystone/css3/_box-sizing.scss", "app/assets/stylesheets/keystone/css3/_opacity.scss", "app/assets/stylesheets/keystone/css3/_transition.scss", "app/assets/stylesheets/keystone/scaffolding/_grid.scss", "app/assets/stylesheets/keystone/scaffolding/_reset.scss", "app/assets/stylesheets/keystone/scaffolding/_structure.scss", "app/assets/stylesheets/keystone/typography/_links.scss", "app/assets/stylesheets/keystone/typography/_lists.scss", "app/assets/stylesheets/keystone/typography/_replacement.scss", "app/assets/stylesheets/keystone/utilities/_alignment.scss", "app/assets/stylesheets/keystone/utilities/_autoclear.scss", "app/assets/stylesheets/keystone/utilities/_hoverbox.scss", "bin/keystone", "lib/keystone.rb", "lib/keystone/boot.rb", "lib/keystone/cli.rb", "lib/keystone/compiler.rb", "lib/keystone/installer.rb", "Manifest", "keystone.gemspec"]
15
+ s.homepage = "http://github.com/imulus/keystone"
16
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Keystone", "--main", "README.md"]
17
+ s.require_paths = ["lib"]
18
+ s.rubyforge_project = "keystone"
19
+ s.rubygems_version = "1.8.10"
20
+ s.summary = "Keystone provides a simple library of commonly used design patterns in the form of Sass mixins."
21
+
22
+ if s.respond_to? :specification_version then
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
+ else
27
+ end
28
+ else
29
+ end
30
+ end
@@ -0,0 +1,7 @@
1
+ require 'keystone/boot'
2
+ require 'keystone/installer'
3
+ require 'keystone/compiler'
4
+
5
+ module Keystone
6
+ VERSION = "0.1.0"
7
+ end
@@ -0,0 +1,17 @@
1
+ module Keystone
2
+ class Boot
3
+ def initialize(commands, options)
4
+ @commands = commands
5
+ @options = options
6
+ end
7
+
8
+ def run
9
+ case @commands[0]
10
+ when "install"
11
+ Keystone::Installer.new(@options).install
12
+ when "compile"
13
+ Keystone::Compiler.new.compile
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,27 @@
1
+ require 'keystone'
2
+ require 'optparse'
3
+
4
+ options = {}
5
+
6
+ optparse = OptionParser.new do |opts|
7
+ opts.banner = "Usage: keystone command [arguments]"
8
+
9
+ opts.on( '-h', '--help', 'Display this screen' ) do
10
+ puts opts
11
+ exit 0
12
+ end
13
+
14
+ opts.on( '-v', '--version', 'Display the program version' ) do
15
+ puts "keystone #{Keystone::VERSION}"
16
+ exit 0
17
+ end
18
+
19
+ options[:path] = nil
20
+ opts.on( '-p', '--path PATH', 'Specify a path' ) do |path|
21
+ options[:path] = path
22
+ end
23
+ end
24
+
25
+ optparse.parse!
26
+
27
+ Keystone::Boot.new(ARGV, options).run
@@ -0,0 +1,60 @@
1
+ module Keystone
2
+ class Compiler
3
+ def compile
4
+ sub_directories_of(keystone_directory).each do |directory|
5
+ create_manifest(directory, get_partials_from(directory))
6
+ end
7
+ end
8
+
9
+ private
10
+
11
+ # TODO - Add toggle to allow any directory to be compiled, i.e. keystone compile -p my_keystone_install
12
+ def top_level_directory
13
+ File.dirname(File.dirname(File.dirname(__FILE__)))
14
+ end
15
+
16
+ def stylesheets_directory
17
+ File.join(top_level_directory, "app", "assets", "stylesheets")
18
+ end
19
+
20
+ def keystone_directory
21
+ File.join(stylesheets_directory, "keystone")
22
+ end
23
+
24
+ def sub_directories_of parent_directory
25
+ Dir.entries(parent_directory).select do |entry|
26
+ File.directory? File.join(keystone_directory,entry) and !(entry == '.' || entry == '..')
27
+ end
28
+ end
29
+
30
+ def get_partials_from directory
31
+ # TODO - Confirm file is a partial by presence of an underscore
32
+ Dir.entries(File.join(keystone_directory,directory)).select do |entry|
33
+ File.file? File.join(keystone_directory,directory,entry) and File.extname(entry) == ".scss"
34
+ end
35
+ end
36
+
37
+ # TODO - Clean this up
38
+ def create_manifest directory, partials
39
+ File.open("#{keystone_directory}/_#{directory}.scss", 'w') do |output_file|
40
+ puts "\nCreating _#{directory}.scss"
41
+ partials.each do |partial|
42
+ puts "+ #{partial}"
43
+ partial = partial.sub('.scss', '').sub('_', '')
44
+ output_file.write("@import \"#{directory}/#{partial}\";\n")
45
+ end
46
+ end
47
+
48
+ files = Dir.entries(keystone_directory).select { |entry| File.file? File.join(keystone_directory,entry) }
49
+
50
+ File.open("#{stylesheets_directory}/_keystone.scss", 'w') do |output_file|
51
+ files.each do |file|
52
+ if File.extname(file) == ".scss"
53
+ file = file.sub(/.scss/, '').sub(/_/, '')
54
+ output_file.write("@import \"keystone/#{file}\";\n")
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,53 @@
1
+ require 'fileutils'
2
+
3
+ module Keystone
4
+ class Installer
5
+ def initialize(options)
6
+ @options = options
7
+ end
8
+
9
+ def install
10
+ if keystone_exists?
11
+ puts "Error: Keystone already exists."
12
+ else
13
+ install_keystone
14
+ puts "Keystone successfully installed to #{target_folder}/keystone/"
15
+ end
16
+ end
17
+
18
+ private
19
+
20
+ def target_folder
21
+ @options[:path] or Dir.pwd
22
+ end
23
+
24
+ def keystone_exists?
25
+ File.directory?("#{target_folder}/keystone")
26
+ end
27
+
28
+ def install_keystone
29
+ create_directory
30
+ copy_all_files
31
+ end
32
+
33
+ def create_directory
34
+ FileUtils.mkdir_p("#{target_folder}/keystone/")
35
+ end
36
+
37
+ def copy_all_files
38
+ FileUtils.cp_r(all_files, "#{target_folder}/keystone/")
39
+ end
40
+
41
+ def all_files
42
+ Dir["#{css_directory}/*"]
43
+ end
44
+
45
+ def css_directory
46
+ File.join(top_level_directory, "app", "assets", "stylesheets")
47
+ end
48
+
49
+ def top_level_directory
50
+ File.dirname(File.dirname(File.dirname(__FILE__)))
51
+ end
52
+ end
53
+ end
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: keystone-sass
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Imulus
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-08 00:00:00.000000000Z
13
+ dependencies: []
14
+ description: A library of Sass mixins.
15
+ email: developer@imulus.com
16
+ executables:
17
+ - keystone
18
+ extensions: []
19
+ extra_rdoc_files:
20
+ - README.md
21
+ - bin/keystone
22
+ - lib/keystone.rb
23
+ - lib/keystone/boot.rb
24
+ - lib/keystone/cli.rb
25
+ - lib/keystone/compiler.rb
26
+ - lib/keystone/installer.rb
27
+ files:
28
+ - README.md
29
+ - Rakefile
30
+ - app/assets/stylesheets/_keystone.scss
31
+ - app/assets/stylesheets/keystone/_css3.scss
32
+ - app/assets/stylesheets/keystone/_scaffolding.scss
33
+ - app/assets/stylesheets/keystone/_typography.scss
34
+ - app/assets/stylesheets/keystone/_utilities.scss
35
+ - app/assets/stylesheets/keystone/css3/_background-clip.scss
36
+ - app/assets/stylesheets/keystone/css3/_border-radius.scss
37
+ - app/assets/stylesheets/keystone/css3/_box-shadow.scss
38
+ - app/assets/stylesheets/keystone/css3/_box-sizing.scss
39
+ - app/assets/stylesheets/keystone/css3/_opacity.scss
40
+ - app/assets/stylesheets/keystone/css3/_transition.scss
41
+ - app/assets/stylesheets/keystone/scaffolding/_grid.scss
42
+ - app/assets/stylesheets/keystone/scaffolding/_reset.scss
43
+ - app/assets/stylesheets/keystone/scaffolding/_structure.scss
44
+ - app/assets/stylesheets/keystone/typography/_links.scss
45
+ - app/assets/stylesheets/keystone/typography/_lists.scss
46
+ - app/assets/stylesheets/keystone/typography/_replacement.scss
47
+ - app/assets/stylesheets/keystone/utilities/_alignment.scss
48
+ - app/assets/stylesheets/keystone/utilities/_autoclear.scss
49
+ - app/assets/stylesheets/keystone/utilities/_hoverbox.scss
50
+ - bin/keystone
51
+ - keystone.gemspec
52
+ - lib/keystone.rb
53
+ - lib/keystone/boot.rb
54
+ - lib/keystone/cli.rb
55
+ - lib/keystone/compiler.rb
56
+ - lib/keystone/installer.rb
57
+ - Manifest
58
+ - keystone-sass.gemspec
59
+ homepage: http://github.com/imulus/keystone
60
+ licenses: []
61
+ post_install_message:
62
+ rdoc_options:
63
+ - --line-numbers
64
+ - --inline-source
65
+ - --title
66
+ - Keystone-sass
67
+ - --main
68
+ - README.md
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '1.2'
83
+ requirements: []
84
+ rubyforge_project: keystone-sass
85
+ rubygems_version: 1.8.17
86
+ signing_key:
87
+ specification_version: 3
88
+ summary: Keystone provides a simple library of commonly used design patterns in the
89
+ form of Sass mixins.
90
+ test_files: []