dashy 0.0.1
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.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.npmignore +12 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +31 -0
- data/Rakefile +9 -0
- data/app/assets/stylesheets/_dashy.scss +14 -0
- data/app/assets/stylesheets/dashy/_color.scss +5 -0
- data/app/assets/stylesheets/dashy/_corner.scss +15 -0
- data/app/assets/stylesheets/dashy/_default.scss +14 -0
- data/app/assets/stylesheets/dashy/_define.scss +157 -0
- data/app/assets/stylesheets/dashy/_direction.scss +36 -0
- data/app/assets/stylesheets/dashy/_font-family.scss +36 -0
- data/app/assets/stylesheets/dashy/_is.scss +81 -0
- data/app/assets/stylesheets/dashy/_line-height.scss +10 -0
- data/app/assets/stylesheets/dashy/_list.scss +161 -0
- data/app/assets/stylesheets/dashy/_number.scss +79 -0
- data/app/assets/stylesheets/dashy/_opposite.scss +36 -0
- data/app/assets/stylesheets/dashy/_select.scss +124 -0
- data/app/assets/stylesheets/dashy/_set.scss +79 -0
- data/app/assets/stylesheets/dashy/_side.scss +23 -0
- data/bin/dashy +8 -0
- data/dashy.gemspec +30 -0
- data/dashy.json +34 -0
- data/lib/dashy/engine.rb +7 -0
- data/lib/dashy/generator.rb +82 -0
- data/lib/dashy/version.rb +5 -0
- data/lib/dashy.rb +30 -0
- data/lib/sass/script/functions.rb +275 -0
- data/lib/tasks/install.rake +22 -0
- data/package.json +28 -0
- data/sache.json +5 -0
- metadata +134 -0
| @@ -0,0 +1,79 @@ | |
| 1 | 
            +
            $number-silver-ratio: 2.414;
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            $number-golden-ratio: 1.618;
         | 
| 4 | 
            +
            $number-golden-ratio-doubled: $number-golden-ratio * 2;
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            $number-golden-ratio: 1.618;
         | 
| 7 | 
            +
            $number-golden-ratio-doubled: $number-golden-ratio * 2;
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            $number-euler:  2.718;
         | 
| 10 | 
            +
            $number-pi: 3.142;
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            $numbers-from-fractions:
         | 
| 13 | 
            +
                ("0"   0.000)
         | 
| 14 | 
            +
                ("1/1" 1.000)
         | 
| 15 | 
            +
                ("1/2" 0.500)
         | 
| 16 | 
            +
                ("1/3" 0.333)
         | 
| 17 | 
            +
                ("2/3" 0.667)
         | 
| 18 | 
            +
                ("1/4" 0.250)
         | 
| 19 | 
            +
                ("2/4" 0.500)
         | 
| 20 | 
            +
                ("3/4" 0.750)
         | 
| 21 | 
            +
            ;
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            @function number-squared($number)
         | 
| 24 | 
            +
            {
         | 
| 25 | 
            +
                @return $number * $number;
         | 
| 26 | 
            +
            }
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            @function number-of($amt, $n)
         | 
| 29 | 
            +
            {
         | 
| 30 | 
            +
                @return ($amt * 0) + $n;
         | 
| 31 | 
            +
            }
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            @function number-one($amt)
         | 
| 34 | 
            +
            {
         | 
| 35 | 
            +
                @return number-of($amt, 1);
         | 
| 36 | 
            +
            }
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            @function number-integral($amt)
         | 
| 39 | 
            +
            {
         | 
| 40 | 
            +
                @return number-floor($amt + 0.049999);
         | 
| 41 | 
            +
            }
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            @function number-fractional($amt)
         | 
| 44 | 
            +
            {
         | 
| 45 | 
            +
                @return $amt - number-integral($amt);
         | 
| 46 | 
            +
            }
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            /** @param $amt The source.
         | 
| 49 | 
            +
                * @returns the first digit after the decimal point.
         | 
| 50 | 
            +
                */
         | 
