hum 0.0.1 → 0.0.2

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 (94) hide show
  1. data/CHANGELOG.md +5 -1
  2. data/README.md +61 -20
  3. data/hum.gemspec +4 -3
  4. data/lib/hum/array.rb +41 -18
  5. data/lib/hum/engine.rb +205 -190
  6. data/lib/hum/exec.rb +3 -2
  7. data/lib/hum/version.rb +1 -1
  8. data/test/bad_file_test.rb +28 -0
  9. data/test/engine_tests.rb +132 -0
  10. data/test/haml/insert_extra_child.haml +9 -0
  11. data/test/{hum/templates/nest/nest.haml → haml/nests.haml} +1 -1
  12. data/test/haml/parent_selector.haml +7 -0
  13. data/test/haml/parent_siblings.haml +10 -0
  14. data/test/{hum/templates/simple/simple.haml → haml/property_value.haml} +1 -1
  15. data/test/haml/siblings.haml +6 -0
  16. data/test/{hum/templates/single/single.haml → haml/single_line_nest.haml} +4 -2
  17. data/test/{hum/templates/comma/comma.html → other/bad.file} +0 -0
  18. data/test/other/example.scss +6 -0
  19. data/test/sass/insert_extra_child.sass +8 -0
  20. data/test/{hum/templates/nest/nest.sass → sass/nests.sass} +0 -0
  21. data/test/sass/parent_selector.sass +6 -0
  22. data/test/sass/parent_siblings.sass +6 -0
  23. data/test/{hum/templates/simple/simple.sass → sass/property_value.sass} +0 -0
  24. data/test/sass/siblings.sass +2 -0
  25. data/test/{hum/templates/single/single.sass → sass/single_line_nest.sass} +1 -1
  26. data/test/sass_convert_test.rb +28 -0
  27. metadata +60 -159
  28. data/test/hum/templates/comma/comma.array +0 -1
  29. data/test/hum/templates/comma/comma.css +0 -6
  30. data/test/hum/templates/comma/comma.haml +0 -6
  31. data/test/hum/templates/comma/comma.haml_tags +0 -1
  32. data/test/hum/templates/comma/comma.sass +0 -2
  33. data/test/hum/templates/comma/comma_clean.sass +0 -1
  34. data/test/hum/templates/comma/comma_end.html +0 -9
  35. data/test/hum/templates/complex_parent/complex_parent.array +0 -1
  36. data/test/hum/templates/complex_parent/complex_parent.css +0 -18
  37. data/test/hum/templates/complex_parent/complex_parent.haml +0 -12
  38. data/test/hum/templates/complex_parent/complex_parent.haml_tags +0 -1
  39. data/test/hum/templates/complex_parent/complex_parent.html +0 -0
  40. data/test/hum/templates/complex_parent/complex_parent.sass +0 -12
  41. data/test/hum/templates/complex_parent/complex_parent_clean.sass +0 -6
  42. data/test/hum/templates/complex_parent/complex_parent_end.html +0 -18
  43. data/test/hum/templates/deep_nest/deep_nest.array +0 -1
  44. data/test/hum/templates/deep_nest/deep_nest.css +0 -15
  45. data/test/hum/templates/deep_nest/deep_nest.haml +0 -19
  46. data/test/hum/templates/deep_nest/deep_nest.haml_tags +0 -1
  47. data/test/hum/templates/deep_nest/deep_nest.html +0 -0
  48. data/test/hum/templates/deep_nest/deep_nest.sass +0 -10
  49. data/test/hum/templates/deep_nest/deep_nest_clean.sass +0 -5
  50. data/test/hum/templates/deep_nest/deep_nest_end.html +0 -27
  51. data/test/hum/templates/deep_nest/deep_nest_start.scss +0 -15
  52. data/test/hum/templates/line_nest/line_nest.array +0 -1
  53. data/test/hum/templates/line_nest/line_nest.css +0 -6
  54. data/test/hum/templates/line_nest/line_nest.haml +0 -9
  55. data/test/hum/templates/line_nest/line_nest.haml_tags +0 -1
  56. data/test/hum/templates/line_nest/line_nest.html +0 -0
  57. data/test/hum/templates/line_nest/line_nest.sass +0 -5
  58. data/test/hum/templates/line_nest/line_nest_clean.sass +0 -2
  59. data/test/hum/templates/line_nest/line_nest_end.html +0 -15
  60. data/test/hum/templates/nest/nest.array +0 -1
  61. data/test/hum/templates/nest/nest.css +0 -9
  62. data/test/hum/templates/nest/nest.haml_tags +0 -1
  63. data/test/hum/templates/nest/nest.html +0 -0
  64. data/test/hum/templates/nest/nest_clean.sass +0 -3
  65. data/test/hum/templates/nest/nest_end.html +0 -12
  66. data/test/hum/templates/parent_nest/parent_nest.array +0 -1
  67. data/test/hum/templates/parent_nest/parent_nest.css +0 -12
  68. data/test/hum/templates/parent_nest/parent_nest.haml +0 -8
  69. data/test/hum/templates/parent_nest/parent_nest.haml_tags +0 -1
  70. data/test/hum/templates/parent_nest/parent_nest.html +0 -0
  71. data/test/hum/templates/parent_nest/parent_nest.sass +0 -8
  72. data/test/hum/templates/parent_nest/parent_nest_clean.sass +0 -4
  73. data/test/hum/templates/parent_nest/parent_nest_end.html +0 -12
  74. data/test/hum/templates/parent_select/parent_select.array +0 -1
  75. data/test/hum/templates/parent_select/parent_select.css +0 -4
  76. data/test/hum/templates/parent_select/parent_select.haml +0 -6
  77. data/test/hum/templates/parent_select/parent_select.haml_tags +0 -1
  78. data/test/hum/templates/parent_select/parent_select.html +0 -0
  79. data/test/hum/templates/parent_select/parent_select.sass +0 -4
  80. data/test/hum/templates/parent_select/parent_select_clean.sass +0 -2
  81. data/test/hum/templates/parent_select/parent_select_end.html +0 -9
  82. data/test/hum/templates/simple/simple.array +0 -1
  83. data/test/hum/templates/simple/simple.css +0 -9
  84. data/test/hum/templates/simple/simple.haml_tags +0 -1
  85. data/test/hum/templates/simple/simple.html +0 -0
  86. data/test/hum/templates/simple/simple_clean.sass +0 -3
  87. data/test/hum/templates/simple/simple_end.html +0 -10
  88. data/test/hum/templates/single/single.array +0 -1
  89. data/test/hum/templates/single/single.css +0 -3
  90. data/test/hum/templates/single/single.haml_tags +0 -1
  91. data/test/hum/templates/single/single.html +0 -0
  92. data/test/hum/templates/single/single_clean.sass +0 -1
  93. data/test/hum/templates/single/single_end.html +0 -8
  94. data/test/run_tests.rb +0 -119
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".foo", ".bar"], :tab=>0}]
@@ -1,6 +0,0 @@
1
- .foo{
2
- color: red;
3
- }
4
- .bar{
5
- color: red;
6
- }
@@ -1,6 +0,0 @@
1
- %html
2
- %head
3
- %link{:type => 'text/css', :rel => 'stylesheet', :href => 'comma.css'}
4
- %body
5
- %div.foo Inner content
6
- %div.bar Inner content
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".foo", ".bar"], :tab=>0, :haml=>["%div.foo", "%div.bar"]}]
@@ -1,2 +0,0 @@
1
- .foo, .bar
2
- color: red
@@ -1 +0,0 @@
1
- .foo, .bar
@@ -1,9 +0,0 @@
1
- <html>
2
- <head>
3
- <link href='comma.css' rel='stylesheet' type='text/css' />
4
- </head>
5
- <body>
6
- <div class='foo'>Inner content</div>
7
- <div class='bar'>Inner content</div>
8
- </body>
9
- </html>
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".x-msg"], :tab=>0}, {:line=>2, :select=>["p"], :tab=>1}, {:line=>3, :select=>[".x-msg.green"], :tab=>0, :parent=>1, :kids=>[4]}, {:line=>4, :select=>[".close"], :tab=>1}, {:line=>5, :select=>[".x-msg.red"], :tab=>0, :parent=>1, :kids=>[6]}, {:line=>6, :select=>[".close"], :tab=>1}]
@@ -1,18 +0,0 @@
1
- .x-msg {
2
- position: relative;
3
- }
4
- .x-msg p {
5
- color: #444;
6
- }
7
- .x-msg.green {
8
- background-position: 10px 10px;
9
- }
10
- .x-msg.green .close {
11
- background-image:none;
12
- }
13
- .x-msg.red{
14
- background-position: 12px 12px;
15
- }
16
- .x-msg.red .close {
17
- background-image:none;
18
- }
@@ -1,12 +0,0 @@
1
- %html
2
- %head
3
- %link{:type => 'text/css', :rel => 'stylesheet', :href => 'complex_parent.css'}
4
- %body
5
- %div.x-msg
6
- %p Inner content
7
- %div.x-msg.green
8
- %p Inner content
9
- %div.close Inner content
10
- %div.x-msg.red
11
- %p Inner content
12
- %div.close Inner content
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".x-msg"], :tab=>0, :haml=>["%div.x-msg"]}, {:line=>2, :select=>["p"], :tab=>1, :haml=>["%p"]}, {:line=>3, :select=>[".x-msg.green"], :tab=>0, :parent=>1, :kids=>[4], :haml=>["%div.x-msg.green"]}, {:line=>4, :select=>[".close"], :tab=>1, :haml=>["%div.close"]}, {:line=>5, :select=>[".x-msg.red"], :tab=>0, :parent=>1, :kids=>[6], :haml=>["%div.x-msg.red"]}, {:line=>6, :select=>[".close"], :tab=>1, :haml=>["%div.close"]}]
@@ -1,12 +0,0 @@
1
- .x-msg
2
- position: relative
3
- p
4
- color: #444
5
- &.green
6
- background-position: 10px 10px
7
- .close
8
- background-image: none
9
- &.red
10
- background-position: 12px 12px
11
- .close
12
- background-image: none
@@ -1,6 +0,0 @@
1
- .x-msg
2
- p
3
- &.green
4
- .close
5
- &.red
6
- .close
@@ -1,18 +0,0 @@
1
- <html>
2
- <head>
3
- <link href='complex_parent.css' rel='stylesheet' type='text/css' />
4
- </head>
5
- <body>
6
- <div class='x-msg'>
7
- <p>Inner content</p>
8
- </div>
9
- <div class='x-msg green'>
10
- <p>Inner content</p>
11
- <div class='close'>Inner content</div>
12
- </div>
13
- <div class='x-msg red'>
14
- <p>Inner content</p>
15
- <div class='close'>Inner content</div>
16
- </div>
17
- </body>
18
- </html>
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>["div"], :tab=>0}, {:line=>2, :select=>["p"], :tab=>1}, {:line=>3, :select=>["a"], :tab=>1}, {:line=>4, :select=>["div.red", "div.blue"], :tab=>0, :parent=>1}, {:line=>5, :select=>["div.black", "div.white"], :tab=>0, :parent=>1}]
@@ -1,15 +0,0 @@
1
- div {
2
- font-size: 11px;
3
- }
4
- div p {
5
- font-size: 12px;
6
- }
7
- div a {
8
- font-size: 14px;
9
- }
10
- div.red, div.blue {
11
- border: 1px solid red;
12
- }
13
- div.black, div.white {
14
- border: 1px solid orange;
15
- }
@@ -1,19 +0,0 @@
1
- %html
2
- %head
3
- %link{:type => 'text/css', :rel => 'stylesheet', :href => 'deep_nest.css'}
4
- %body
5
- %div
6
- %p Inner content
7
- %a Inner content
8
- %div.red
9
- %p Inner content
10
- %a Inner content
11
- %div.blue
12
- %p Inner content
13
- %a Inner content
14
- %div.black
15
- %p Inner content
16
- %a Inner content
17
- %div.white
18
- %p Inner content
19
- %a Inner content
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>["div"], :tab=>0, :haml=>["%div"]}, {:line=>2, :select=>["p"], :tab=>1, :haml=>["%p"]}, {:line=>3, :select=>["a"], :tab=>1, :haml=>["%a"]}, {:line=>4, :select=>["div.red", "div.blue"], :tab=>0, :parent=>1, :haml=>["%div.red", "%div.blue"]}, {:line=>5, :select=>["div.black", "div.white"], :tab=>0, :parent=>1, :haml=>["%div.black", "%div.white"]}]
File without changes
@@ -1,10 +0,0 @@
1
- div
2
- font-size: 11px
3
- p
4
- font-size: 12px
5
- a
6
- font-size: 14px
7
- &.red, &.blue
8
- border: 1px solid red
9
- &.black, &.white
10
- border: 1px solid orange
@@ -1,5 +0,0 @@
1
- div
2
- p
3
- a
4
- &.red, &.blue
5
- &.black, &.white
@@ -1,27 +0,0 @@
1
- <html>
2
- <head>
3
- <link href='deep_nest.css' rel='stylesheet' type='text/css' />
4
- </head>
5
- <body>
6
- <div>
7
- <p>Inner content</p>
8
- <a>Inner content</a>
9
- </div>
10
- <div class='red'>
11
- <p>Inner content</p>
12
- <a>Inner content</a>
13
- </div>
14
- <div class='blue'>
15
- <p>Inner content</p>
16
- <a>Inner content</a>
17
- </div>
18
- <div class='black'>
19
- <p>Inner content</p>
20
- <a>Inner content</a>
21
- </div>
22
- <div class='white'>
23
- <p>Inner content</p>
24
- <a>Inner content</a>
25
- </div>
26
- </body>
27
- </html>
@@ -1,15 +0,0 @@
1
- div{
2
- font-size:11px;
3
- p{
4
- font-size:12px;
5
- }
6
- a{
7
- font-size:14px;
8
- }
9
- &.red, &.blue{
10
- border: 1px solid red;
11
- }
12
- &.black, &.white{
13
- border:1px solid orange;
14
- }
15
- }
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".bar p"], :tab=>0}, {:line=>2, :select=>[".buz p b"], :tab=>0}]
@@ -1,6 +0,0 @@
1
- .bar p{
2
- font-size:12px;
3
- }
4
- .buz p b{
5
- font-weight:bold;
6
- }
@@ -1,9 +0,0 @@
1
- %html
2
- %head
3
- %link{:type => 'text/css', :rel => 'stylesheet', :href => 'line_nest.css'}
4
- %body
5
- %div.bar
6
- %p Inner content
7
- %div.buz
8
- %p
9
- %b Inner content
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".bar p"], :tab=>0, :haml=>["%div.bar %p"]}, {:line=>2, :select=>[".buz p b"], :tab=>0, :haml=>["%div.buz %p %b"]}]
File without changes
@@ -1,5 +0,0 @@
1
- .bar p
2
- font-size: 12px
3
-
4
- .buz p b
5
- font-weight: bold
@@ -1,2 +0,0 @@
1
- .bar p
2
- .buz p b
@@ -1,15 +0,0 @@
1
- <html>
2
- <head>
3
- <link href='line_nest.css' rel='stylesheet' type='text/css' />
4
- </head>
5
- <body>
6
- <div class='bar'>
7
- <p>Inner content</p>
8
- </div>
9
- <div class='buz'>
10
- <p>
11
- <b>Inner content</b>
12
- </p>
13
- </div>
14
- </body>
15
- </html>
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".foo"], :tab=>0}, {:line=>2, :select=>[".bar"], :tab=>1}, {:line=>3, :select=>[".baz"], :tab=>2}]
@@ -1,9 +0,0 @@
1
- .foo{
2
- height: 100px;
3
- }
4
- .foo .bar{
5
- display: inline;
6
- }
7
- .foo .bar .baz{
8
- color: blue;
9
- }
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".foo"], :tab=>0, :haml=>["%div.foo"]}, {:line=>2, :select=>[".bar"], :tab=>1, :haml=>["%div.bar"]}, {:line=>3, :select=>[".baz"], :tab=>2, :haml=>["%div.baz"]}]
File without changes
@@ -1,3 +0,0 @@
1
- .foo
2
- .bar
3
- .baz
@@ -1,12 +0,0 @@
1
- <html>
2
- <head>
3
- <link href='nest.css' rel='stylesheet' type='text/css' />
4
- </head>
5
- <body>
6
- <div class='foo'>
7
- <div class='bar'>
8
- <div class='baz'>Inner content</div>
9
- </div>
10
- </div>
11
- </body>
12
- </html>
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".bar"], :tab=>0}, {:line=>2, :select=>[".bar.baz"], :tab=>0, :parent=>1, :kids=>[3, 4]}, {:line=>3, :select=>["div"], :tab=>1}, {:line=>4, :select=>["p"], :tab=>1}]
@@ -1,12 +0,0 @@
1
- .bar {
2
- font-size: 14px;
3
- }
4
- .bar.baz {
5
- font-size: 12px;
6
- }
7
- .bar.baz div {
8
- font-weight: bold;
9
- }
10
- .bar.baz p {
11
- font-weight: normal;
12
- }
@@ -1,8 +0,0 @@
1
- %html
2
- %head
3
- %link{:type => 'text/css', :rel => 'stylesheet', :href => 'parent_nest.css'}
4
- %body
5
- %div.bar Inner content
6
- %div.bar.baz
7
- %div Inner content
8
- %p Inner content
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".bar"], :tab=>0, :haml=>["%div.bar"]}, {:line=>2, :select=>[".bar.baz"], :tab=>0, :parent=>1, :kids=>[3, 4], :haml=>["%div.bar.baz"]}, {:line=>3, :select=>["div"], :tab=>1, :haml=>["%div"]}, {:line=>4, :select=>["p"], :tab=>1, :haml=>["%p"]}]
File without changes
@@ -1,8 +0,0 @@
1
- .bar
2
- font-size: 14px
3
- &.baz
4
- font-size: 12px
5
- div
6
- font-weight: bold
7
- p
8
- font-weight: normal
@@ -1,4 +0,0 @@
1
- .bar
2
- &.baz
3
- div
4
- p
@@ -1,12 +0,0 @@
1
- <html>
2
- <head>
3
- <link href='parent_nest.css' rel='stylesheet' type='text/css' />
4
- </head>
5
- <body>
6
- <div class='bar'>Inner content</div>
7
- <div class='bar baz'>
8
- <div>Inner content</div>
9
- <p>Inner content</p>
10
- </div>
11
- </body>
12
- </html>
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".bar"], :tab=>0}, {:line=>2, :select=>[".bar.baz"], :tab=>0, :parent=>1}]
@@ -1,4 +0,0 @@
1
- .bar {
2
- font-size: 14px; }
3
- .bar.baz {
4
- font-size: 12px; }
@@ -1,6 +0,0 @@
1
- %html
2
- %head
3
- %link{:type => 'text/css', :rel => 'stylesheet', :href => 'parent_select.css'}
4
- %body
5
- %div.bar Inner content
6
- %div.bar.baz Inner content
@@ -1 +0,0 @@
1
- [{:line=>1, :select=>[".bar"], :tab=>0, :haml=>["%div.bar"]}, {:line=>2, :select=>[".bar.baz"], :tab=>0, :parent=>1, :haml=>["%div.bar.baz"]}]
File without changes
@@ -1,4 +0,0 @@
1
- .bar
2
- font-size: 14px
3
- &.baz
4
- font-size: 12px
@@ -1,2 +0,0 @@
1
- .bar
2
- &.baz
@@ -1,9 +0,0 @@
1
- <html>
2
- <head>
3
- <link href='parent_select.css' rel='stylesheet' type='text/css' />
4
- </head>
5
- <body>
6
- <div class='bar'>Inner content</div>
7
- <div class='bar baz'>Inner content</div>
8
- </body>
9
- </html>