srx 0.3.0 → 0.4.0

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