Module: Transform::Read
- Extended by:
- Transform
- Defined in:
- lib/transform/read.rb
Class Method Summary
collapse
Methods included from Transform
assure_format, assure_mode, assure_transformer, format, format?, format_accessor?, get_format, get_transformer, implemented?, intermediate?, mode?, subject_const, transform_const?, transformer, transformer?, transformer_const?
Class Method Details
.call(raw_data, format_name, cls) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/transform/read.rb', line 13
def self.call(raw_data, format_name, cls)
if format_name.instance_of?(Class) && cls.instance_of?(Symbol)
cls, format_name = format_name, cls
end
logger.trace { "Reading (Format Name: #{format_name.inspect})" }
logger.trace(tags: [:data, :raw_data]) { raw_data.pretty_inspect }
format = format(cls, format_name)
assure_mode(format, mode)
raw_data = format.read raw_data
transformed = instance(raw_data, cls)
logger.info { "Read (Format Name: #{format_name.inspect})" }
logger.debug(tags: [:data, :transformed]) { transformed.pretty_inspect }
transformed
end
|
.instance(raw_data, cls) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/transform/read.rb', line 34
def self.instance(raw_data, cls)
logger.trace { "Transforming raw data to instance" }
logger.trace(tags: [:data, :raw_data]) { raw_data.pretty_inspect }
transformer = transformer(cls)
assure_mode(transformer, intermediate)
method = transformer.method(:instance)
instance = nil
case method.parameters.length
when 1
instance = transformer.instance(raw_data)
when 2
instance = transformer.instance(raw_data, cls)
end
logger.debug { "Transformed raw data to instance" }
logger.debug(tags: [:data, :instance]) { instance.pretty_inspect }
instance
end
|
9
10
11
|
# File 'lib/transform/read.rb', line 9
def self.intermediate
:instance
end
|
.logger ⇒ Object
57
58
59
|
# File 'lib/transform/read.rb', line 57
def self.logger
@logger ||= Log.get(self)
end
|
.mode ⇒ Object
5
6
7
|
# File 'lib/transform/read.rb', line 5
def self.mode
:read
end
|