| 51 | 
            +
            @function number-decimal($amt)
         | 
| 52 | 
            +
            {
         | 
| 53 | 
            +
                @return number-round(number-fractional($amt) * 10);
         | 
| 54 | 
            +
            }
         | 
| 55 | 
            +
             | 
| 56 | 
            +
            @function number-ceiling($amt)
         | 
| 57 | 
            +
            {
         | 
| 58 | 
            +
                @return ceil($amt);
         | 
| 59 | 
            +
            }
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            @function number-floor($amt)
         | 
| 62 | 
            +
            {
         | 
| 63 | 
            +
                @return floor($amt);
         | 
| 64 | 
            +
            }
         | 
| 65 | 
            +
             | 
| 66 | 
            +
            @function number-round($amt)
         | 
| 67 | 
            +
            {
         | 
| 68 | 
            +
                @return round($amt);
         | 
| 69 | 
            +
            }
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            @function number-unit($number)
         | 
| 72 | 
            +
            {
         | 
| 73 | 
            +
                @return unit($number);
         | 
| 74 | 
            +
            }
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            @function number-from-fraction($fraction)
         | 
| 77 | 
            +
            {
         | 
| 78 | 
            +
                @return list-lookup($numbers-from-fractions, $fraction);
         | 
| 79 | 
            +
            }
         | 
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            @import "dashy/list";
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            $opposite-sides:
         | 
| 4 | 
            +
                (top bottom)
         | 
| 5 | 
            +
                (left right)
         | 
| 6 | 
            +
            ;
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            $opposite-corners:
         | 
| 9 | 
            +
                (top-left bottom-right)
         | 
| 10 | 
            +
                (top-right bottom-left)
         | 
| 11 | 
            +
            ;
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            $opposite-directions:
         | 
| 14 | 
            +
                (up down)
         | 
| 15 | 
            +
                (left right)
         | 
| 16 | 
            +
            ;
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            @function opposite-side($side)
         | 
| 19 | 
            +
            {
         | 
| 20 | 
            +
                @return list-find-opposite($opposite-sides, $side);
         | 
| 21 | 
            +
            }
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            @function opposite-corner($corner)
         | 
| 24 | 
            +
            {
         | 
| 25 | 
            +
                @return list-find-opposite($opposite-corners, $corner);
         | 
| 26 | 
            +
            }
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            @function opposite-direction($direction)
         | 
| 29 | 
            +
            {
         | 
| 30 | 
            +
                @return list-find-opposite($opposite-directions, $direction);
         | 
| 31 | 
            +
            }
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            @function opposite-direction-of-side($side)
         | 
| 34 | 
            +
            {
         | 
| 35 | 
            +
                @return opposite-direction(direction-of-side($side));
         | 
| 36 | 
            +
            }
         | 
| @@ -0,0 +1,124 @@ | |
| 1 | 
            +
            @function select-buttons($button: '*')
         | 
| 2 | 
            +
            {
         | 
| 3 | 
            +
                @return select-either(
         | 
| 4 | 
            +
                    select-as-children('ol.buttons' $button),
         | 
| 5 | 
            +
                    select('a.button' $button),
         | 
| 6 | 
            +
                    select(button $button),
         | 
| 7 | 
            +
                    select('input[type=submit]' $button)
         | 
| 8 | 
            +
                );
         | 
| 9 | 
            +
            }
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            @function select-inputs($input: '*')
         | 
| 12 | 
            +
            {
         | 
| 13 | 
            +
                @return select-either(select(input $input), select(textarea $input));
         | 
| 14 | 
            +
            }
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            @function select-text-inputs($input: '*')
         | 
| 17 | 
            +
            {
         | 
| 18 | 
            +
                @return select-either(select(('input[type=text]', 'input[type=password]') $input), select(textarea $input));
         | 
| 19 | 
            +
            }
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            @function select-headings($heading: '*')
         | 
| 22 | 
            +
            {
         | 
| 23 | 
            +
                @return select-either(select-main-headings($heading), select-subheadings($heading));
         | 
| 24 | 
            +
            }
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            @function select-main-headings($heading: '*')
         | 
