text-gen 0.12.2 → 0.12.3

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: fdccd9be33604c3bff808d1f2811179f4f8c41945e727273ca6b4103473c995b
4
- data.tar.gz: 1d6c60c2600e0ddd9189a3a767907e4b8614fae702b863acbc34e277c9addf56
3
+ metadata.gz: 12d84160917c876af0a100f744ce2b515ef484095ea3794e65f2152e04ac1697
4
+ data.tar.gz: 8f8b796ad33686f65b063d8295151f31e0a24ad6553a8bfd1aa0a1c2c0455edd
5
5
  SHA512:
6
- metadata.gz: 3468c4f9ec44542da51dced562f164c653eb60c5328660c3f80f259da3c280c79d340b20aab698cc21428c4337af2c1a7f9341d83c6d2fd2926163b811551ef3
7
- data.tar.gz: a041435b7b371e868846d34604b4890a659b11bc74a443fedf64ad610e169a76ea06f4da738b94377b6b357a8b9cf0b4766e50881abbb4ca72288118c7e201ec
6
+ metadata.gz: eb91a5639b2ab5fa6d976787e47929e4a07ab34f13315819266c840851aa752869f5d9f28671c0d5019d8b333eea45942c4121b60d2d3ac06c6c66779500fbef
7
+ data.tar.gz: f6ebfd6b89edf90181c1b50f5bb991397dfa4b6c33111e8a923a72d442f2f41f19167299a7b67ed9aa199a7e4217085dcc36e7f77aa5c376857a45126ab4476f
@@ -118,7 +118,10 @@ module Text
118
118
 
119
119
  def apply_result_filters(result)
120
120
  @filters.each do |filter|
121
- result = filter.result(self, result) if filter.respond_to?(:result)
121
+ next unless filter.respond_to?(:result)
122
+ next if result.filter_match?(filter.component_key)
123
+
124
+ result = filter.result(self, result)
122
125
  return unless result
123
126
  end
124
127
 
@@ -12,7 +12,7 @@ module Text
12
12
  end
13
13
 
14
14
  def component_key
15
- "function:#{type}"
15
+ "fn(#{to_s})"
16
16
  end
17
17
 
18
18
  # Shared utilities
@@ -32,6 +32,12 @@ module Text
32
32
  @type ||= @filter["type"]
33
33
  end
34
34
 
35
+ def to_s
36
+ return "#{ type }:#{ key }:#{ value }" if value
37
+ return "#{ type }:#{ key }" if key
38
+ type
39
+ end
40
+
35
41
  class << self
36
42
  def filter_name
37
43
  @filter_name ||= name.split("::").last.downcase
@@ -30,10 +30,16 @@ module Text
30
30
  case key
31
31
  when "_digit_"
32
32
  swap_digit(s)
33
+ when "_digit_without_one_"
34
+ if s == "1"
35
+ nil
36
+ else
37
+ swap_digit(s)
38
+ end
33
39
  else
34
40
  swap_any(s, key, val.to_s)
35
41
  end
36
- end
42
+ end.compact
37
43
  arr.join(" ")
38
44
  end
39
45
 
@@ -29,6 +29,17 @@ module Text
29
29
  }
30
30
  end
31
31
 
32
+ def filter?
33
+ type.start_with?("fn(")
34
+ end
35
+
36
+ def filter_match?(component_key)
37
+ return true if type == component_key
38
+ return false unless filter?
39
+
40
+ components.any? { |c| c.filter_match?(component_key) }
41
+ end
42
+
32
43
  def merge_all_meta(results)
33
44
  (results || []).each { |r| @meta = Text::Gen::Meta.merge_meta(meta, r.meta) }
34
45
  end
@@ -69,7 +80,7 @@ module Text
69
80
  text: results.map(&:text).join(sep),
70
81
  type: type,
71
82
  value: val * mul,
72
- multiplier: 1
83
+ multiplier: val.zero? ? mul : 1
73
84
  ).tap do |s|
74
85
  s.components.append(*results)
75
86
  s.merge_all_meta(results)
@@ -141,11 +141,12 @@ module Text
141
141
  results = item["segments"].map { |seg| run_segment(context, seg) }
142
142
  return if results.any?(&:nil?) || results.empty?
143
143
 
144
- Result.merge(results,
144
+ result = Result.merge(results,
145
145
  value: item["value"],
146
146
  multiplier: item["multiplier"],
147
147
  meta: item["meta"],
148
148
  type: context.current_key)
149
+ context.apply_result_filters(result)
149
150
  end
150
151
  end
151
152
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Text
4
4
  module Gen
5
- VERSION = "0.12.2"
5
+ VERSION = "0.12.3"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: text-gen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.2
4
+ version: 0.12.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - G Palmer