cassandra 0.2.3 → 0.4

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/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