| 27 | 
            +
            {
         | 
| 28 | 
            +
                @return select(h1 $heading);
         | 
| 29 | 
            +
            }
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            @function select-subheadings($heading: '*')
         | 
| 32 | 
            +
            {
         | 
| 33 | 
            +
                @return select-either(select(h2 $heading),
         | 
| 34 | 
            +
                                      select(h3 $heading),
         | 
| 35 | 
            +
                                      select(h4 $heading),
         | 
| 36 | 
            +
                                      select(h5 $heading),
         | 
| 37 | 
            +
                                      select(h6 $heading));
         | 
| 38 | 
            +
            }
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            @function select-lists($list:'*')
         | 
| 41 | 
            +
            {
         | 
| 42 | 
            +
                @return select((ul, ol) $list);
         | 
| 43 | 
            +
            }
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            @function select-list-items($list-items:'*')
         | 
| 46 | 
            +
            {
         | 
| 47 | 
            +
                @return select-lists-items('*', $list-items);
         | 
| 48 | 
            +
            }
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            @function select-lists-items($list:'*', $items:'*')
         | 
| 51 | 
            +
            {
         | 
| 52 | 
            +
                @return select($list select-children(select(li $items)));
         | 
| 53 | 
            +
            }
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            @function select-tables($table:'*')
         | 
| 56 | 
            +
            {
         | 
| 57 | 
            +
                @return select(table $table);
         | 
| 58 | 
            +
            }
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            @function select-table-groups($group:'*')
         | 
| 61 | 
            +
            {
         | 
| 62 | 
            +
                @return select((thead, tbody, tfoot) $group);
         | 
| 63 | 
            +
            }
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            @function select-tabloids($tabloid:'*')
         | 
| 66 | 
            +
            {
         | 
| 67 | 
            +
                @return select-either(select-tables($tabloid), select-table-groups($tabloid));
         | 
| 68 | 
            +
            }
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            @function select-tabloids-rows($tabloid:'*', $row:'*')
         | 
| 71 | 
            +
            {
         | 
| 72 | 
            +
                @return select-either(select-as('>', select-table-groups($tabloid) $row),
         | 
| 73 | 
            +
                                                            select-as('>', select-tables($tabloid) '*' $row));
         | 
| 74 | 
            +
            }
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            @function select-table-groups-rows($table-group:'*', $row:'*')
         | 
| 77 | 
            +
            {
         | 
| 78 | 
            +
                @return select-as('>', $table-group select(tr, $row));
         | 
| 79 | 
            +
            }
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            @function select-tabloids-rows-cells($tabloid:'*', $row:'*', $cell:'*')
         | 
| 82 | 
            +
            {
         | 
| 83 | 
            +
                @return select-as('>', select-tabloids-rows($tabloid, $row) $cell);
         | 
| 84 | 
            +
            }
         | 
| 85 | 
            +
             | 
| 86 | 
            +
            @function select-table-groups-rows-cells($table-group:'*', $row:'*', $cell:'*')
         | 
| 87 | 
            +
            {
         | 
| 88 | 
            +
                @return select-as('>', select-table-groups-rows($table-group, $row) $cell);
         | 
| 89 | 
            +
            }
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            @function select-table-rows($row:'*')
         | 
| 92 | 
            +
            {
         | 
| 93 | 
            +
                @return select(tr $row);
         | 
| 94 | 
            +
            }
         | 
| 95 | 
            +
             | 
| 96 | 
            +
            @function select-table-cells($cell:'*')
         | 
| 97 | 
            +
            {
         | 
| 98 | 
            +
                @return select((th, td) $cell);
         | 
| 99 | 
            +
            }
         | 
| 100 | 
            +
             | 
| 101 | 
            +
            // select-grids ///////////////////////////////////////////////////////////////////////////////////
         | 
| 102 | 
            +
            //
         | 
| 103 | 
            +
            @function select-grids($grid:'*', $gutter-width:'', $gutter-height-ratio:'')
         | 
