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.
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