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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.envrc +2 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +16 -4
  5. data/.ruby-version +1 -1
  6. data/.travis.yml +1 -3
  7. data/Gemfile.lock +47 -34
  8. data/README.md +2 -2
  9. data/examples/oma/R1000_1.oma +213 -213
  10. data/examples/oma/R1000_2.oma +213 -213
  11. data/examples/oma/STHKFMT.oma +358 -0
  12. data/lens_protocol.gemspec +2 -2
  13. data/lib/lens_protocol/errors.rb +3 -0
  14. data/lib/lens_protocol/oma/builder.rb +18 -0
  15. data/lib/lens_protocol/oma/formatter.rb +10 -2
  16. data/lib/lens_protocol/oma/line.rb +16 -0
  17. data/lib/lens_protocol/oma/message.rb +5 -59
  18. data/lib/lens_protocol/oma/parser.rb +17 -9
  19. data/lib/lens_protocol/oma/record.rb +0 -1
  20. data/lib/lens_protocol/oma/types/array.rb +21 -0
  21. data/lib/lens_protocol/oma/types/chiral.rb +31 -0
  22. data/lib/lens_protocol/oma/types/ignored.rb +15 -0
  23. data/lib/lens_protocol/oma/types/matrix.rb +17 -0
  24. data/lib/lens_protocol/oma/types/single.rb +21 -0
  25. data/lib/lens_protocol/oma/types/trcfmt.rb +77 -0
  26. data/lib/lens_protocol/oma/types/type.rb +74 -0
  27. data/lib/lens_protocol/oma/types/values/tracing_dataset.rb +42 -0
  28. data/lib/lens_protocol/oma/types.rb +81 -79
  29. data/lib/lens_protocol/oma.rb +1 -1
  30. data/lib/lens_protocol/version.rb +1 -1
  31. data/lib/lens_protocol.rb +10 -6
  32. data/shell.nix +9 -0
  33. metadata +27 -21
  34. data/lib/lens_protocol/oma/type/base.rb +0 -97
  35. data/lib/lens_protocol/oma/type/integer.rb +0 -15
  36. data/lib/lens_protocol/oma/type/numeric.rb +0 -24
  37. data/lib/lens_protocol/oma/type/r.rb +0 -17
  38. data/lib/lens_protocol/oma/type/text.rb +0 -8
  39. 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,8 +0,0 @@
1
- module LensProtocol
2
- module OMA
3
- module Type
4
- class Text < Base
5
- end
6
- end
7
- end
8
- 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