| 104 | 
            +
            {
         | 
| 105 | 
            +
                @if is($gutter-width)        and default != $gutter-width        { $grid: select($grid select-class(gutter-width        $gutter-width)); }
         | 
| 106 | 
            +
                @if is($gutter-height-ratio) and default != $gutter-height-ratio { $grid: select($grid select-class(gutter-height-ratio $gutter-height-ratio)); }
         | 
| 107 | 
            +
                @return select($grid, '.grid');
         | 
| 108 | 
            +
            }
         | 
| 109 | 
            +
             | 
| 110 | 
            +
            // select-grid-cells //////////////////////////////////////////////////////////////////////////////
         | 
| 111 | 
            +
            //
         | 
| 112 | 
            +
            @function select-grid-cells($cell:'*', $span:'', $columns:'')
         | 
| 113 | 
            +
            {
         | 
| 114 | 
            +
                @return select-grids-cells('*', $cell, $span:$span, $columns:$columns);
         | 
| 115 | 
            +
            }
         | 
| 116 | 
            +
             | 
| 117 | 
            +
            // select-grids-cells /////////////////////////////////////////////////////////////////////////////
         | 
| 118 | 
            +
            //
         | 
| 119 | 
            +
            @function select-grids-cells($grid:'*', $cell:'*', $gutter-width:'', $gutter-height-ratio:'', $span:'', $columns:'')
         | 
| 120 | 
            +
            {
         | 
| 121 | 
            +
                @if is($span) and default != $span { $cell: select(select-parameter(grid-cell, width, $span + '/' + $columns), $cell); }
         | 
| 122 | 
            +
                @return select-as-children(select-grids($grid, $gutter-width, $gutter-height-ratio) $cell);
         | 
| 123 | 
            +
            }
         | 
| 124 | 
            +
             | 
| @@ -0,0 +1,79 @@ | |
| 1 | 
            +
            @mixin set-box-shadow($parameters)
         | 
| 2 | 
            +
            {
         | 
| 3 | 
            +
                -webkit-box-shadow: $parameters;
         | 
| 4 | 
            +
                   -moz-box-shadow: $parameters;
         | 
| 5 | 
            +
                        box-shadow: $parameters;
         | 
| 6 | 
            +
            }
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            @mixin set-border-radius($corners)
         | 
| 9 | 
            +
            {
         | 
| 10 | 
            +
                -webkit-border-radius: $corners; 
         | 
| 11 | 
            +
                   -moz-border-radius: $corners; 
         | 
| 12 | 
            +
                        border-radius: $corners; 
         | 
| 13 | 
            +
            }
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            @mixin set-box-sizing($prefix)
         | 
| 16 | 
            +
            {
         | 
| 17 | 
            +
                -webkit-box-sizing: #{ $prefix }-box;
         | 
| 18 | 
            +
                   -moz-box-sizing: #{ $prefix }-box;
         | 
| 19 | 
            +
                        box-sizing: #{ $prefix }-box;
         | 
| 20 | 
            +
            }
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            @mixin set-min-height($height:100%)
         | 
| 23 | 
            +
            {
         | 
| 24 | 
            +
                min-height:$height; height:auto!important; height:$height;
         | 
| 25 | 
            +
            }
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            @mixin set-max-width($width)
         | 
| 28 | 
            +
            {
         | 
| 29 | 
            +
                max-width:$width;
         | 
| 30 | 
            +
            }
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            @mixin set-display($value)
         | 
| 33 | 
            +
            {
         | 
| 34 | 
            +
                display:$value; @if $value == inline-block { *display:inline; zoom:1; }
         | 
| 35 | 
            +
            }
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            @mixin set-keyframes($name)
         | 
| 38 | 
            +
            {
         | 
| 39 | 
            +
                @-webkit-keyframes #{ $name } { @content; }
         | 
| 40 | 
            +
                   @-moz-keyframes #{ $name } { @content; }
         | 
| 41 | 
            +
                     @-o-keyframes #{ $name } { @content; }
         | 
| 42 | 
            +
                        @keyframes #{ $name } { @content; }
         | 
| 43 | 
            +
            }
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            @mixin set-transition($arguments...)
         | 
| 46 | 
            +
            {
         | 
| 47 | 
            +
                @if 1 == length($arguments)
         | 
| 48 | 
            +
                {
         | 
| 49 | 
            +
                    -webkit-transition: $arguments;
         | 
| 50 | 
            +
                       -moz-transition: $arguments;
         | 
| 51 | 
            +
                         -o-transition: $arguments;
         | 
| 52 | 
            +
                            transition: $arguments;
         | 
| 53 | 
            +
                }
         | 
| 54 | 
            +
            }
         | 
| 55 | 
            +
             | 
| 56 | 
            +
            @mixin animation($arguments...)
         | 
| 57 | 
            +
            {
         | 
| 58 | 
            +
                @if 1 == length($arguments)
         | 
| 59 | 
            +
                {
         | 
| 60 | 
            +
                    -webkit-animation: $arguments;
         | 
| 61 | 
            +
                       -moz-animation: $arguments;
         | 
| 62 | 
            +
                         -o-animation: $arguments;
         | 
| 63 | 
            +
                            animation: $arguments;
         | 
| 64 | 
            +
                }
         | 
| 65 | 
            +
            }
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            @mixin set-border-radius($arguments...)
         | 
| 68 | 
            +
            {
         | 
| 69 | 
            +
                -webkit-border-radius: $arguments;
         | 
| 70 | 
            +
                   -moz-border-radius: $arguments;
         | 
| 71 | 
            +
                        border-radius: $arguments;
         | 
| 72 | 
            +
            }
         | 
| 73 | 
            +
             | 
| 74 | 
            +
            @mixin set-inner-box-shadow($arguments)
         | 
| 75 | 
            +
            {
         | 
| 76 | 
            +
                -webkit-box-shadow: inset $arguments;
         | 
| 77 | 
            +
                   -moz-box-shadow: inset $arguments;
         | 
| 78 | 
            +
                        box-shadow: inset $arguments;
         | 
| 79 | 
            +
            }
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            @import "dashy/list";
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            $sides-horizontal: left right;
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            $sides-vertical: top bottom;
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            $sides: join($sides-horizontal, $sides-vertical);
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            $sides-directions:
         | 
| 10 | 
            +
              (top    up)
         | 
| 11 | 
            +
              (bottom down)
         | 
| 12 | 
            +
              (left   left)
         | 
| 13 | 
            +
              (right  right);
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            @function side-in-direction($direction)
         | 
| 16 | 
            +
            {
         | 
| 17 | 
            +
              @return list-reverse-lookup($side-directions, $direction);
         | 
| 18 | 
            +
            }
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            @function side-in-opposite-direction($direction)
         | 
| 21 | 
            +
            {
         | 
| 22 | 
            +
              @return side-in-direction(opposite-direction($direction));
         | 
| 23 | 
            +
            }
         | 
    
        data/bin/dashy
    ADDED
    
    
    
        data/dashy.gemspec
    ADDED
    
    | @@ -0,0 +1,30 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
            $:.push File.expand_path("../lib", __FILE__)
         | 
| 3 | 
            +
            require "dashy/version"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            Gem::Specification.new do |s|
         | 
| 6 | 
            +
              s.name        = "dashy"
         | 
| 7 | 
            +
              s.version     = Dashy::VERSION
         | 
| 8 | 
            +
              s.platform    = Gem::Platform::RUBY
         | 
| 9 | 
            +
              s.authors     = ["Alex Goldsmith"]
         | 
| 10 | 
            +
              s.email       = ["alex.tosyx@gmail.com"]
         | 
| 11 | 
            +
              s.license     = "MIT"
         | 
| 12 | 
            +
              s.homepage    = "https://github.com/tosyx/dashy"
         | 
| 13 | 
            +
              s.summary     = "Selector combinators and other helpers for Sass."
         | 
