Class: ConditionalMessages::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/conditional_messages/message.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source_text) ⇒ Message

Returns a new instance of Message.



9
10
11
# File 'lib/conditional_messages/message.rb', line 9

def initialize(source_text)
  @source_text = source_text
end

Instance Attribute Details

#source_textObject (readonly)

Returns the value of attribute source_text.



7
8
9
# File 'lib/conditional_messages/message.rb', line 7

def source_text
  @source_text
end

Instance Method Details

#apply(context_holder) ⇒ Object



35
36
37
# File 'lib/conditional_messages/message.rb', line 35

def apply(context_holder)
  AppliedMessage.new(self, context_holder)
end

#define(&definition) ⇒ Object



13
14
15
# File 'lib/conditional_messages/message.rb', line 13

def define(&definition)
  instance_eval(&definition)
end

#optional(options = {}, &condition) ⇒ Object



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

def optional(options = {}, &condition)
  rule(options.merge(required: false), &condition)
end

#required(options = {}, &condition) ⇒ Object



17
18
19
# File 'lib/conditional_messages/message.rb', line 17

def required(options = {}, &condition)
  rule(options.merge(required: true), &condition)
end

#rule(options = {}, &condition) ⇒ Object



25
26
27
28
29
# File 'lib/conditional_messages/message.rb', line 25

def rule(options = {}, &condition)
  rule = Rule.new(options, &condition)
  rules << rule
  rule
end

#rulesObject



31
32
33
# File 'lib/conditional_messages/message.rb', line 31

def rules
  @rules ||= []
end