Module: Phlex::SGML::Attributes
- Defined in:
- lib/phlex/opal_compat.rb
Class Method Summary collapse
- .__homura_generate_attributes__ ⇒ Object
- .__homura_generate_nested_attributes__ ⇒ Object
- .generate_attributes(attributes, buffer = Phlex::OpalBuffer.new) ⇒ Object
- .generate_nested_attributes(attributes, base_name, buffer = Phlex::OpalBuffer.new) ⇒ Object
- .generate_nested_tokens(tokens, sep = " ", gsub_from = nil, gsub_to = "") ⇒ Object
- .generate_styles(styles) ⇒ Object
Class Method Details
.__homura_generate_attributes__ ⇒ Object
317 |
# File 'lib/phlex/opal_compat.rb', line 317 alias __homura_generate_attributes__ generate_attributes |
.__homura_generate_nested_attributes__ ⇒ Object
318 |
# File 'lib/phlex/opal_compat.rb', line 318 alias __homura_generate_nested_attributes__ generate_nested_attributes |
.generate_attributes(attributes, buffer = Phlex::OpalBuffer.new) ⇒ Object
320 321 322 |
# File 'lib/phlex/opal_compat.rb', line 320 def generate_attributes(attributes, buffer = Phlex::OpalBuffer.new) __homura_generate_attributes__(attributes, buffer) end |
.generate_nested_attributes(attributes, base_name, buffer = Phlex::OpalBuffer.new) ⇒ Object
324 325 326 |
# File 'lib/phlex/opal_compat.rb', line 324 def generate_nested_attributes(attributes, base_name, buffer = Phlex::OpalBuffer.new) __homura_generate_nested_attributes__(attributes, base_name, buffer) end |
.generate_nested_tokens(tokens, sep = " ", gsub_from = nil, gsub_to = "") ⇒ Object
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 362 363 364 365 366 367 |
# File 'lib/phlex/opal_compat.rb', line 328 def generate_nested_tokens(tokens, sep = " ", gsub_from = nil, gsub_to = "") buffer = Phlex::OpalBuffer.new i, length = 0, tokens.length while i < length token = tokens[i] case token when String token = token.gsub(gsub_from, gsub_to) if gsub_from i > 0 ? buffer << sep << token : buffer << token when Symbol value = token.name.tr("_", "-") i > 0 ? buffer << sep << value : buffer << value when Integer, Float, Phlex::SGML::SafeObject i > 0 ? buffer << sep << token.to_s : buffer << token.to_s when Array if token.length > 0 && (value = generate_nested_tokens(token, sep, gsub_from, gsub_to)) i > 0 ? buffer << sep << value : buffer << value end when Set if token.length > 0 && (value = generate_nested_tokens(token.to_a, sep, gsub_from, gsub_to)) i > 0 ? buffer << sep << value : buffer << value end when nil nil else raise Phlex::ArgumentError.new("Invalid token type: #{token.class}.") end i += 1 end return if buffer.empty? buffer.gsub("\"", """) end |
.generate_styles(styles) ⇒ Object
369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 |
# File 'lib/phlex/opal_compat.rb', line 369 def generate_styles(styles) case styles when Array, Set styles .filter_map do |s| case s when String s == "" || s.end_with?(";") ? s : "#{s};" when Phlex::SGML::SafeObject value = s.to_s value.end_with?(";") ? value : "#{value};" when Hash next generate_styles(s) when nil next nil else raise Phlex::ArgumentError.new("Invalid style: #{s.inspect}.") end end .join(" ") when Hash buffer = Phlex::OpalBuffer.new i = 0 styles.each do |k, v| prop = case k when String k when Symbol k.name.tr("_", "-") else raise Phlex::ArgumentError.new("Style keys should be Strings or Symbols.") end value = case v when String v when Symbol v.name.tr("_", "-") when Integer, Float, Phlex::SGML::SafeObject v.to_s when nil nil else raise Phlex::ArgumentError.new("Invalid style value: #{v.inspect}") end if value i == 0 ? buffer << prop << ": " << value << ";" : buffer << " " << prop << ": " << value << ";" end i += 1 end buffer end end |