srx 0.3.0 → 0.4.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c28a49fd42454ec9968d3a0c1066af93c14ec4ebcd68fc5dccb43b24c0cf13c7
4
- data.tar.gz: 268e0beffe2d9a2a9b189b9a5ce649cc026ed066d3dc168767db9d99ccdc174d
3
+ metadata.gz: dd12a62cf9596aa2792d986d8bb7c63d2b624d15a8e3f87053fb5ac3baa36a94
4
+ data.tar.gz: 358ccbb5310e6ca626a5459130c63a14c429043c0cc2d6333e49dbef7657448a
5
5
  SHA512:
6
- metadata.gz: 6c7edc8f3fc9895e434b20551fc1dbccb82731e6500302375db3a3ffce730fe96a78163d662da637c1455449cb459abf751f616ba38e77d4594258611831b503
7
- data.tar.gz: 2e0a72a250e180ba909ac2aa4c31c0ec85bca10c4cf40979910c9fb4123e47154402b7e554dbf62a7095e623a4ac6c29188f89d6a1ee2dfce9d8a7a1c978fa12
6
+ metadata.gz: ec8d917c4ef8710f8e79bdeeb9ee88c23c3696f84689e1eec44a2559c85763a69530b99d8e2a104949d57349d7f1948f12c264a5fe341d5fe08deec350e5daf3
7
+ data.tar.gz: b3b8c1e7db078cc1d8792b59b47d009bbee104af387cec6eacf060aa3e22d126710db8752de68f8b11dd328d3a88a83fe65ea871ae4f623412108517729a2897
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.4.0] - 2021-02-18
4
+
5
+ - Optimize memory usage
6
+
3
7
  ## [0.3.0] - 2021-02-16
4
8
 
5
9
  - All `Srx::Engine` methods except `#segment` are now private
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- srx (0.3.0)
4
+ srx (0.4.0)
5
5
  nokogiri (~> 1.11)
6
6
 
7
7
  GEM
data/lib/srx/data.rb CHANGED
@@ -43,23 +43,23 @@ module Srx
43
43
  end
44
44
 
45
45
  def segment_subflows?
46
- header['segmentsubflows'] == 'yes'
46
+ @segment_subflows ||= header['segmentsubflows'] == 'yes'
47
47
  end
48
48
 
49
49
  def cascade?
50
- header['cascade'] == 'yes'
50
+ @cascade ||= header['cascade'] == 'yes'
51
51
  end
52
52
 
53
53
  def include_start_formatting?
54
- include_formatting?(:start)
54
+ @include_start_formatting ||= include_formatting?(:start)
55
55
  end
56
56
 
57
57
  def include_end_formatting?
58
- include_formatting?(:end)
58
+ @include_end_formatting ||= include_formatting?(:end)
59
59
  end
60
60
 
61
61
  def include_isolated_formatting?
62
- include_formatting?(:isolated)
62
+ @include_isolated_formatting ||= include_formatting?(:isolated)
63
63
  end
64
64
 
65
65
  # @return [Array<LanguageRule>]
@@ -108,7 +108,7 @@ module Srx
108
108
  class LanguageRule < XmlWrapper
109
109
  # @return [String]
110
110
  def name
111
- @xml['languagerulename']
111
+ @name ||= @xml['languagerulename']
112
112
  end
113
113
 
114
114
  # @return [Array<Rule>]
@@ -155,7 +155,7 @@ module Srx
155
155
  class LanguageMap < XmlWrapper
156
156
  # @return [String]
157
157
  def language_rule_name
158
- @xml['languagerulename']
158
+ @language_rule_name ||= @xml['languagerulename']
159
159
  end
160
160
 
161
161
  # @return [Regexp]
data/lib/srx/engine.rb CHANGED
@@ -65,13 +65,13 @@ module Srx
65
65
  # position. Note that the final break will always be at the end of the
66
66
  # string and may not have an associated rule.
67
67
  def breaks_by_pos(str, rules)
68
- rules
69
- .flat_map { |rule| all_matches(str, rule) }
70
- .group_by(&:first)
71
- .transform_values { |pairs| pairs.first.last }
72
- .select { |_pos, rule| rule.break? }
73
- .sort_by(&:first)
74
- .tap { |breaks| breaks << [str.length] unless breaks&.last&.first == str.length }
68
+ grouped = rules.flat_map { |rule| all_matches(str, rule) }
69
+ .group_by(&:first)
70
+ grouped.transform_values! { |pairs| pairs.first.last }
71
+ grouped.select! { |_pos, rule| rule.break? }
72
+ result = grouped.sort_by(&:first)
73
+ result << [str.length] unless result.last&.first == str.length
74
+ result
75
75
  end
76
76
 
77
77
  # @param str [String]
data/lib/srx/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Srx
4
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: srx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Madlon-Kay
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-16 00:00:00.000000000 Z
11
+ date: 2021-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri