kss 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1e5a7828fb96863926b68b29f71602747e9b3dec
4
+ data.tar.gz: 0a5e39cafe9a7d94171be7101c60059ab7570838
5
+ SHA512:
6
+ metadata.gz: ebe249b7652df9e6b50d26a958b1a9195ed3d83936d19a67808a549a80c4885042cbd242e37bf330cdc0ac6cad049de266b04c7b66bb3bc784bed08582182250
7
+ data.tar.gz: efc8616414baafa51a686f45bce4e2544fe4d5b1d3b292620f54e431f22eb8382ad2d0b5aa76bb123fe69fa4b51ff2520e76dc87fbfd8039644b8dd4d9e077e9
data/README.md CHANGED
@@ -7,7 +7,7 @@ Inspired by [TomDoc](http://tomdoc.org), KSS attempts to provide a methodology f
7
7
 
8
8
  ## KSS in a nutshell
9
9
 
10
- The methodology and ideas behind Knyle Style Sheets are contained in [SPEC.md](https://github.com/kneath/kss/blob/master/SPEC.md). At it's core, KSS is a documenting syntax for CSS.
10
+ The methodology and ideas behind Knyle Style Sheets are contained in [SPEC.md](https://github.com/kneath/kss/blob/master/SPEC.md). At its core, KSS is a documenting syntax for CSS.
11
11
 
12
12
  ```css
13
13
  /*
@@ -31,7 +31,14 @@ a.button.star.disabled{
31
31
  }
32
32
  ```
33
33
 
34
- ## Ruby Library
34
+ KSS can also support words as Styleguide section names
35
+ ```scss
36
+ // Styleguide Forms.Checkboxes.
37
+ // - or -
38
+ // Styleguide Forms - Special Checkboxes.
39
+ ```
40
+
41
+ ## Ruby Library [![Build Status](https://travis-ci.org/kneath/kss.png)](https://travis-ci.org/kneath/kss) [![Code Climate](https://codeclimate.com/github/kneath/kss.png)](https://codeclimate.com/github/kneath/kss)
35
42
 
36
43
  This repository includes a ruby library suitable for parsing SASS, SCSS, and CSS documented with KSS guidelines. To use the library, include it in your project as a gem from <https://rubygems.org/gems/kss>. Then, create a parser and explore your KSS.
37
44
 
@@ -55,7 +62,38 @@ styleguide.section('2.1.1').modifiers.first.class_name
55
62
 
56
63
  styleguide.section('2.1.1').modifiers.first.description
57
64
  # => 'Subtle hover highlight'
65
+ ```
58
66
 
67
+ You can also initialize the `Kss::Parser` with a string CSS by using `Kss::Parser.new(string)`
68
+
69
+ ```ruby
70
+ buttons =<<-'EOS'
71
+ /*
72
+ Your standard form button.
73
+
74
+ :hover - Highlights when hovering.
75
+ :disabled - Dims the button when disabled.
76
+
77
+ Styleguide 1.1
78
+ */
79
+ button {
80
+ padding: 5px 15px;
81
+ line-height: normal;
82
+ /* ... */
83
+ }
84
+ button:disabled {
85
+ opacity: 0.5;
86
+ }
87
+ EOS
88
+ styleguide = Kss::Parser.new(buttons)
89
+
90
+ styleguide.section('1.1')
91
+ # => <Kss::Section>
92
+
93
+ styleguide.section('1.1.1').description
94
+ # => "Your standard form button."
95
+
96
+ # ...
59
97
  ```
60
98
 
61
99
  The library is also fully TomDoc'd, completing the circle of life.
@@ -76,3 +114,8 @@ To hack on KSS, you'll need to install dependencies with `bundle install`. Run t
76
114
  To make your life easier, I suggest `bundle install --binstubs` and adding `bin/` to your `$PATH`. If you don't understand this, just blindly add `bundle exec` in front of everything you'd normally do, like `bundle exec rake`.
77
115
 
78
116
  I apologize on behalf of the Ruby community for this, it's embarrassing and disappointing that dependency management is still so clumsy.
117
+
118
+ ## Implementations
119
+
120
+ The KSS specification has also been implemented in [Python](https://github.com/seanbrant/pykss), [Node.js](https://github.com/hughsk/kss-node) and [PHP](https://github.com/scaninc/kss-php)
121
+
@@ -1,24 +1,41 @@
1
1
  # This class scans your stylesheets for pseudo classes, then inserts a new CSS
2
2
  # rule with the same properties, but named 'psuedo-class-{{name}}'.
3
3
  #
4
- # Supported pseudo classes: hover, disabled, active, visited, focus.
4
+ # Supported pseudo classes: hover, disabled, active, visited, focus, target.
5
5
  #
6
6
  # Example:
7
7
  #
8
8
  # a:hover{ color:blue; }
9
9
  # => a.pseudo-class-hover{ color:blue; }
10
10
  class KssStateGenerator
11
+ psuedo_selectors = [
12
+ 'hover',
13
+ 'enabled',
14
+ 'disabled',
15
+ 'active',
16
+ 'visited',
17
+ 'focus',
18
+ 'target',
19
+ 'checked',
20
+ 'empty',
21
+ 'first-of-type',
22
+ 'last-of-type',
23
+ 'first-child',
24
+ 'last-child']
25
+
11
26
  constructor: ->
12
- pseudos = /(\:hover|\:disabled|\:active|\:visited|\:focus)/g
27
+ pseudos = new RegExp "(\\:#{psuedo_selectors.join('|\\:')})", "g"
13
28
 
14
29
  try
15
30
  for stylesheet in document.styleSheets
16
- idxs = []
17
- for rule, idx in stylesheet.cssRules
18
- while (rule.type == CSSRule.STYLE_RULE) && pseudos.test(rule.selectorText)
19
- replaceRule = (matched, stuff) ->
20
- return matched.replace(/\:/g, '.pseudo-class-')
21
- @insertRule(rule.cssText.replace(pseudos, replaceRule))
31
+ if stylesheet.href.indexOf(document.domain) >= 0
32
+ idxs = []
33
+ for rule, idx in stylesheet.cssRules
34
+ if (rule.type == CSSRule.STYLE_RULE) && pseudos.test(rule.selectorText)
35
+ replaceRule = (matched, stuff) ->
36
+ return matched.replace(/\:/g, '.pseudo-class-')
37
+ @insertRule(rule.cssText.replace(pseudos, replaceRule))
38
+ pseudos.lastIndex = 0
22
39
 
23
40
  # Takes a given style and attaches it to the current page.
24
41
  #
@@ -58,15 +58,19 @@ module Kss
58
58
  # Public: Initializes a new comment parser object. Does not parse on
59
59
  # initialization.
60
60
  #
61
- # file_path - The location of the file to parse as a String.
62
- # options - Optional options hash.
61
+ # file_path_or_string_input - The location of the file to parse as a String, or the String itself.
62
+ # options - Optional options hash.
63
63
  # :preserve_whitespace - Preserve the whitespace before/after comment
64
64
  # markers (default:false).
65
65
  #
66
- def initialize(file_path, options={})
66
+ def initialize(file_path_or_string_input, options={})
67
67
  @options = options
68
68
  @options[:preserve_whitespace] = false if @options[:preserve_whitespace].nil?
69
- @file_path = file_path
69
+ if File.exists?(file_path_or_string_input)
70
+ @file_path = file_path_or_string_input
71
+ else
72
+ @string_input = file_path_or_string_input
73
+ end
70
74
  @blocks = []
71
75
  @parsed = false
72
76
  end
@@ -80,52 +84,60 @@ module Kss
80
84
  @parsed ? @blocks : parse_blocks
81
85
  end
82
86
 
83
-
84
- # Parse the file for comment blocks and populate them into @blocks.
87
+ # Parse the file or string for comment blocks and populate them into @blocks.
85
88
  #
86
- # Returns an Array of parsed comment Strings.
89
+ # Returns an Array of parsed comment Strings.
87
90
  def parse_blocks
88
- File.open @file_path do |file|
89
- current_block = nil
90
- inside_single_line_block = false
91
- inside_multi_line_block = false
92
-
93
- file.each_line do |line|
94
- # Parse single-line style
95
- if self.class.single_line_comment?(line)
96
- parsed = self.class.parse_single_line line
97
- if inside_single_line_block
98
- current_block += "\n#{parsed}"
99
- else
100
- current_block = parsed.to_s
101
- inside_single_line_block = true
102
- end
91
+ if !@file_path.nil?
92
+ # the input is an existing file
93
+ File.open @file_path do |file|
94
+ parse_blocks_input(file)
95
+ end
96
+ else
97
+ # @file_path is nil, we then expect the input to be a String
98
+ parse_blocks_input(@string_input)
99
+ end
100
+ end
101
+
102
+ def parse_blocks_input(input)
103
+ current_block = nil
104
+ inside_single_line_block = false
105
+ inside_multi_line_block = false
106
+
107
+ input.each_line do |line|
108
+ # Parse single-line style
109
+ if self.class.single_line_comment?(line)
110
+ parsed = self.class.parse_single_line line
111
+ if inside_single_line_block
112
+ current_block += "\n#{parsed}"
113
+ else
114
+ current_block = parsed.to_s
115
+ inside_single_line_block = true
103
116
  end
117
+ end
104
118
 
105
- # Parse multi-lines tyle
106
- if self.class.start_multi_line_comment?(line) || inside_multi_line_block
107
- parsed = self.class.parse_multi_line line
108
- if inside_multi_line_block
109
- current_block += "\n#{parsed}"
110
- else
111
- current_block = parsed
112
- inside_multi_line_block = true
113
- end
119
+ # Parse multi-lines tyle
120
+ if self.class.start_multi_line_comment?(line) || inside_multi_line_block
121
+ parsed = self.class.parse_multi_line line
122
+ if inside_multi_line_block
123
+ current_block += "\n#{parsed}"
124
+ else
125
+ current_block = parsed
126
+ inside_multi_line_block = true
114
127
  end
128
+ end
115
129
 
116
- # End a multi-line block if detected
117
- inside_multi_line_block = false if self.class.end_multi_line_comment?(line)
130
+ # End a multi-line block if detected
131
+ inside_multi_line_block = false if self.class.end_multi_line_comment?(line)
118
132
 
119
- # Store the current block if we're done
120
- unless self.class.single_line_comment?(line) || inside_multi_line_block
121
- @blocks << normalize(current_block) unless current_block.nil?
133
+ # Store the current block if we're done
134
+ unless self.class.single_line_comment?(line) || inside_multi_line_block
135
+ @blocks << normalize(current_block) unless current_block.nil?
122
136
 
123
- inside_single_line_block = false
124
- current_block = nil
125
- end
137
+ inside_single_line_block = false
138
+ current_block = nil
126
139
  end
127
140
  end
128
-
129
141
  @parsed = true
130
142
  @blocks
131
143
  end
@@ -161,4 +173,4 @@ module Kss
161
173
  end
162
174
 
163
175
  end
164
- end
176
+ end
@@ -2,29 +2,41 @@ module Kss
2
2
  # Public: The main KSS parser. Takes a directory full of SASS / SCSS / CSS
3
3
  # files and parses the KSS within them.
4
4
  class Parser
5
-
5
+ STYLEGUIDE_PATTERN = (/(?<!No )Styleguide [[:alnum:]]/i).freeze
6
+
6
7
  # Public: Returns a hash of Sections.
7
8
  attr_accessor :sections
8
-
9
- # Public: Initializes a new parser based on a directory of files. Scans
10
- # within the directory recursively for any comment blocks that look like
11
- # KSS.
9
+
10
+ # Public: Initializes a new parser based on a directory of files or kss strings.
11
+ # Scans within the directory recursively or the strings for any comment blocks
12
+ # that look like KSS.
12
13
  #
13
- # paths - Each path String where style files are located.
14
- def initialize(*paths)
14
+ # paths_or_strings - Each path String where style files are located, or each String containing KSS.
15
+ def initialize(*paths_or_strings)
15
16
  @sections = {}
16
17
 
17
- paths.each do |path|
18
- Dir["#{path}/**/*.*"].each do |filename|
19
- parser = CommentParser.new(filename)
18
+ paths_or_strings.each do |path_or_string|
19
+ if Dir.exists?(path_or_string)
20
+ # argument is a path
21
+ path = path_or_string
22
+ Dir["#{path}/**/*.{css,less,sass,scss}"].each do |filename|
23
+ parser = CommentParser.new(filename)
24
+ parser.blocks.each do |comment_block|
25
+ add_section comment_block, filename if self.class.kss_block?(comment_block)
26
+ end
27
+ end
28
+ else
29
+ # argument is a KSS string
30
+ kss_string = path_or_string
31
+ parser = CommentParser.new(kss_string)
20
32
  parser.blocks.each do |comment_block|
21
- add_section comment_block, filename if self.class.kss_block?(comment_block)
33
+ add_section comment_block if self.class.kss_block?(comment_block)
22
34
  end
23
35
  end
24
36
  end
25
37
  end
26
38
 
27
- def add_section comment_text, filename
39
+ def add_section comment_text, filename = ''
28
40
  base_name = File.basename(filename)
29
41
  section = Section.new(comment_text, base_name)
30
42
  @sections[section.section] = section
@@ -38,7 +50,7 @@ module Kss
38
50
  return false unless cleaned_comment.is_a? String
39
51
 
40
52
  possible_reference = cleaned_comment.split("\n\n").last
41
- possible_reference =~ /Styleguide \d/
53
+ possible_reference =~ STYLEGUIDE_PATTERN
42
54
  end
43
55
 
44
56
  # Public: Finds the Section for a given styleguide reference.
@@ -35,7 +35,7 @@ module Kss
35
35
  return @section unless @section.nil?
36
36
 
37
37
  cleaned = section_comment.strip.sub(/\.$/, '') # Kill trailing period
38
- @section = cleaned.match(/Styleguide (.+)/)[1]
38
+ @section = cleaned.match(/Styleguide (.+)/i)[1]
39
39
 
40
40
  @section
41
41
  end
@@ -77,13 +77,13 @@ module Kss
77
77
  end
78
78
 
79
79
  private
80
-
80
+
81
81
  def section_comment
82
82
  comment_sections.find do |text|
83
- text =~ /Styleguide \d/i
83
+ text =~ Parser::STYLEGUIDE_PATTERN
84
84
  end.to_s
85
85
  end
86
-
86
+
87
87
  def modifiers_comment
88
88
  comment_sections[1..-1].reject do |section|
89
89
  section == section_comment
@@ -1,3 +1,3 @@
1
1
  module Kss
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -36,3 +36,34 @@ a.button.star {
36
36
  color: #ae7e00; }
37
37
  a.button.star.disabled {
38
38
  opacity: 0.5; }
39
+
40
+ /*
41
+ A big button
42
+
43
+ .really-big - Even bigger button
44
+
45
+ Styleguide Buttons.Big.
46
+ */
47
+ a.button.big {
48
+ display: inline-block;
49
+ font-size: 10em; }
50
+ a.button.big.really-big {
51
+ font-size: 20em; }
52
+
53
+ /*
54
+ A button truly lime in color
55
+
56
+ Styleguide Buttons - Truly Lime
57
+ */
58
+ a.button.lime {
59
+ color: lime;
60
+ }
61
+
62
+ /*
63
+ A button truly lime in color
64
+
65
+ Seen in styleguide 10.2
66
+ */
67
+ a.button.tricksy {
68
+ background: sparkles;
69
+ }
@@ -48,4 +48,20 @@ a.button.star{
48
48
  &.disabled{
49
49
  opacity:0.5;
50
50
  }
51
- }
51
+ }
52
+
53
+ /*
54
+ A big button
55
+
56
+ .really-big - Even bigger button
57
+
58
+ Styleguide Buttons.Big.
59
+ */
60
+ a.button.big {
61
+ display: inline-block;
62
+ font-size: 10em;
63
+
64
+ .really-big {
65
+ font-size: 20em;
66
+ }
67
+ }
@@ -38,3 +38,15 @@ a.button.star
38
38
 
39
39
  &.disabled
40
40
  opacity: 0.5
41
+
42
+ // A big button
43
+ //
44
+ // .really-big - A really big button
45
+ //
46
+ // Styleguide Buttons.Big.
47
+ a.button.big
48
+ display: inline-block;
49
+ font-size: 10em;
50
+
51
+ &.really-big
52
+ font-size: 20em;
@@ -44,4 +44,18 @@ a.button.star{
44
44
  &.disabled{
45
45
  opacity:0.5;
46
46
  }
47
- }
47
+ }
48
+
49
+ // A big button
50
+ //
51
+ // .really-big - Even bigger button
52
+ //
53
+ // Styleguide Buttons.Big.
54
+ a.button.big {
55
+ display: inline-block;
56
+ font-size: 10em;
57
+
58
+ &.really-big {
59
+ font-size: 20em;
60
+ }
61
+ }
@@ -1,9 +1,8 @@
1
- require 'test/unit'
2
-
1
+ require 'minitest/autorun'
3
2
  require 'kss'
4
3
 
5
4
  module Kss
6
- class Test < ::Test::Unit::TestCase
5
+ class Test < ::Minitest::Test
7
6
  def self.test(name, &block)
8
7
  define_method("test_#{name.gsub(/\W/,'_')}", &block) if block
9
8
  end
@@ -8,57 +8,6 @@ class ParserTest < Kss::Test
8
8
  @css_parsed = Kss::Parser.new('test/fixtures/css')
9
9
  @less_parsed = Kss::Parser.new('test/fixtures/less')
10
10
  @multiple_parsed = Kss::Parser.new('test/fixtures/scss', 'test/fixtures/less')
11
-
12
- @css_comment = <<comment
13
- /*
14
- A button suitable for giving stars to someone.
15
-
16
- .star-given - A highlight indicating you've already given a star.
17
- .disabled - Dims the button to indicate it cannot be used.
18
-
19
- Styleguide 2.2.1.
20
- */
21
- comment
22
-
23
- @starred_css_comment = <<comment
24
- /* A button suitable for giving stars to someone.
25
- *
26
- * .star-given - A highlight indicating you've already given a star.
27
- * .disabled - Dims the button to indicate it cannot be used.
28
- *
29
- * Styleguide 2.2.1. */
30
- comment
31
-
32
- @slashed_css_comment = <<comment
33
- // A button suitable for giving stars to someone.
34
- //
35
- // .star-given - A highlight indicating you've already given a star.
36
- // .disabled - Dims the button to indicate it cannot be used.
37
- //
38
- // Styleguide 2.2.1.
39
- comment
40
-
41
- @indented_css_comment = <<comment
42
- /*
43
- A button suitable for giving stars to someone.
44
-
45
- .star-given - A highlight indicating you've already given a star.
46
- .disabled - Dims the button to indicate it cannot be used.
47
-
48
- Styleguide 2.2.1.
49
- */
50
- comment
51
-
52
- @cleaned_css_comment = <<comment
53
- A button suitable for giving stars to someone.
54
-
55
- .star-given - A highlight indicating you've already given a star.
56
- .disabled - Dims the button to indicate it cannot be used.
57
-
58
- Styleguide 2.2.1.
59
- comment
60
- @cleaned_css_comment.rstrip!
61
-
62
11
  end
63
12
 
64
13
  test "parses KSS comments in SCSS" do
@@ -66,11 +15,21 @@ comment
66
15
  @scss_parsed.section('2.1.1').description
67
16
  end
68
17
 
18
+ test "parses KSS keys that are words in SCSS" do
19
+ assert_equal 'A big button',
20
+ @scss_parsed.section('Buttons.Big').description
21
+ end
22
+
69
23
  test "parsers KSS comments in LESS" do
70
24
  assert_equal 'Your standard form button.',
71
25
  @less_parsed.section('2.1.1').description
72
26
  end
73
27
 
28
+ test "parses KSS keys that are words in LESS" do
29
+ assert_equal 'A big button',
30
+ @less_parsed.section('Buttons.Big').description
31
+ end
32
+
74
33
  test "parses KSS multi-line comments in SASS (/* ... */)" do
75
34
  assert_equal 'Your standard form button.',
76
35
  @sass_parsed.section('2.1.1').description
@@ -81,11 +40,26 @@ comment
81
40
  @sass_parsed.section('2.2.1').description
82
41
  end
83
42
 
43
+ test "parses KSS keys that are words in in SASS" do
44
+ assert_equal 'A big button',
45
+ @sass_parsed.section('Buttons.Big').description
46
+ end
47
+
84
48
  test "parses KSS comments in CSS" do
85
49
  assert_equal 'Your standard form button.',
86
50
  @css_parsed.section('2.1.1').description
87
51
  end
88
52
 
53
+ test "parses KSS keys that are words in CSS" do
54
+ assert_equal 'A big button',
55
+ @css_parsed.section('Buttons.Big').description
56
+ end
57
+
58
+ test "parses KSS keys that word phases in CSS" do
59
+ assert_equal 'A button truly lime in color',
60
+ @css_parsed.section('Buttons - Truly Lime').description
61
+ end
62
+
89
63
  test "parses nested SCSS documents" do
90
64
  assert_equal "Your standard form element.", @scss_parsed.section('3.0.0').description
91
65
  assert_equal "Your standard text input box.", @scss_parsed.section('3.0.1').description
@@ -102,11 +76,42 @@ comment
102
76
  end
103
77
 
104
78
  test "public sections returns hash of sections" do
105
- assert_equal 2, @css_parsed.sections.count
79
+ assert_equal 5, @css_parsed.sections.count
106
80
  end
107
81
 
108
82
  test "parse multiple paths" do
109
- assert_equal 6, @multiple_parsed.sections.count
83
+ assert_equal 7, @multiple_parsed.sections.count
84
+ end
85
+
86
+ test "parse from string" do
87
+ scss_input =<<-'EOS'
88
+ // Your standard form element.
89
+ //
90
+ // Styleguide 3.0.0
91
+ form {
92
+
93
+ // Your standard text input box.
94
+ //
95
+ // Styleguide 3.0.1
96
+ input[type="text"] {
97
+ border: 1px solid #ccc;
98
+ }
99
+ }
100
+ EOS
101
+ assert_equal "Your standard form element.", Kss::Parser.new(scss_input).section('3.0.0').description
102
+ assert_equal "Your standard text input box.", @sass_parsed.section('3.0.1').description
110
103
  end
111
104
 
105
+ test "parse with no styleguide reference comment" do
106
+ scss_input =<<-'EOS'
107
+ // Nothing here
108
+ //
109
+ // No styleguide reference.
110
+ input[type="text"] {
111
+ border: 1px solid #ccc;
112
+ }
113
+ EOS
114
+
115
+ assert Kss::Parser.new(scss_input)
116
+ end
112
117
  end
@@ -39,4 +39,10 @@ comment
39
39
  assert_equal '2.1.1', @section.section
40
40
  end
41
41
 
42
+ test "parses word phrases as styleguide references" do
43
+ @comment_text.gsub!('2.1.1', 'Buttons - Truly Lime')
44
+ section = Kss::Section.new(@comment_text, 'example.css')
45
+ assert_equal 'Buttons - Truly Lime', @section.section
46
+ end
47
+
42
48
  end
metadata CHANGED
@@ -1,20 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
5
- prerelease:
4
+ version: 0.5.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Kyle Neath
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-08-02 00:00:00.000000000 Z
11
+ date: 2013-09-22 00:00:00.000000000 Z
13
12
  dependencies: []
14
- description: ! " Inspired by TomDoc, KSS attempts to provide a methodology for writing\n
15
- \ maintainable, documented CSS within a team. Specifically, KSS is a CSS\n structure,
16
- documentation specification, and styleguide format.\n\n This is a ruby library
17
- for parsing KSS documented CSS and generating\n styleguides.\n"
13
+ description: |2
14
+ Inspired by TomDoc, KSS attempts to provide a methodology for writing
15
+ maintainable, documented CSS within a team. Specifically, KSS is a CSS
16
+ structure, documentation specification, and styleguide format.
17
+
18
+ This is a ruby library for parsing KSS documented CSS and generating
19
+ styleguides.
18
20
  email: kneath@gmail.com
19
21
  executables: []
20
22
  extensions: []
@@ -33,6 +35,7 @@ files:
33
35
  - test/comment_parser_test.rb
34
36
  - test/fixtures/comments.txt
35
37
  - test/fixtures/css/buttons.css
38
+ - test/fixtures/css/images/example.png
36
39
  - test/fixtures/less/_label.less
37
40
  - test/fixtures/less/buttons.less
38
41
  - test/fixtures/less/mixins.less
@@ -45,27 +48,28 @@ files:
45
48
  - test/parser_test.rb
46
49
  - test/section_test.rb
47
50
  homepage: http://github.com/kneath/kss
48
- licenses: []
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
49
54
  post_install_message:
50
55
  rdoc_options: []
51
56
  require_paths:
52
57
  - lib
53
58
  required_ruby_version: !ruby/object:Gem::Requirement
54
- none: false
55
59
  requirements:
56
- - - ! '>='
60
+ - - '>='
57
61
  - !ruby/object:Gem::Version
58
62
  version: '0'
59
63
  required_rubygems_version: !ruby/object:Gem::Requirement
60
- none: false
61
64
  requirements:
62
- - - ! '>='
65
+ - - '>='
63
66
  - !ruby/object:Gem::Version
64
67
  version: '0'
65
68
  requirements: []
66
69
  rubyforge_project:
67
- rubygems_version: 1.8.23
70
+ rubygems_version: 2.0.0
68
71
  signing_key:
69
- specification_version: 3
72
+ specification_version: 4
70
73
  summary: A library for parsing KSS documented stylesheets and generating styleguides
71
74
  test_files: []
75
+ has_rdoc: false