| 14 | 
            +
              s.description = <<-DESC
         | 
| 15 | 
            +
            Dashy provides...
         | 
| 16 | 
            +
              DESC
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              s.files         = `git ls-files`.split("\n")
         | 
| 19 | 
            +
              s.test_files    = `git ls-files -- {test,spec,features}/*`.split("\n")
         | 
| 20 | 
            +
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         | 
| 21 | 
            +
              s.require_paths = ["lib"]
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              s.add_dependency('sass', '~> 3.3')
         | 
| 24 | 
            +
              s.add_dependency('thor')
         | 
| 25 | 
            +
             | 
| 26 | 
            +
              s.add_development_dependency('aruba', '~> 0.4')
         | 
| 27 | 
            +
              s.add_development_dependency('rake')
         | 
| 28 | 
            +
            end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            # Gem structure adapted from thoughtbot/bourbon...
         | 
    
        data/dashy.json
    ADDED
    
    | @@ -0,0 +1,34 @@ | |
| 1 | 
            +
            {
         | 
| 2 | 
            +
              "name": "dashy",
         | 
| 3 | 
            +
              "description": "Selector combinators and other helpers for Sass.",
         | 
| 4 | 
            +
              "version": "0.0.1",
         | 
| 5 | 
            +
              "main": "app/assets/stylesheets/_dashy.scss",
         | 
| 6 | 
            +
              "license": "MIT",
         | 
| 7 | 
            +
              "ignore": [
         | 
| 8 | 
            +
                "**/.*",
         | 
| 9 | 
            +
                "bin",
         | 
| 10 | 
            +
                "dashy.gemspec",
         | 
| 11 | 
            +
                "CONTRIBUTING.md",
         | 
| 12 | 
            +
                "features",
         | 
| 13 | 
            +
                "LICENSE.md",
         | 
| 14 | 
            +
                "lib",
         | 
| 15 | 
            +
                "Gemfile",
         | 
| 16 | 
            +
                "Gemfile.lock",
         | 
| 17 | 
            +
                "package.json",
         | 
| 18 | 
            +
                "Rakefile"
         | 
| 19 | 
            +
              ],
         | 
| 20 | 
            +
              "keywords": [
         | 
| 21 | 
            +
                "css",
         | 
| 22 | 
            +
                "mixins",
         | 
| 23 | 
            +
                "sass",
         | 
| 24 | 
            +
                "scss"
         | 
| 25 | 
            +
              ],
         | 
| 26 | 
            +
              "authors": [
         | 
| 27 | 
            +
                "tosyx (http://tosyx.com)"
         | 
| 28 | 
            +
              ],
         | 
| 29 | 
            +
              "homepage": "http://dashy.io",
         | 
| 30 | 
            +
              "repository": {
         | 
| 31 | 
            +
                "type": "git",
         | 
| 32 | 
            +
                "url": "https://github.com/tosyx/dashy.git"
         | 
| 33 | 
            +
              }
         | 
| 34 | 
            +
            }
         | 
    
        data/lib/dashy/engine.rb
    ADDED
    
    
| @@ -0,0 +1,82 @@ | |
| 1 | 
            +
            require 'dashy/version'
         | 
| 2 | 
            +
            require "fileutils"
         | 
| 3 | 
            +
            require 'thor'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Dashy
         | 
| 6 | 
            +
              class Generator < Thor
         | 
| 7 | 
            +
                map ['-v', '--version'] => :version
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                desc 'install', 'Install Dashy into your project'
         | 
| 10 | 
            +
                method_options :path => :string, :force => :boolean
         | 
| 11 | 
            +
                def install
         | 
| 12 | 
            +
                  if dashy_files_already_exist? && !options[:force]
         | 
| 13 | 
            +
                    puts "Dashy files already installed, doing nothing."
         | 
| 14 | 
            +
                  else
         | 
| 15 | 
            +
                    install_files
         | 
| 16 | 
            +
                    puts "Dashy files installed to #{install_path}/"
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                desc 'update', 'Update Dashy'
         | 
