class CssBuilder
Public Class Methods
new()
click to toggle source
# File lib/css_builder.rb, line 3 def initialize @css = '' end
Public Instance Methods
class!(*args, &block)
click to toggle source
# File lib/css_builder.rb, line 23 def class!(*args, &block) _start_tag(_class(args[0]), *args[1..-1], &block) @css end
comment!(comment)
click to toggle source
# File lib/css_builder.rb, line 11 def comment!(comment) css! "/* #{comment} */" _newline _newline @css end
id!(*args, &block)
click to toggle source
# File lib/css_builder.rb, line 18 def id!(*args, &block) _start_tag("##{args[0]}", *args[1..-1], &block) @css end
method_missing(m, *args, &block)
click to toggle source
the magic
# File lib/css_builder.rb, line 60 def method_missing(m, *args, &block) if block _start_tag(m, *args, &block) else _indent css! _dasherize m css! " : #{args.first};" _newline end @css end
mixin!(name, *args, &block)
click to toggle source
# File lib/css_builder.rb, line 40 def mixin!(name, *args, &block) css! _class(name) _args_param_values(args) if block _open _newline self.instance_eval(&block) _close _newline else css! ";" end _newline @css end
value!()
click to toggle source
# File lib/css_builder.rb, line 7 def value! @css end
variable!(name, value=nil)
click to toggle source
enventaully move all LESS specific stuff to another file
# File lib/css_builder.rb, line 30 def variable!(name, value=nil) if value css! "@#{_dasherize name} : #{value};" _newline else return "@#{_dasherize name}" end @css end
Private Instance Methods
_args_hash_values(hash)
click to toggle source
# File lib/css_builder.rb, line 132 def _args_hash_values(hash) if hash.has_key?(:selector) css! hash.delete(:selector) end css! _dasherize hash.delete(:tag) if hash.has_key?(:tag) css! "##{hash.delete(:id)}" if hash.has_key?(:id) css! _class(hash.delete(:class)) if hash.has_key?(:class) hash.each do |k,v| css! ":#{_dasherize k}(#{v})" end end
_args_param_values(args)
click to toggle source
enventaully move all LESS specific stuff to another file
# File lib/css_builder.rb, line 146 def _args_param_values(args) return if args.empty? css! " (" len = args.length args.each_with_index do |v, idx| if v.is_a?(Array) case v.length when 0 when 1 css! "@#{_dasherize v[0]}" else css! "@#{_dasherize v[0]}: #{v[1]}" end else css! v end css! ", " if idx < len - 1 end css! ")" end
_args_tag_values(args)
click to toggle source
# File lib/css_builder.rb, line 119 def _args_tag_values(args) args.each do |arg| case arg when ::Array _args_tag_values(arg) css! " " when ::Hash _args_hash_values(arg) else end end end
_class(v)
click to toggle source
# File lib/css_builder.rb, line 111 def _class(v) ".#{v.strip.gsub(/\s+/, '.')}" end
_close()
click to toggle source
# File lib/css_builder.rb, line 99 def _close css! "}" end
_dasherize(v)
click to toggle source
# File lib/css_builder.rb, line 115 def _dasherize(v) v.to_s.gsub(/_/, '-') end
_indent()
click to toggle source
# File lib/css_builder.rb, line 107 def _indent css! " " end
_newline()
click to toggle source
# File lib/css_builder.rb, line 95 def _newline css! "\n" end
_open()
click to toggle source
# File lib/css_builder.rb, line 103 def _open css! " {" end
_start_tag(value, *args, &block)
click to toggle source
# File lib/css_builder.rb, line 76 def _start_tag(value, *args, &block) css! _dasherize(value) _args_tag_values(args) _open _newline self.instance_eval(&block) _close _newline _newline end
css!(val)
click to toggle source
# File lib/css_builder.rb, line 91 def css!(val) @css << val end