Class: IvyMeter::Event
- Inherits:
-
Object
show all
- Includes:
- Prop
- Defined in:
- lib/ivymeter/events/base.rb,
lib/ivymeter/events/tray.rb,
lib/ivymeter/events/piece.rb,
lib/ivymeter/events/bundle.rb,
lib/ivymeter/events/container.rb
Defined Under Namespace
Classes: BundleEvent, ContainerEvent, PieceEvent, TrayEvent
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Prop
included
Class Method Details
.from_csv(row) ⇒ Object
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/ivymeter/events/base.rb', line 39
def from_csv(row)
event = new
property_mappings.each do |attr_name, mappings|
value = row[mappings[:csv]]
next if value.nil?
event.send("#{attr_name}=", convert_value(value, mappings[:type]))
end
event
end
|
.from_json(json_data) ⇒ Object
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/ivymeter/events/base.rb', line 28
def from_json(json_data)
event = new
property_mappings.each do |attr_name, mappings|
value = json_data[mappings[:json]]
next if value.nil?
event.send("#{attr_name}=", convert_value(value, mappings[:type]))
end
event
end
|
.inherited(subclass) ⇒ Object
13
14
15
|
# File 'lib/ivymeter/events/base.rb', line 13
def inherited(subclass)
subclass.instance_variable_set(:@property_mappings, property_mappings.dup)
end
|
.prop(name, json_name, csv_name, type: nil) ⇒ Object
17
18
19
20
21
22
|
# File 'lib/ivymeter/events/base.rb', line 17
def prop(name, json_name, csv_name, type: nil)
attr_accessor name
@property_mappings ||= {}
@property_mappings[name] = { json: json_name, csv: csv_name, type: type }
end
|
.property_mappings ⇒ Object
24
25
26
|
# File 'lib/ivymeter/events/base.rb', line 24
def property_mappings
@property_mappings || {}
end
|
Instance Method Details
#actual? ⇒ Boolean
152
153
154
|
# File 'lib/ivymeter/events/base.rb', line 152
def actual?
handling_event_type == 'A'
end
|
#assumed? ⇒ Boolean
168
169
170
|
# File 'lib/ivymeter/events/base.rb', line 168
def assumed?
assumed_actual? || assumed_logical?
end
|
#assumed_actual? ⇒ Boolean
156
157
158
|
# File 'lib/ivymeter/events/base.rb', line 156
def assumed_actual?
handling_event_type == 'AA'
end
|
#assumed_logical? ⇒ Boolean
164
165
166
|
# File 'lib/ivymeter/events/base.rb', line 164
def assumed_logical?
handling_event_type == 'AL'
end
|
#clearance_cutoff_time ⇒ Object
184
185
186
|
# File 'lib/ivymeter/events/base.rb', line 184
def clearance_cutoff_time
opcode&.clearance_cutoff_time
end
|
#logical? ⇒ Boolean
160
161
162
|
# File 'lib/ivymeter/events/base.rb', line 160
def logical?
handling_event_type == 'L'
end
|
#mail_phase ⇒ Object
188
189
190
|
# File 'lib/ivymeter/events/base.rb', line 188
def mail_phase
opcode&.mail_phase
end
|
#opcode ⇒ Object
172
173
174
|
# File 'lib/ivymeter/events/base.rb', line 172
def opcode
@opcode ||= OpCode.find(scan_event_code)
end
|
#process_description ⇒ Object
192
193
194
|
# File 'lib/ivymeter/events/base.rb', line 192
def process_description
opcode&.process_description
end
|
#stop_the_clock_scan? ⇒ Boolean
176
177
178
|
# File 'lib/ivymeter/events/base.rb', line 176
def stop_the_clock_scan?
opcode&.stop_the_clock_scan?
end
|
#to_json(*_args) ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/ivymeter/events/base.rb', line 64
def to_json(*_args)
result = {}
self.class.property_mappings.each do |attr_name, mappings|
value = send(attr_name)
if value.is_a?(DateTime) && mappings[:type] == :datetime
value = value.strftime('%Y-%m-%d %H:%M:%S%z')
elsif value.is_a?(Date) && mappings[:type] == :date
value = value.strftime('%Y-%m-%d')
end
result[mappings[:json]] = value
end
result.compact.to_json
end
|
#unexpected_opcode? ⇒ Boolean
180
181
182
|
# File 'lib/ivymeter/events/base.rb', line 180
def unexpected_opcode?
opcode&.unexpected?
end
|