Module: Glimmer

Constant Summary collapse

@@parent_stack =
[]
@@logger =
Logger.new(STDOUT).tap {|logger| logger.level = Logger::WARN}

Class Method Summary collapse

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_symbol, *args, &block) ⇒ Object

added for convenience



52
53
54
# File 'lib/glimmer.rb', line 52

def method_missing(method_symbol, *args, &block)
  Glimmer.method_missing(method_symbol, *args, &block)
end

Class Method Details

.add_contents(parent, &block) ⇒ Object



40
41
42
43
44
# File 'lib/glimmer.rb', line 40

def self.add_contents(parent, &block)
  @@parent_stack.push(parent) if parent.is_a?(Parent)
  @@parent_stack.last.process_block(block) if block and @@parent_stack.last
  @@parent_stack.pop if parent.is_a?(Parent)
end

.dsl(dsl) ⇒ Object



46
47
48
# File 'lib/glimmer.rb', line 46

def self.dsl(dsl)
  CommandHandlerChainFactory.select_dsl(dsl)
end

.extended(klass) ⇒ Object



21
22
23
# File 'lib/glimmer.rb', line 21

def self.extended(klass)
  klass.include SwtPackages
end

.included(klass) ⇒ Object



18
19
20
# File 'lib/glimmer.rb', line 18

def self.included(klass)
  klass.include SwtPackages
end

.loggerObject



28
29
30
# File 'lib/glimmer.rb', line 28

def self.logger
  @@logger
end

.method_missing(method_symbol, *args, &block) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/glimmer.rb', line 32

def self.method_missing(method_symbol, *args, &block)
  Glimmer.logger.debug "method: " + method_symbol.to_s + " and args: " + args.to_s
  command_handler_chain = CommandHandlerChainFactory.chain
  return_value = command_handler_chain.handle(@@parent_stack.last, method_symbol, *args, &block)
  add_contents(return_value, &block)
  return return_value
end

Instance Method Details

#add_contents(parent, &block) ⇒ Object



56
57
58
# File 'lib/glimmer.rb', line 56

def add_contents(parent, &block)
  Glimmer.add_contents(parent, &block)
end

#dsl(dsl) ⇒ Object



60
61
62
# File 'lib/glimmer.rb', line 60

def dsl(dsl)
  CommandHandlerChainFactory.select_dsl(dsl)
end