automatthew-casuistry 0.1.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.
- data/Manifest +14 -0
- data/README.rdoc +24 -0
- data/casuistry.gemspec +60 -0
- data/lib/casuistry.rb +115 -0
- data/lib/properties.rb +106 -0
- data/lib/tags.rb +89 -0
- data/test/basics.rb +75 -0
- data/test/dan.css +58 -0
- data/test/experiment.cssy +19 -0
- data/test/fiddle.cssy +29 -0
- data/test/helper.rb +8 -0
- data/test/nesting.cssy +13 -0
- data/test/test.css +11 -0
- data/test/test.cssy +11 -0
- metadata +75 -0
data/Manifest
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
A CSS companion to Markaby. Would be nice if you could interpolate variables.
|
2
|
+
|
3
|
+
css = Casuistry.new
|
4
|
+
css.instance_eval do
|
5
|
+
my_favorite_color = :green
|
6
|
+
ul do
|
7
|
+
background('red')
|
8
|
+
li.ugly do
|
9
|
+
color(my_favorite_color)
|
10
|
+
end
|
11
|
+
smurf.house do
|
12
|
+
height('256px')
|
13
|
+
end
|
14
|
+
asrael! do
|
15
|
+
padding("10px")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
outer.middle.inner do
|
19
|
+
top("34px")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
css.data #=> array of arrays
|
24
|
+
css.output #=> string of css
|
data/casuistry.gemspec
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
|
2
|
+
# Gem::Specification for Casuistry-0.1.1
|
3
|
+
# Originally generated by Echoe
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = %q{casuistry}
|
7
|
+
s.version = "0.1.1"
|
8
|
+
|
9
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
10
|
+
s.authors = ["Matthew King"]
|
11
|
+
s.date = %q{2008-07-07}
|
12
|
+
s.description = %q{Generates CSS using Ruby, like Markaby}
|
13
|
+
s.email = %q{automatthew@gmail.com}
|
14
|
+
s.extra_rdoc_files = ["lib/casuistry.rb", "lib/properties.rb", "lib/tags.rb", "README.rdoc"]
|
15
|
+
s.files = ["casuistry.gemspec", "lib/casuistry.rb", "lib/properties.rb", "lib/tags.rb", "Manifest", "README.rdoc", "test/basics.rb", "test/dan.css", "test/experiment.cssy", "test/fiddle.cssy", "test/helper.rb", "test/nesting.cssy", "test/test.css", "test/test.cssy"]
|
16
|
+
s.has_rdoc = true
|
17
|
+
s.homepage = %q{}
|
18
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Casuistry", "--main", "README.rdoc"]
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.rubyforge_project = %q{casuistry}
|
21
|
+
s.rubygems_version = %q{1.2.0}
|
22
|
+
s.summary = %q{Generates CSS using Ruby, like Markaby}
|
23
|
+
s.test_files = ["test/basics.rb", "test/helper.rb"]
|
24
|
+
|
25
|
+
if s.respond_to? :specification_version then
|
26
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
27
|
+
s.specification_version = 2
|
28
|
+
|
29
|
+
if current_version >= 3 then
|
30
|
+
else
|
31
|
+
end
|
32
|
+
else
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
# # Original Rakefile source (requires the Echoe gem):
|
38
|
+
#
|
39
|
+
# %w{rubygems}.each do |dep|
|
40
|
+
# require dep
|
41
|
+
# end
|
42
|
+
#
|
43
|
+
# Version = '0.1.1'
|
44
|
+
#
|
45
|
+
# task :default => [:test]
|
46
|
+
#
|
47
|
+
# begin
|
48
|
+
# gem 'echoe', '>=2.7'
|
49
|
+
# require 'echoe'
|
50
|
+
# Echoe.new('casuistry', Version) do |p|
|
51
|
+
# p.project = 'casuistry'
|
52
|
+
# p.summary = "Generates CSS using Ruby, like Markaby"
|
53
|
+
# p.author = "Matthew King"
|
54
|
+
# p.email = "automatthew@gmail.com"
|
55
|
+
# p.ignore_pattern = /^(\.git).+/
|
56
|
+
# p.test_pattern = "test/*.rb"
|
57
|
+
# end
|
58
|
+
# rescue
|
59
|
+
# "(ignored echoe gemification, as you don't have the Right Stuff)"
|
60
|
+
# end
|
data/lib/casuistry.rb
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
require 'properties'
|
2
|
+
require 'tags'
|
3
|
+
|
4
|
+
# Markaby-ish way to declare CSS
|
5
|
+
class Casuistry
|
6
|
+
|
7
|
+
include Tags
|
8
|
+
|
9
|
+
attr_reader :data, :assigns
|
10
|
+
|
11
|
+
def self.process(file)
|
12
|
+
cssy = File.read(file)
|
13
|
+
c = self.new
|
14
|
+
c.process(cssy)
|
15
|
+
c
|
16
|
+
end
|
17
|
+
|
18
|
+
def process(string)
|
19
|
+
self.instance_eval(string)
|
20
|
+
end
|
21
|
+
|
22
|
+
def initialize(selector=nil)
|
23
|
+
@selector = selector
|
24
|
+
@data = []
|
25
|
+
end
|
26
|
+
|
27
|
+
def output
|
28
|
+
output = ""
|
29
|
+
@data.each do |selector|
|
30
|
+
output << selector.first
|
31
|
+
properties = selector.last.map { |s| " #{s}" }.join("\n")
|
32
|
+
output << "\n{\n#{properties}\n}\n"
|
33
|
+
end
|
34
|
+
output
|
35
|
+
end
|
36
|
+
|
37
|
+
def selector_eval(*args, &block)
|
38
|
+
selector = args.compact.join(" ")
|
39
|
+
Selector.new(selector, self).instance_eval(&block)
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
def selectify(method_name)
|
44
|
+
matches = method_name.to_s.match( /([\w_]+)!$/)
|
45
|
+
matches ? "##{matches[1]}" : ".#{method_name}"
|
46
|
+
end
|
47
|
+
|
48
|
+
def method_missing(name, &block)
|
49
|
+
selector = selectify(name)
|
50
|
+
if block
|
51
|
+
selector_eval(@selector, selector, &block)
|
52
|
+
else
|
53
|
+
x = [@selector, selector].compact.join(' ')
|
54
|
+
Selector.new(x, self)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
class Selector
|
61
|
+
include Tags
|
62
|
+
def initialize(base_selector, casuist)
|
63
|
+
@selector = base_selector
|
64
|
+
@casuist = casuist
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
def selector_eval(*args, &block)
|
69
|
+
selector = args.compact.join(" ")
|
70
|
+
if block
|
71
|
+
Selector.new(selector, @casuist).instance_eval(&block)
|
72
|
+
else
|
73
|
+
Selector.new(selector, @casuist)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
CSS_PROPERTIES.each do |method_name|
|
78
|
+
define_method method_name do |*args|
|
79
|
+
css_attr = method_name.gsub('_', '-')
|
80
|
+
property(css_attr, args)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def properties
|
85
|
+
if @properties
|
86
|
+
return @properties
|
87
|
+
else
|
88
|
+
@properties ||= []
|
89
|
+
@casuist.data << [@selector, @properties]
|
90
|
+
@properties
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def property(css_attr, *args)
|
95
|
+
properties << "#{css_attr}: #{args.join(' ')};"
|
96
|
+
end
|
97
|
+
|
98
|
+
def selectify(method_name)
|
99
|
+
matches = method_name.to_s.match( /([\w_]+)!$/)
|
100
|
+
matches ? "##{matches[1]}" : ".#{method_name}"
|
101
|
+
end
|
102
|
+
|
103
|
+
def method_missing(name, &block)
|
104
|
+
selector = selectify(name)
|
105
|
+
if block
|
106
|
+
selector_eval(@selector, selector, &block)
|
107
|
+
else
|
108
|
+
x = [@selector, selector].join(' ')
|
109
|
+
Selector.new(x, @casuist)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
114
|
+
|
115
|
+
Cssy = Casuistry
|
data/lib/properties.rb
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
CSS_PROPERTIES = %w{
|
2
|
+
azimuth
|
3
|
+
background
|
4
|
+
background_attachment
|
5
|
+
background_color
|
6
|
+
background_image
|
7
|
+
background_position
|
8
|
+
background_repeat
|
9
|
+
border
|
10
|
+
border_collapse
|
11
|
+
border_color
|
12
|
+
border_spacing
|
13
|
+
border_style
|
14
|
+
border_top
|
15
|
+
border_top_color
|
16
|
+
border_top_style
|
17
|
+
border_top_width
|
18
|
+
border_width
|
19
|
+
bottom
|
20
|
+
caption_side
|
21
|
+
clear
|
22
|
+
clip
|
23
|
+
color
|
24
|
+
content
|
25
|
+
counter_increment
|
26
|
+
counter_reset
|
27
|
+
cue
|
28
|
+
cue_after
|
29
|
+
cue_before
|
30
|
+
cursor
|
31
|
+
direction
|
32
|
+
display
|
33
|
+
elevation
|
34
|
+
empty_cells
|
35
|
+
float
|
36
|
+
font
|
37
|
+
font_family
|
38
|
+
font_size
|
39
|
+
font_size_adjust
|
40
|
+
font_stretch
|
41
|
+
font_style
|
42
|
+
font_variant
|
43
|
+
font_weight
|
44
|
+
height
|
45
|
+
left
|
46
|
+
letter_spacing
|
47
|
+
line_height
|
48
|
+
list_style
|
49
|
+
list_style_image
|
50
|
+
list_style_position
|
51
|
+
list_style_type
|
52
|
+
margin
|
53
|
+
margin_top
|
54
|
+
marker_offset
|
55
|
+
marks
|
56
|
+
max_height
|
57
|
+
max_width
|
58
|
+
min_height
|
59
|
+
min_width
|
60
|
+
orphans
|
61
|
+
outline
|
62
|
+
outline_color
|
63
|
+
outline_style
|
64
|
+
outline_width
|
65
|
+
overflow
|
66
|
+
padding
|
67
|
+
padding_top
|
68
|
+
page
|
69
|
+
page_break_after
|
70
|
+
page_break_before
|
71
|
+
page_break_inside
|
72
|
+
pause
|
73
|
+
pause_after
|
74
|
+
pause_before
|
75
|
+
pitch
|
76
|
+
pitch_range
|
77
|
+
play_during
|
78
|
+
position
|
79
|
+
quotes
|
80
|
+
richness
|
81
|
+
right
|
82
|
+
size
|
83
|
+
speak
|
84
|
+
speak_header
|
85
|
+
speak_numeral
|
86
|
+
speak_punctuation
|
87
|
+
speech_rate
|
88
|
+
stress
|
89
|
+
table_layout
|
90
|
+
text_align
|
91
|
+
text_decoration
|
92
|
+
text_indent
|
93
|
+
text_shadow
|
94
|
+
text_transform
|
95
|
+
top
|
96
|
+
unicode_bidi
|
97
|
+
vertical_align
|
98
|
+
visibility
|
99
|
+
voice_family
|
100
|
+
volume
|
101
|
+
white_space
|
102
|
+
widows
|
103
|
+
width
|
104
|
+
word_spacing
|
105
|
+
z_index
|
106
|
+
}
|
data/lib/tags.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
module Tags
|
2
|
+
HTML_TAGS = [
|
3
|
+
:a,
|
4
|
+
:abbr,
|
5
|
+
:acronym,
|
6
|
+
:address,
|
7
|
+
:area,
|
8
|
+
:b,
|
9
|
+
:base,
|
10
|
+
:bdo,
|
11
|
+
:big,
|
12
|
+
:blockquote,
|
13
|
+
:body,
|
14
|
+
:br,
|
15
|
+
:button,
|
16
|
+
:caption,
|
17
|
+
:cite,
|
18
|
+
:code,
|
19
|
+
:col,
|
20
|
+
:colgroup,
|
21
|
+
:dd,
|
22
|
+
:del,
|
23
|
+
:dfn,
|
24
|
+
:div,
|
25
|
+
:dl,
|
26
|
+
:dt,
|
27
|
+
:em,
|
28
|
+
:fieldset,
|
29
|
+
:form,
|
30
|
+
:h1,
|
31
|
+
:h2,
|
32
|
+
:h3,
|
33
|
+
:h4,
|
34
|
+
:h5,
|
35
|
+
:h6,
|
36
|
+
:head,
|
37
|
+
:hr,
|
38
|
+
:html,
|
39
|
+
:i,
|
40
|
+
:img,
|
41
|
+
:input,
|
42
|
+
:ins,
|
43
|
+
:kbd,
|
44
|
+
:label,
|
45
|
+
:legend,
|
46
|
+
:li,
|
47
|
+
:link,
|
48
|
+
:map,
|
49
|
+
:meta,
|
50
|
+
:noscript,
|
51
|
+
:object,
|
52
|
+
:ol,
|
53
|
+
:optgroup,
|
54
|
+
:option,
|
55
|
+
:p,
|
56
|
+
:param,
|
57
|
+
:pre,
|
58
|
+
:q,
|
59
|
+
:samp,
|
60
|
+
:script,
|
61
|
+
:select,
|
62
|
+
:small,
|
63
|
+
:span,
|
64
|
+
:strong,
|
65
|
+
:style,
|
66
|
+
:sub,
|
67
|
+
:sup,
|
68
|
+
:table,
|
69
|
+
:tbody,
|
70
|
+
:td,
|
71
|
+
:textarea,
|
72
|
+
:tfoot,
|
73
|
+
:th,
|
74
|
+
:thead,
|
75
|
+
:title,
|
76
|
+
:tr,
|
77
|
+
:tt,
|
78
|
+
:ul,
|
79
|
+
:var,
|
80
|
+
]
|
81
|
+
|
82
|
+
# define tag methods to delegate to selector_eval
|
83
|
+
methods = HTML_TAGS.map do |tag|
|
84
|
+
"def #{tag}(&block); selector_eval(@selector, '#{tag}', &block);end\n"
|
85
|
+
end.join
|
86
|
+
|
87
|
+
module_eval methods
|
88
|
+
|
89
|
+
end
|
data/test/basics.rb
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
here = File.dirname(__FILE__)
|
2
|
+
require "#{here}/helper"
|
3
|
+
|
4
|
+
describe "Casuistry" do
|
5
|
+
|
6
|
+
before do
|
7
|
+
@string = File.read("test.css")
|
8
|
+
@data = [
|
9
|
+
[ '.class_name1 .class_name2 .class_name3',
|
10
|
+
[ 'font-size: 2em;', 'line-height: 3em;', 'border: 1px solid blue;']],
|
11
|
+
[ '#milk',
|
12
|
+
['background-color: blue;', 'border: 1px solid red']]
|
13
|
+
]
|
14
|
+
@data2 = [
|
15
|
+
[ '#header', ['width: 500px;'] ],
|
16
|
+
[ '#header #menu', ['background: gray;']]
|
17
|
+
]
|
18
|
+
|
19
|
+
@data3 = [
|
20
|
+
["ul", ["background: red;", "width: 134px;"]],
|
21
|
+
["ul li .ugly", ["color: green;"]],
|
22
|
+
["ul .smurf .house", ["height: 256px;"]],
|
23
|
+
["ul #asrael", ["padding: 10px;"]],
|
24
|
+
[".gargamel", ["margin: 0px;"]],
|
25
|
+
[".outer .middle .inner", ["top: 34px;"]]
|
26
|
+
]
|
27
|
+
|
28
|
+
@css1 = <<-CSS
|
29
|
+
ul
|
30
|
+
{
|
31
|
+
background: red;
|
32
|
+
width: 134px;
|
33
|
+
}
|
34
|
+
ul li .ugly
|
35
|
+
{
|
36
|
+
color: green;
|
37
|
+
}
|
38
|
+
ul .smurf .house
|
39
|
+
{
|
40
|
+
height: 256px;
|
41
|
+
}
|
42
|
+
ul #asrael
|
43
|
+
{
|
44
|
+
padding: 10px;
|
45
|
+
}
|
46
|
+
.gargamel
|
47
|
+
{
|
48
|
+
margin: 0px;
|
49
|
+
}
|
50
|
+
.outer .middle .inner
|
51
|
+
{
|
52
|
+
top: 34px;
|
53
|
+
}
|
54
|
+
CSS
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
it "interprets unknown ! methods as ids and others as classes" do
|
59
|
+
c = Casuistry.new
|
60
|
+
c.selectify("smurf!").should == "#smurf"
|
61
|
+
c.selectify("smurf").should == ".smurf"
|
62
|
+
end
|
63
|
+
|
64
|
+
it "processes cssy code" do
|
65
|
+
c = Casuistry.new
|
66
|
+
c.instance_eval do
|
67
|
+
@background = "red"
|
68
|
+
end
|
69
|
+
c.process(File.read( "#{here}/fiddle.cssy"))
|
70
|
+
c.data.should == @data3
|
71
|
+
c.output.should == @css1
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
end
|
data/test/dan.css
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
/* reset.css */
|
2
|
+
@import url( /stylesheets/main.css );
|
3
|
+
@import url( /stylesheets/products.css );
|
4
|
+
|
5
|
+
#intro_text a.back {
|
6
|
+
padding: 0 0 2px 25px;
|
7
|
+
font-weight: bold;
|
8
|
+
background: url("/images/icons-back.gif") 0 0 no-repeat;
|
9
|
+
}
|
10
|
+
div.wizard { margin-right: 8px; float: left; }
|
11
|
+
|
12
|
+
form ul.properties { display: block; margin: 0; padding: 0; clear: both; }
|
13
|
+
li.property { display: block; list-style-type: none; clear: both; padding-bottom: 40px; }
|
14
|
+
#content form ul.properties li.property hr { display: block; clear: left; float: none; height: 0; visibility: hidden; margin: -0.66em; padding: 0; }
|
15
|
+
form label { float: left; display: block; width: 80px; text-align: right; padding-right: 14px; color: gray; font-weight: bold; font-size: 13px; }
|
16
|
+
form div.value { float: left; color: gray; }
|
17
|
+
div.radio div.option, div.checkbox div.option { cursor: pointer; }
|
18
|
+
li.size div.option { background: url( /images/bt_radio_off.gif) no-repeat; padding-left: 17px; height: 21px; font-size: 13px; }
|
19
|
+
li.size div.option.selected { background: url( /images/bt_radio_on.gif) no-repeat; padding-left: 17px; height: 21px; font-size: 13px; }
|
20
|
+
li.style div.option { float: left; border: 1px solid silver; padding: 1px; margin-left: 4px; opacity: 0.5; }
|
21
|
+
li.style div.option.hover, li.style div.option.selected { border: 1px solid gray; }
|
22
|
+
li.style div.option.selected { opacity: 1.0; }
|
23
|
+
li.tos div.option { background: url( /images/checkbox.gif ) no-repeat; padding-left: 17px; }
|
24
|
+
li.code.property { display: none; }
|
25
|
+
div.text.value { margin-top: -4px; }
|
26
|
+
div.text.value input { height: 23px; width: 220px; border: none; background: url( /images/textfield_bg.gif) no-repeat;
|
27
|
+
padding: 4px; font-size: 11px; font-weight: bold; color: gray; }
|
28
|
+
div.text.value textarea { width: 280px; height: 184px; font-size: 11px; color: gray; }
|
29
|
+
div.preview { float: left ; height: 400px; }
|
30
|
+
div.preview iframe { border: none; display: block; position: relative; width: 490px; height: 340px; border: 1px solid silver; margin: 4px; padding: 30px 0; }
|
31
|
+
|
32
|
+
div.ac_results { border: 1px solid silver; text-align: left; background-color: white; color: gray; padding: 5px; margin-top: -8px; }
|
33
|
+
|
34
|
+
img.title { padding-bottom: 8px; }
|
35
|
+
|
36
|
+
ul.steps { display: block; margin: 0; padding: 0; clear: both; }
|
37
|
+
|
38
|
+
ul.steps li.step {
|
39
|
+
display: none; width: 403px; height: 335px;
|
40
|
+
margin-left: 2px; padding: 16px;
|
41
|
+
list-style-type: none;
|
42
|
+
border: 1px solid silver;
|
43
|
+
}
|
44
|
+
u.steps li.step.selected { display: block; }
|
45
|
+
|
46
|
+
div.tab-selector span {
|
47
|
+
color: gray;
|
48
|
+
font-size: 11px; text-align: center;
|
49
|
+
display: block; float: left; height: 26px; width: 129px; padding: 12px 8px 0px 8px;
|
50
|
+
background: url( /images/tab/unselected.gif ) repeat-x; cursor: pointer;
|
51
|
+
}
|
52
|
+
|
53
|
+
div.tab-selector span.selected {
|
54
|
+
/* border-right: 1px solid gray; border-left: 1px solid gray; border-top: 1px solid silver; */
|
55
|
+
font-weight: bold; color: black;
|
56
|
+
background: url( /images/tab/selected.gif ) repeat-x;
|
57
|
+
}
|
58
|
+
|
data/test/fiddle.cssy
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
favorite = 'green'
|
2
|
+
|
3
|
+
ul do
|
4
|
+
|
5
|
+
background('red')
|
6
|
+
|
7
|
+
li.ugly do
|
8
|
+
color(favorite)
|
9
|
+
end
|
10
|
+
|
11
|
+
smurf.house do
|
12
|
+
height('256px')
|
13
|
+
end
|
14
|
+
|
15
|
+
asrael! do
|
16
|
+
padding("10px")
|
17
|
+
end
|
18
|
+
|
19
|
+
width('134px')
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
gargamel do
|
24
|
+
margin("0px")
|
25
|
+
end
|
26
|
+
|
27
|
+
outer.middle.inner do
|
28
|
+
top("34px")
|
29
|
+
end
|
data/test/helper.rb
ADDED
data/test/nesting.cssy
ADDED
data/test/test.css
ADDED
data/test/test.cssy
ADDED
metadata
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: automatthew-casuistry
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Matthew King
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-07-07 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Generates CSS using Ruby, like Markaby
|
17
|
+
email: automatthew@gmail.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- lib/casuistry.rb
|
24
|
+
- lib/properties.rb
|
25
|
+
- lib/tags.rb
|
26
|
+
- README.rdoc
|
27
|
+
files:
|
28
|
+
- casuistry.gemspec
|
29
|
+
- lib/casuistry.rb
|
30
|
+
- lib/properties.rb
|
31
|
+
- lib/tags.rb
|
32
|
+
- Manifest
|
33
|
+
- README.rdoc
|
34
|
+
- test/basics.rb
|
35
|
+
- test/dan.css
|
36
|
+
- test/experiment.cssy
|
37
|
+
- test/fiddle.cssy
|
38
|
+
- test/helper.rb
|
39
|
+
- test/nesting.cssy
|
40
|
+
- test/test.css
|
41
|
+
- test/test.cssy
|
42
|
+
has_rdoc: true
|
43
|
+
homepage: ""
|
44
|
+
post_install_message:
|
45
|
+
rdoc_options:
|
46
|
+
- --line-numbers
|
47
|
+
- --inline-source
|
48
|
+
- --title
|
49
|
+
- Casuistry
|
50
|
+
- --main
|
51
|
+
- README.rdoc
|
52
|
+
require_paths:
|
53
|
+
- lib
|
54
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: "0"
|
59
|
+
version:
|
60
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: "0"
|
65
|
+
version:
|
66
|
+
requirements: []
|
67
|
+
|
68
|
+
rubyforge_project: casuistry
|
69
|
+
rubygems_version: 1.2.0
|
70
|
+
signing_key:
|
71
|
+
specification_version: 2
|
72
|
+
summary: Generates CSS using Ruby, like Markaby
|
73
|
+
test_files:
|
74
|
+
- test/basics.rb
|
75
|
+
- test/helper.rb
|