class Glimmer::DSL::StaticExpression

Represents a StaticExpression for expressions where the keyword does not vary dynamically. These static keywords are then predefined as methods in Glimmer instead of needing method_missing

StaticExpression subclasses may optionally implement ‘#can_interpret?` (not needed if it only checks for keyword)

StaticExpression subclasses must define ‘#interpret`.

The direct parent namespace of a StaticExpression subclass must match the DSL name (case-insensitive) (e.g. Glimmer::DSL::SWT::WidgetExpression has a DSL of :swt)

Public Class Methods

capital(value)
Alias for: capitalized
capital?()
Alias for: capitalized?
capitalize(value)
Alias for: capitalized
capitalize?()
Alias for: capitalized?
capitalized(value) click to toggle source
# File lib/glimmer/dsl/static_expression.rb, line 75
def capitalized(value)
  @capitalized = value
  Glimmer::DSL::Engine.add_capitalized_static_expression(new) if @capitalized
end
Also aliased as: capitalize, capital
capitalized?() click to toggle source
# File lib/glimmer/dsl/static_expression.rb, line 82
def capitalized?
  @capitalized
end
Also aliased as: capitalize?, capital?
case_insensitive(value) click to toggle source
# File lib/glimmer/dsl/static_expression.rb, line 88
def case_insensitive(value)
  if value
    self.downcased(true)
    self.upcased(true)
    self.capitalized(true)
  else
    self.downcased(true)
    self.upcased(false)
    self.capitalized(false)
  end
end
case_insensitive?() click to toggle source
# File lib/glimmer/dsl/static_expression.rb, line 100
def case_insensitive?
  downcased? && upcased? && capitalized?
end
downcase(value)
Alias for: downcased
downcase?()
Alias for: downcased?
downcased(value) click to toggle source
# File lib/glimmer/dsl/static_expression.rb, line 52
def downcased(value)
  @downcased = value
  Glimmer::DSL::Engine.add_downcased_static_expression(new) if @downcased
end
Also aliased as: downcase
downcased?() click to toggle source
# File lib/glimmer/dsl/static_expression.rb, line 58
def downcased?
  # default is true when no attributes are set
  @downcased.nil? && @upcased.nil? && @capitalized.nil? ? true : @downcased
end
Also aliased as: downcase?
inherited(base) click to toggle source
Calls superclass method
# File lib/glimmer/dsl/static_expression.rb, line 43
def inherited(base)
  Glimmer::DSL::Engine.add_static_expression(base.new)
  super
end
keyword() click to toggle source
# File lib/glimmer/dsl/static_expression.rb, line 48
def keyword
  @keyword ||= name.split(/::/).last.sub(/Expression$/, '').underscore
end
upcase(value)
Alias for: upcased
upcase?()
Alias for: upcased?
upcased(value) click to toggle source
# File lib/glimmer/dsl/static_expression.rb, line 64
def upcased(value)
  @upcased = value
  Glimmer::DSL::Engine.add_upcased_static_expression(new) if @upcased
end
Also aliased as: upcase
upcased?() click to toggle source
# File lib/glimmer/dsl/static_expression.rb, line 70
def upcased?
  @upcased
end
Also aliased as: upcase?

Public Instance Methods

can_interpret?(parent, keyword, *args, &block) click to toggle source

Subclasses may optionally implement, but by default it only ensures that the keyword matches lower case static expression class name minus ‘Expression`

# File lib/glimmer/dsl/static_expression.rb, line 107
def can_interpret?(parent, keyword, *args, &block)
  result = false
  result ||= keyword.downcase == keyword if self.class.downcased?
  result ||= keyword.upcase == keyword if self.class.upcased?
  result ||= keyword.capitalize == keyword if self.class.capitalized?
  result
end