Class: Kwartz::ElementRuleset
Overview
represents ‘#name { … }’ entry in presentation logic file
Instance Attribute Summary collapse
-
#append ⇒ Object
Returns the value of attribute append.
-
#attrs ⇒ Object
Returns the value of attribute attrs.
-
#cont ⇒ Object
Returns the value of attribute cont.
-
#elem ⇒ Object
Returns the value of attribute elem.
-
#etag ⇒ Object
Returns the value of attribute etag.
-
#logic ⇒ Object
Returns the value of attribute logic.
-
#name ⇒ Object
Returns the value of attribute name.
-
#remove ⇒ Object
Returns the value of attribute remove.
-
#stag ⇒ Object
Returns the value of attribute stag.
-
#tagname ⇒ Object
Returns the value of attribute tagname.
-
#value ⇒ Object
Returns the value of attribute value.
Instance Method Summary collapse
- #_inspect(indent = 0) ⇒ Object
- #duplicate(name) ⇒ Object
-
#initialize(name) ⇒ ElementRuleset
constructor
A new instance of ElementRuleset.
- #set_append(list, escape_flag = nil) ⇒ Object
- #set_attrs(hash, escape_flag = nil) ⇒ Object
- #set_cont(str, escape_flag = nil) ⇒ Object
- #set_elem(str, escape_flag = nil) ⇒ Object
- #set_etag(str, escape_flag = nil) ⇒ Object
- #set_logic(logic_str) ⇒ Object
- #set_remove(list) ⇒ Object
- #set_stag(str, escape_flag = nil) ⇒ Object
- #set_tagname(str) ⇒ Object
- #set_value(str, escape_flag = nil) ⇒ Object
Constructor Details
#initialize(name) ⇒ ElementRuleset
Returns a new instance of ElementRuleset.
216 217 218 |
# File 'lib/kwartz/node.rb', line 216 def initialize(name) @name = name end |
Instance Attribute Details
#append ⇒ Object
Returns the value of attribute append.
222 223 224 |
# File 'lib/kwartz/node.rb', line 222 def append @append end |
#attrs ⇒ Object
Returns the value of attribute attrs.
222 223 224 |
# File 'lib/kwartz/node.rb', line 222 def attrs @attrs end |
#cont ⇒ Object
Returns the value of attribute cont.
221 222 223 |
# File 'lib/kwartz/node.rb', line 221 def cont @cont end |
#elem ⇒ Object
Returns the value of attribute elem.
221 222 223 |
# File 'lib/kwartz/node.rb', line 221 def elem @elem end |
#etag ⇒ Object
Returns the value of attribute etag.
221 222 223 |
# File 'lib/kwartz/node.rb', line 221 def etag @etag end |
#logic ⇒ Object
Returns the value of attribute logic.
222 223 224 |
# File 'lib/kwartz/node.rb', line 222 def logic @logic end |
#name ⇒ Object
Returns the value of attribute name.
221 222 223 |
# File 'lib/kwartz/node.rb', line 221 def name @name end |
#remove ⇒ Object
Returns the value of attribute remove.
222 223 224 |
# File 'lib/kwartz/node.rb', line 222 def remove @remove end |
#stag ⇒ Object
Returns the value of attribute stag.
221 222 223 |
# File 'lib/kwartz/node.rb', line 221 def stag @stag end |
#tagname ⇒ Object
Returns the value of attribute tagname.
222 223 224 |
# File 'lib/kwartz/node.rb', line 222 def tagname @tagname end |
#value ⇒ Object
Returns the value of attribute value.
222 223 224 |
# File 'lib/kwartz/node.rb', line 222 def value @value end |
Instance Method Details
#_inspect(indent = 0) ⇒ Object
326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 |
# File 'lib/kwartz/node.rb', line 326 def _inspect(indent=0) space = ' ' * indent sb = [] sb << space << "- name: #{@name}\n" #sb << space << " value: #{@value == nil ? '' : @value}\n" sb << space << " stag: #{@stag.code}\n" unless @stag.nil? sb << space << " cont: #{@cont.code}\n" unless @cont.nil? sb << space << " etag: #{@etag.code}\n" unless @etag.nil? sb << space << " elem: #{@elem.code}\n" unless @elem.nil? # sb << space << " attrs:\n" if @attrs @attrs.keys.sort.each do |key| val = @attrs[key] sb << space << " - name: #{key}\n" sb << space << " value: #{val.code}\n" end if @attrs # sb << space << " append:\n" if @append @append.each do |expr| sb << space << " - #{expr.code}\n" end if @append # sb << space << " remove:\n" if @remove @remove.each do |name| sb << space << " - #{name}\n" end if @remove # sb << space << " tagname: #{@tagname}\n" unless @tagname.nil? # sb << space << " logic:\n" if @logic @logic.each do |stmt| sb << space << " - " << stmt._inspect() end if @logic # return sb.join end |
#duplicate(name) ⇒ Object
315 316 317 318 319 320 321 322 323 |
# File 'lib/kwartz/node.rb', line 315 def duplicate(name) ruleset = dup() ruleset.name = name ruleset.attrs = @attrs.dup() if @attrs ruleset.append = @append.dup() if @append ruleset.remove = @remove.dup() if @remove ruleset.logic = @logic.dup() if @logic return ruleset end |
#set_append(list, escape_flag = nil) ⇒ Object
259 260 261 262 263 264 265 |
# File 'lib/kwartz/node.rb', line 259 def set_append(list, escape_flag=nil) list.each do |expr_str| next if !expr_str || expr_str.empty? @append ||= [] @append << NativeExpression.new(expr_str, escape_flag) end end |
#set_attrs(hash, escape_flag = nil) ⇒ Object
250 251 252 253 254 255 256 |
# File 'lib/kwartz/node.rb', line 250 def set_attrs(hash, escape_flag=nil) hash.each do |name, expr_str| next if !expr_str || expr_str.empty? @attrs ||= {} @attrs[name] = NativeExpression.new(expr_str, escape_flag) end if hash end |
#set_cont(str, escape_flag = nil) ⇒ Object
230 231 232 |
# File 'lib/kwartz/node.rb', line 230 def set_cont(str, escape_flag=nil) @cont = NativeExpression.new(str, escape_flag) end |
#set_elem(str, escape_flag = nil) ⇒ Object
240 241 242 |
# File 'lib/kwartz/node.rb', line 240 def set_elem(str, escape_flag=nil) @elem = NativeExpression.new(str, escape_flag) end |
#set_etag(str, escape_flag = nil) ⇒ Object
235 236 237 |
# File 'lib/kwartz/node.rb', line 235 def set_etag(str, escape_flag=nil) @etag = NativeExpression.new(str, escape_flag) end |
#set_logic(logic_str) ⇒ Object
278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 |
# File 'lib/kwartz/node.rb', line 278 def set_logic(logic_str) return unless logic_str stmt_list = [] logic_str.each_line do |line| if line =~ /^\s*_(stag|cont|etag|elem)(?:\(\))?;?\s*(?:\#.*)?$/ kind = $1 stmt_list << ExpandStatement.new(kind.intern, @name) elsif line =~ /^\s*(_(element|content)([()'"\w\s]*));?\s*(?:\#.*)?$/ str, kind, arg = $1, $2, $3 arg.strip! if arg =~ /\A\((.*)\)\z/ then arg = $1 end if arg.empty? raise parse_error("'#{str}': element name required.", nil) end case arg when /\A"(.*)"\z/ ; name = $1 when /\A'(.*)'\z/ ; name = $1 when /\A(\w+)\z/ ; name = $1 else raise parse_error("'#{str}': invalid pattern.", nil) end unless name =~ /\A\w+\z/ raise parse_error("'#{name}': invalid #{kind} name.", nil) end stmt_list << ExpandStatement.new(kind.intern, name) #elsif line =~ /^\s*print(?:\s+(\S+)|\((.+)\))\s*;?\s*(?:\#.*)?$/ elsif line =~ /^\s*print(?:\s+(.*?)|\((.+)\))\s*;?\s*$/ arg = $1 || $2 stmt_list << PrintStatement.new([NativeExpression.new(arg)]) else stmt_list << NativeStatement.new(line.chomp, nil) end end @logic = stmt_list end |
#set_remove(list) ⇒ Object
268 269 270 |
# File 'lib/kwartz/node.rb', line 268 def set_remove(list) @remove = list if list end |
#set_stag(str, escape_flag = nil) ⇒ Object
225 226 227 |
# File 'lib/kwartz/node.rb', line 225 def set_stag(str, escape_flag=nil) @stag = NativeExpression.new(str, escape_flag) end |
#set_tagname(str) ⇒ Object
273 274 275 |
# File 'lib/kwartz/node.rb', line 273 def set_tagname(str) @tagname = str if str end |
#set_value(str, escape_flag = nil) ⇒ Object
245 246 247 |
# File 'lib/kwartz/node.rb', line 245 def set_value(str, escape_flag=nil) set_cont(str, escape_flag) end |