Class: BBMB::Html::State::Global

Inherits:
SBSM::State
  • Object
show all
Defined in:
lib/bbmb/html/state/global.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.mandatory(*keys) ⇒ Object



12
13
14
15
16
# File 'lib/bbmb/html/state/global.rb', line 12

def mandatory(*keys)
  define_method(:_mandatory) { keys }
  define_method(:mandatory) { _mandatory }
  define_method(:mandatory?) { |key| mandatory.include?(key) }
end

Instance Method Details

#direct_argument_keysObject



30
31
# File 'lib/bbmb/html/state/global.rb', line 30

def direct_argument_keys
end

#direct_argumentsObject



22
23
24
25
26
27
28
29
# File 'lib/bbmb/html/state/global.rb', line 22

def direct_arguments
  if(keys = direct_argument_keys)
    keys.inject({}) { |memo, key|
      memo.store(key, @session.user_input(key))
      memo
    }
  end
end

#direct_request?(event) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/bbmb/html/state/global.rb', line 32

def direct_request?(event)
  requested_event(event) == direct_event
end

#logoutObject



18
19
20
21
# File 'lib/bbmb/html/state/global.rb', line 18

def logout
  @session.logout
  State::.new(@session, nil)
end

#requested_event(event) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/bbmb/html/state/global.rb', line 35

def requested_event(event)
  if(args = direct_arguments)
    [ event, args ]
  else
    event
  end
end

#trigger(event) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/bbmb/html/state/global.rb', line 42

def trigger(event)
  if(direct_request?(event))
    self
  else
    super
  end
end

#user_input(*args) ⇒ Object



49
50
51
52
53
54
55
56
57
# File 'lib/bbmb/html/state/global.rb', line 49

def user_input(*args)
  data = super
  data.each { |key, val|
    if(val.is_a?(String))
      data.store(key, val.empty? ? nil : u(val))
    end
  }
  data
end