| 21 | 
            +
                method_options :path => :string
         | 
| 22 | 
            +
                def update
         | 
| 23 | 
            +
                  if dashy_files_already_exist?
         | 
| 24 | 
            +
                    remove_dashy_directory
         | 
| 25 | 
            +
                    install_files
         | 
| 26 | 
            +
                    puts "Dashy files updated."
         | 
| 27 | 
            +
                  else
         | 
| 28 | 
            +
                    puts "No existing dashy installation. Doing nothing."
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                desc 'version', 'Show Dashy version'
         | 
| 33 | 
            +
                def version
         | 
| 34 | 
            +
                  say "Dashy #{Dashy::VERSION}"
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                private
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                def dashy_files_already_exist?
         | 
| 40 | 
            +
                  install_path.exist?
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                def install_path
         | 
| 44 | 
            +
                  @install_path ||= if options[:path]
         | 
| 45 | 
            +
                      Pathname.new(File.join(options[:path], 'dashy'))
         | 
| 46 | 
            +
                    else
         | 
| 47 | 
            +
                      Pathname.new('dashy')
         | 
| 48 | 
            +
                    end
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                def install_files
         | 
| 52 | 
            +
                  make_install_directory
         | 
| 53 | 
            +
                  copy_in_scss_files
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                def remove_dashy_directory
         | 
| 57 | 
            +
                  FileUtils.rm_rf("dashy")
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                def make_install_directory
         | 
| 61 | 
            +
                  FileUtils.mkdir_p(install_path)
         | 
| 62 | 
            +
                end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                def copy_in_scss_files
         | 
| 65 | 
            +
                  FileUtils.cp_r(all_stylesheets, install_path)
         | 
| 66 | 
            +
                end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                def all_stylesheets
         | 
| 69 | 
            +
                  Dir["#{stylesheets_directory}/*"]
         | 
| 70 | 
            +
                end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                def stylesheets_directory
         | 
| 73 | 
            +
                  File.join(top_level_directory, "app", "assets", "stylesheets")
         | 
| 74 | 
            +
                end
         | 
| 75 | 
            +
             | 
| 76 | 
            +
                def top_level_directory
         | 
| 77 | 
            +
                  File.dirname(File.dirname(File.dirname(__FILE__)))
         | 
| 78 | 
            +
                end
         | 
| 79 | 
            +
              end
         | 
| 80 | 
            +
            end
         | 
| 81 | 
            +
             | 
| 82 | 
            +
            # Gem structure adapted from thoughtbot/bourbon...
         | 
    
        data/lib/dashy.rb
    ADDED
    
    | @@ -0,0 +1,30 @@ | |
| 1 | 
            +
            # CodeKit needs relative paths
         | 
| 2 | 
            +
            dir = File.dirname(__FILE__)
         | 
| 3 | 
            +
            $LOAD_PATH.unshift dir unless $LOAD_PATH.include?(dir)
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            require "dashy/generator"
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            unless defined?(Sass)
         | 
| 8 | 
            +
              require 'sass'
         | 
| 9 | 
            +
            end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            module Dashy
         | 
| 12 | 
            +
              if defined?(Rails) && defined?(Rails::Engine)
         | 
| 13 | 
            +
                class Engine < ::Rails::Engine
         | 
| 14 | 
            +
                  require 'dashy/engine'
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                module Rails
         | 
| 18 | 
            +
                  class Railtie < ::Rails::Railtie
         | 
| 19 | 
            +
                    rake_tasks do
         | 
| 20 | 
            +
                      load "tasks/install.rake"
         | 
| 21 | 
            +
                    end
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
              else
         | 
| 25 | 
            +
                dashy_path = File.expand_path("../../app/assets/stylesheets", __FILE__)
         | 
| 26 | 
            +
                ENV["SASS_PATH"] = [ENV["SASS_PATH"], dashy_path].compact.join(File::PATH_SEPARATOR)
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
            end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            # Gem structure adapted from thoughtbot/bourbon...
         |