lens_protocol 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.envrc +2 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +16 -4
- data/.ruby-version +1 -1
- data/.travis.yml +1 -3
- data/Gemfile.lock +47 -34
- data/README.md +2 -2
- data/examples/oma/R1000_1.oma +213 -213
- data/examples/oma/R1000_2.oma +213 -213
- data/examples/oma/STHKFMT.oma +358 -0
- data/lens_protocol.gemspec +2 -2
- data/lib/lens_protocol/errors.rb +3 -0
- data/lib/lens_protocol/oma/builder.rb +18 -0
- data/lib/lens_protocol/oma/formatter.rb +10 -2
- data/lib/lens_protocol/oma/line.rb +16 -0
- data/lib/lens_protocol/oma/message.rb +5 -59
- data/lib/lens_protocol/oma/parser.rb +17 -9
- data/lib/lens_protocol/oma/record.rb +0 -1
- data/lib/lens_protocol/oma/types/array.rb +21 -0
- data/lib/lens_protocol/oma/types/chiral.rb +31 -0
- data/lib/lens_protocol/oma/types/ignored.rb +15 -0
- data/lib/lens_protocol/oma/types/matrix.rb +17 -0
- data/lib/lens_protocol/oma/types/single.rb +21 -0
- data/lib/lens_protocol/oma/types/trcfmt.rb +77 -0
- data/lib/lens_protocol/oma/types/type.rb +74 -0
- data/lib/lens_protocol/oma/types/values/tracing_dataset.rb +42 -0
- data/lib/lens_protocol/oma/types.rb +81 -79
- data/lib/lens_protocol/oma.rb +1 -1
- data/lib/lens_protocol/version.rb +1 -1
- data/lib/lens_protocol.rb +10 -6
- data/shell.nix +9 -0
- metadata +27 -21
- data/lib/lens_protocol/oma/type/base.rb +0 -97
- data/lib/lens_protocol/oma/type/integer.rb +0 -15
- data/lib/lens_protocol/oma/type/numeric.rb +0 -24
- data/lib/lens_protocol/oma/type/r.rb +0 -17
- data/lib/lens_protocol/oma/type/text.rb +0 -8
- data/lib/lens_protocol/oma/type/trcfmt.rb +0 -30
@@ -1,24 +0,0 @@
|
|
1
|
-
module LensProtocol
|
2
|
-
module OMA
|
3
|
-
module Type
|
4
|
-
class Numeric < Base
|
5
|
-
def initialize decimals: nil, **opts
|
6
|
-
super **opts
|
7
|
-
@decimals = decimals
|
8
|
-
end
|
9
|
-
|
10
|
-
def parse_value value
|
11
|
-
Float(value) rescue nil
|
12
|
-
end
|
13
|
-
|
14
|
-
def format_value value
|
15
|
-
if value && @decimals
|
16
|
-
"%.#{@decimals}f" % value
|
17
|
-
else
|
18
|
-
value
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module LensProtocol
|
2
|
-
module OMA
|
3
|
-
module Type
|
4
|
-
class R < Base
|
5
|
-
def parse line, message
|
6
|
-
label, values = label_and_values line
|
7
|
-
side = message.context(:last_trcfmt_side) or raise ParsingError.new('Could not found a corresponding TRCFMT record', line)
|
8
|
-
message.add_record_side_values(label, side, values.map(&:to_i))
|
9
|
-
end
|
10
|
-
|
11
|
-
def format _record, _message
|
12
|
-
[] # Formatted in Type::Trcfmt
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module LensProtocol
|
2
|
-
module OMA
|
3
|
-
module Type
|
4
|
-
class Trcfmt < Base
|
5
|
-
def parse line, message
|
6
|
-
label, values = label_and_values line
|
7
|
-
side = side_position_from_trcfmt values
|
8
|
-
message.add_record_side_values(label, side, values).set_context(:last_trcfmt_side, side)
|
9
|
-
end
|
10
|
-
|
11
|
-
def format record, message
|
12
|
-
Array(record.value).select { |v| v&.any? }.flat_map do |values|
|
13
|
-
trcfmt_line = format_line(record.label, values)
|
14
|
-
|
15
|
-
side = side_position_from_trcfmt values
|
16
|
-
r_lines = message.value_of('R', [[], []])[side].each_slice(10).map do |group|
|
17
|
-
format_line('R', group)
|
18
|
-
end
|
19
|
-
|
20
|
-
[trcfmt_line, *r_lines]
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def side_position_from_trcfmt values
|
25
|
-
values[3] == 'R' ? 0 : 1
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|