Class: Sheetah::Messaging::Messenger

Inherits:
Object
  • Object
show all
Defined in:
lib/sheetah/messaging/messenger.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scope: SCOPES::SHEET, scope_data: nil, validate_messages: Messaging.config.validate_messages) ⇒ Messenger

Returns a new instance of Messenger.



8
9
10
11
12
13
14
15
16
17
# File 'lib/sheetah/messaging/messenger.rb', line 8

def initialize(
  scope: SCOPES::SHEET,
  scope_data: nil,
  validate_messages: Messaging.config.validate_messages
)
  @scope = scope.freeze
  @scope_data = scope_data.freeze
  @messages = []
  @validate_messages = validate_messages
end

Instance Attribute Details

#messagesObject (readonly)

Returns the value of attribute messages.



19
20
21
# File 'lib/sheetah/messaging/messenger.rb', line 19

def messages
  @messages
end

#scopeObject (readonly)

Returns the value of attribute scope.



19
20
21
# File 'lib/sheetah/messaging/messenger.rb', line 19

def scope
  @scope
end

#scope_dataObject (readonly)

Returns the value of attribute scope_data.



19
20
21
# File 'lib/sheetah/messaging/messenger.rb', line 19

def scope_data
  @scope_data
end

#validate_messagesObject (readonly)

Returns the value of attribute validate_messages.



19
20
21
# File 'lib/sheetah/messaging/messenger.rb', line 19

def validate_messages
  @validate_messages
end

Instance Method Details

#==(other) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/sheetah/messaging/messenger.rb', line 21

def ==(other)
  other.is_a?(self.class) &&
    scope == other.scope &&
    scope_data == other.scope_data &&
    messages == other.messages &&
    validate_messages == other.validate_messages
end

#dupObject



29
30
31
32
33
34
35
# File 'lib/sheetah/messaging/messenger.rb', line 29

def dup
  self.class.new(
    scope: @scope,
    scope_data: @scope_data,
    validate_messages: @validate_messages
  )
end

#error(message) ⇒ Object



92
93
94
# File 'lib/sheetah/messaging/messenger.rb', line 92

def error(message)
  add(message, severity: SEVERITIES::ERROR)
end

#scope_colObject



84
85
86
# File 'lib/sheetah/messaging/messenger.rb', line 84

def scope_col(...)
  dup.scope_col!(...)
end

#scope_col!(col, &block) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/sheetah/messaging/messenger.rb', line 66

def scope_col!(col, &block)
  scope = case @scope
          when SCOPES::ROW, SCOPES::CELL
            SCOPES::CELL
          else
            SCOPES::COL
          end

  scope_data = @scope_data.dup || {}
  scope_data[:col] = col

  scoping!(scope, scope_data, &block)
end

#scope_rowObject



80
81
82
# File 'lib/sheetah/messaging/messenger.rb', line 80

def scope_row(...)
  dup.scope_row!(...)
end

#scope_row!(row, &block) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/sheetah/messaging/messenger.rb', line 52

def scope_row!(row, &block)
  scope = case @scope
          when SCOPES::COL, SCOPES::CELL
            SCOPES::CELL
          else
            SCOPES::ROW
          end

  scope_data = @scope_data.dup || {}
  scope_data[:row] = row

  scoping!(scope, scope_data, &block)
end

#scopingObject



48
49
50
# File 'lib/sheetah/messaging/messenger.rb', line 48

def scoping(...)
  dup.scoping!(...)
end

#scoping!(scope, scope_data, &block) ⇒ Object



37
38
39
40
41
42
43
44
45
46
# File 'lib/sheetah/messaging/messenger.rb', line 37

def scoping!(scope, scope_data, &block)
  scope      = scope.freeze
  scope_data = scope_data.freeze

  if block
    replace_scoping_block(scope, scope_data, &block)
  else
    replace_scoping_noblock(scope, scope_data)
  end
end

#warn(message) ⇒ Object



88
89
90
# File 'lib/sheetah/messaging/messenger.rb', line 88

def warn(message)
  add(message, severity: SEVERITIES::WARN)
end