lens_protocol 0.1.1 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|