Class: RBlade::CompilesStatements::CompilesComponentHelpers
- Inherits:
-
Object
- Object
- RBlade::CompilesStatements::CompilesComponentHelpers
- Defined in:
- lib/rblade/compiler/statements/compiles_component_helpers.rb
Constant Summary collapse
- RUBY_RESERVED_KEYWORDS =
%w[__FILE__ __LINE__ alias and begin BEGIN break case class def defined? do else elsif end END ensure false for if in module next nil not or redo rescue retry return self super then true undef unless until when while yield].freeze
Instance Method Summary collapse
Instance Method Details
#compile_props(args, tokens) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/rblade/compiler/statements/compiles_component_helpers.rb', line 16 def compile_props(args, tokens) props = extract_props args props.map do |key, value| compiled_code = if RBlade.direct_component_rendering "if !attributes.has?(:'#{RBlade.escape_quotes(key)}') && content_for?(:'#{RBlade.escape_quotes(key)}');attributes[:'#{RBlade.escape_quotes(key)}']=content_for :'#{RBlade.escape_quotes(key)}';end;" else +"" end compiled_code << if value == "required" "if !attributes.has?(:'#{RBlade.escape_quotes(key)}');raise \"Props statement: #{key} is not defined\";end;" else "attributes.default(:'#{RBlade.escape_quotes(key)}', #{value});" end if is_valid_variable_name key compiled_code << if variable_is_slot key, tokens "#{key}=RBlade::SlotManager.wrap(attributes.delete :'#{RBlade.escape_quotes(key)}');" else "#{key}=attributes.delete :'#{RBlade.escape_quotes(key)}';" end end compiled_code end.join end |
#compile_should_render(args) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/rblade/compiler/statements/compiles_component_helpers.rb', line 8 def compile_should_render(args) if args&.count != 1 raise RBladeTemplateError.new "Should render statement: wrong number of arguments (given #{args&.count || 0}, expecting 1)" end "unless(#{args[0]});return'';end;" end |