cassandra 0.2.3 → 0.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/properties.rb DELETED
@@ -1,119 +0,0 @@
1
- class Cassandra
2
- CSS_PROPERTIES = %w{
3
- azimuth
4
- background
5
- background_attachment
6
- background_color
7
- background_image
8
- background_position
9
- background_repeat
10
- border
11
- border_left
12
- border_top
13
- border_right
14
- border_bottom
15
- border_collapse
16
- border_color
17
- border_spacing
18
- border_style
19
- border_top
20
- border_top_color
21
- border_top_style
22
- border_top_width
23
- border_width
24
- bottom
25
- caption_side
26
- clear
27
- clip
28
- color
29
- content
30
- counter_increment
31
- counter_reset
32
- cue
33
- cue_after
34
- cue_before
35
- cursor
36
- direction
37
- display
38
- elevation
39
- empty_cells
40
- float
41
- font
42
- font_family
43
- font_size
44
- font_size_adjust
45
- font_stretch
46
- font_style
47
- font_variant
48
- font_weight
49
- height
50
- left
51
- letter_spacing
52
- line_height
53
- list_style
54
- list_style_image
55
- list_style_position
56
- list_style_type
57
- margin
58
- margin_left
59
- margin_top
60
- margin_right
61
- margin_bottom
62
- marker_offset
63
- marks
64
- max_height
65
- max_width
66
- min_height
67
- min_width
68
- orphans
69
- outline
70
- outline_color
71
- outline_style
72
- outline_width
73
- overflow
74
- padding
75
- padding_left
76
- padding_top
77
- padding_right
78
- padding_bottom
79
- page
80
- page_break_after
81
- page_break_before
82
- page_break_inside
83
- pause
84
- pause_after
85
- pause_before
86
- pitch
87
- pitch_range
88
- play_during
89
- position
90
- quotes
91
- richness
92
- right
93
- size
94
- speak
95
- speak_header
96
- speak_numeral
97
- speak_punctuation
98
- speech_rate
99
- stress
100
- table_layout
101
- text_align
102
- text_decoration
103
- text_indent
104
- text_shadow
105
- text_transform
106
- top
107
- unicode_bidi
108
- vertical_align
109
- visibility
110
- voice_family
111
- volume
112
- white_space
113
- widows
114
- width
115
- word_spacing
116
- z_index
117
- }
118
-
119
- end
data/lib/tags.rb DELETED
@@ -1,89 +0,0 @@
1
- class Cassandra
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.first, '#{tag}', &block);end\n"
85
- end.join
86
-
87
- module_eval methods
88
-
89
- end
data/misc/dan.rb DELETED
@@ -1,64 +0,0 @@
1
- # Experimental alternative from Dan Yoder
2
-
3
- %w( rubygems functor ).each { |file| require file }
4
- class CSS # :nodoc:
5
-
6
- include Functor::Method
7
-
8
- # Functor needs instance_exec, which needs instance_eval and send ...
9
- METHODS = %w( class functor instance_eval instance_exec send __send__ __id__ )
10
- instance_methods.each { |m| undef_method( m ) unless METHODS.include? m }
11
-
12
-
13
- TAGS = %w( a abbr acronym address area b base bdo big blockquote body br button caption
14
- cite code col colgroup dd del dfn div dl dt em fieldset form h1 h2 h3 h4 h5 h6 head hr
15
- html i img input ins kbd label legend li link map meta noscript object ol optgroup option
16
- p param pre q samp script select small span strong style sub sup table tbody td textarea
17
- tfoot th thead title tr tt ul var _ )
18
- ATTRS = %w( background border clear color display float font height letter_spacing
19
- line-height list margin max outline padding text )
20
- COMBINATORS = %w( + / > )
21
-
22
- ROWS = %w( height top bottom ) ; COLS = %w( width left right )
23
-
24
- def self.css( &block ) ; @start = block ; end
25
-
26
- def render
27
- __start ; instance_eval( &( self.class.module_eval { @start } ) )
28
- @output.reverse.map { |sel, attrs| puts sel.inspect ; "#{sel.join('').strip} { #{attrs} }" }.join("\n")
29
- end
30
-
31
- def select( s )
32
- selector = @selectors[-1].dup << s
33
- @selectors << selector ; @buffers << @buffer
34
- @buffer = '' ; yield ; @output << [ selector, @buffer ]
35
- @selectors.pop ; @buffer = @buffers.pop
36
- end
37
-
38
- # grid support
39
- def units ; 'px' ; end
40
- def cols( n ) "#{n}#{units}" ; end
41
- def rows( n ) "#{n}#{units}" ; end
42
-
43
- def method_missing( name, *args, &block ) ; __process( name.to_s, args, block ) ; self ; end
44
-
45
- private
46
-
47
- def __start ; @output = [] ; @selectors = [ [] ] ; @selector = [] ; @buffers = [] ; @buffer = '' ; end
48
- def __open( sel ) @selector << [ sel ] ; end
49
- def __append( sel ) ( __open( sel ) if @selector.empty? ) or ( @selector[-1] << sel ) ; end
50
- def __close( block ) s = @selector ; @selector = [] ; select( s, &block ) ; end
51
- def __combine( op ) @output[-1][0][-1] << op ; end
52
-
53
- functor( :__process, lambda { | name | ATTRS.include?( name ) }, Array, nil ) { | name, args, block | __attribute( name, *args ) }
54
- functor( :__process, lambda { | name | TAGS.include?( name ) }, [], nil ) { | sel, args, block | __open( sel ) }
55
- functor( :__process, lambda { | name | COMBINATORS.include?( name ) }, [], nil ) { | op, args, block | __combine( op ) }
56
- functor( :__process, String, [], nil ) { | sel, args, block | __append( sel ) }
57
- functor( :__process, lambda { | name | TAGS.include?( name ) }, [], Proc ) { | sel, args, block | __open( sel ) ; __close( block ) }
58
- functor( :__process, String, [], Proc ) { | sel, args, block | __append( sel ) ; __close( block ) }
59
- functor( :__attribute, String, String ) { | name, val | @buffer << "#{name}: #{val};" }
60
- functor( :__attribute, lambda { | name | COLS.include?( name ) }, Integer ) { | name, val | __attribute( name, cols( val ) ) }
61
- functor( :__attribute, lambda { | name | ROWS.include?( name ) }, Integer ) { | name, val | __attribute( name, rows( val ) ) }
62
- functor( :__attribute, String, Hash ) { | name, vals | vals.each { | key, val | __attribute( "#{name}-#{key}", val ) } }
63
-
64
- end
data/misc/meyer_reset.css DELETED
@@ -1,53 +0,0 @@
1
- /* http://meyerweb.com/eric/tools/css/reset/ */
2
- /* v1.0 | 20080212 */
3
-
4
- html, body, div, span, applet, object, iframe,
5
- h1, h2, h3, h4, h5, h6, p, blockquote, pre,
6
- a, abbr, acronym, address, big, cite, code,
7
- del, dfn, em, font, img, ins, kbd, q, s, samp,
8
- small, strike, strong, sub, sup, tt, var,
9
- b, u, i, center,
10
- dl, dt, dd, ol, ul, li,
11
- fieldset, form, label, legend,
12
- table, caption, tbody, tfoot, thead, tr, th, td {
13
- margin: 0;
14
- padding: 0;
15
- border: 0;
16
- outline: 0;
17
- font-size: 100%;
18
- vertical-align: baseline;
19
- background: transparent;
20
- }
21
- body {
22
- line-height: 1;
23
- }
24
- ol, ul {
25
- list-style: none;
26
- }
27
- blockquote, q {
28
- quotes: none;
29
- }
30
- blockquote:before, blockquote:after,
31
- q:before, q:after {
32
- content: '';
33
- content: none;
34
- }
35
-
36
- /* remember to define focus styles! */
37
- :focus {
38
- outline: 0;
39
- }
40
-
41
- /* remember to highlight inserts somehow! */
42
- ins {
43
- text-decoration: none;
44
- }
45
- del {
46
- text-decoration: line-through;
47
- }
48
-
49
- /* tables still need 'cellspacing="0"' in the markup */
50
- table {
51
- border-collapse: collapse;
52
- border-spacing: 0;
53
- }
data/site/basic.cssy DELETED
@@ -1,12 +0,0 @@
1
- body { background_color "#F8F7F1"}
2
- div.content! {
3
- width "700px"; margin "25px auto"
4
-
5
- a {
6
- color "#212F54";
7
- text_decoration :none
8
- font_weight :bold
9
- }
10
-
11
- ul.links! { list_style "url(flower.png)" }
12
- }
data/site/basic.rb DELETED
@@ -1,19 +0,0 @@
1
- @css = Cssy.new
2
- @css.process do
3
-
4
- body { background_color "#F8F7F1"}
5
- div.content! {
6
- width "700px"; margin "25px auto"
7
-
8
- a {
9
- color "#212F54";
10
- text_decoration :none
11
- font_weight :bold
12
- }
13
-
14
- ul.links! { list_style "url(flower.png)" }
15
- }
16
-
17
- end
18
-
19
- @css.to_s
data/site/cssy_title.jpg DELETED
Binary file
data/site/flower.png DELETED
Binary file
data/site/index.mab DELETED
@@ -1,22 +0,0 @@
1
- require 'syntax/convertors/html'
2
- convertor = Syntax::Convertors::HTML.for_syntax "ruby"
3
-
4
- html do
5
- head do
6
- title "Cassandra: A CSS generator with a pure-Ruby syntax"
7
- link :rel => 'stylesheet', :type => 'text/css', :href => "basic.css"
8
- link :rel => 'stylesheet', :type => 'text/css', :href => "ruby.css"
9
- end
10
- body do
11
- div.content! do
12
- img.logo! :src => "cssy_title.jpg"
13
- div.ruby.example! do
14
- convertor.convert( File.read( "site/basic.rb" ) ).to_s
15
- end
16
- ul.links! do
17
- li { a "RDocs", :href => "/rdoc" }
18
- li { a "Developer", :href => "http://www.automatthew.com" }
19
- end
20
- end
21
- end
22
- end
data/site/ruby.cssy DELETED
@@ -1,15 +0,0 @@
1
- div.ruby {
2
- margin "30px 57px"
3
- padding_left "20px"
4
- border_left "3px solid #e8e7e1"
5
-
6
- comment { color "#5A525F"; font_style :italic }
7
- keyword { color "#794938" }
8
- attribute { color "#234A97" }
9
- constant { color "#691C97"; font_weight :bold }
10
- method { color "#BF4F24" }
11
- symbol { color "#811F24" }
12
- string { color "#0B6125" }
13
- ident { color "#080808" }
14
- punct { color "#080808" }
15
- }
data/test/basics.rb DELETED
@@ -1,107 +0,0 @@
1
- here = File.dirname(__FILE__)
2
- require "#{here}/helper"
3
-
4
- describe "Cassandra" do
5
-
6
- it "can nest blocks" do
7
- proc = lambda do
8
- div do
9
- form { width "35px" }
10
- ul do
11
- li { background :red }
12
- end
13
- end
14
- end
15
-
16
- data = [
17
- ["div", []],
18
- ["div form", ["width: 35px;"]],
19
- ["div ul", []],
20
- ["div ul li", ["background: red;"]]
21
- ]
22
- Cssy.process(&proc).data.should == data
23
- end
24
-
25
- it "can chain blocks" do
26
- proc = lambda do
27
- p.smurf { color :blue }
28
- p.gnome.hat { color :red }
29
- end
30
-
31
- data = [
32
- ["p.smurf", [ "color: blue;"]],
33
- ["p.gnome.hat", ["color: red;"]]
34
- ]
35
- Cssy.process(&proc).data.should == data
36
- end
37
-
38
- it "can nest and chain" do
39
- proc = lambda do
40
- div do
41
- span.ugly { font_family "Arial" }
42
- end
43
- end
44
-
45
- data = [
46
- ["div", []],
47
- ["div span.ugly", ["font-family: Arial;"]]
48
- ]
49
- Cssy.process(&proc).data.should == data
50
- end
51
-
52
- it "can chain and nest" do
53
- proc = lambda do
54
- ul.monkey do
55
- li { list_style :none }
56
- end
57
- end
58
-
59
- data = [
60
- ["ul.monkey", []],
61
- ["ul.monkey li", ["list-style: none;"]]
62
- ]
63
- Cssy.process(&proc).data.should == data
64
- end
65
-
66
- it "can chain and nest and chain and ..." do
67
- proc = lambda do
68
- div do
69
- div.milk!.toast do
70
- p.jam { margin :auto }
71
- hr { background :green }
72
- end
73
-
74
- p { border :none }
75
- end
76
- end
77
-
78
- data = [
79
- ["div", []],
80
- ["div div#milk.toast", []],
81
- ["div div#milk.toast p.jam", ["margin: auto;"]],
82
- ["div div#milk.toast hr", ["background: green;"]],
83
- ["div p", ["border: none;"]]
84
- ]
85
- Cssy.process(&proc).data.should == data
86
- end
87
-
88
-
89
- it "processes strings" do
90
- fiddle = [
91
- ["div", ["background: red;", "width: 9934px;"]],
92
- ["div ul li", ["color: green;"]],
93
- ["div p.ugly.truly", ["color: aqua;"]],
94
- ["div .smurf.house", ["height: 256px;"]],
95
- ["div #menu", ["padding: 10px;"]],
96
- [".gargamel", ["margin: 0px;"]],
97
- [".outer.middle.inner", ["top: 34px;"]]
98
- ]
99
- c = Cssy.new
100
- c.process(File.read( "#{here}/fiddle.cssy"))
101
- c.data.should == fiddle
102
- c.to_s.should == File.read( "#{here}/fiddle.css")
103
- end
104
-
105
-
106
-
107
- end