Class: Glimmer::DSL::Tk::BindExpression

Inherits:
StaticExpression
  • Object
show all
Defined in:
lib/glimmer/dsl/tk/bind_expression.rb

Overview

Responsible for setting up the return value of the bind keyword (command symbol) as a ModelBinding. It is then used by another command handler like DataBindingCommandHandler for text and other attributes

Instance Method Summary collapse

Instance Method Details

#can_interpret?(parent, keyword, *args, &block) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/glimmer/dsl/tk/bind_expression.rb', line 32

def can_interpret?(parent, keyword, *args, &block)
  (
    keyword == 'bind' and
      (
        (
          (args.size == 2) and
            textual?(args[1])
        ) ||
          (
            (args.size == 3) and
              textual?(args[1]) and
              (args[2].is_a?(Hash))
          )
      )
  )
end

#interpret(parent, keyword, *args, &block) ⇒ Object



49
50
51
52
53
# File 'lib/glimmer/dsl/tk/bind_expression.rb', line 49

def interpret(parent, keyword, *args, &block)
  binding_options = args[2] || {}
  binding_options[:on_read] = binding_options.delete(:on_read) || binding_options.delete('on_read') || block
  DataBinding::ModelBinding.new(args[0], args[1].to_s, binding_options)
end