eunomia_gen 0.1.4 → 0.1.5

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: b63e83a0e37ff1a477bc1f2aaee0d53947225ea9613fbdd704bd14d096821253
4
- data.tar.gz: a8a04c5d71a66b65b7f7af3bc006ba5e3db67be451c4be5e4c3ce58c6b8d4ac7
3
+ metadata.gz: ef932c7746b729d5ca11965c6f60d51a2bda8d3ea8c3b86ec7ef4920bd3f8d6d
4
+ data.tar.gz: c237ff9ef45c99ae42bdd26d95c050f2a888f3c64e4ff58c2f5778e5979be716
5
5
  SHA512:
6
- metadata.gz: 1d6be8e5f8a620d0b70bf3b19c39208822df0f00ae3133f07812529777f89dc63b94daa5ef08248232b203d9db2830a45ace8cceaabd8bca88e55ac6eb090e7f
7
- data.tar.gz: 75d5118f33acf74142a15b67e540715b6db44152c6151b77befeff3af954a045b5ad3cf30dadbbf8d47289f659873724f0a742ec5691cdc1fdceb899081a0a05
6
+ metadata.gz: b5f1be4da9fa2c83d9da04cded7de88e60d53eafc943383c3b1b96a50cdef42d4b35328b1a9cc3d0b300158aa9c3cdac264fb8e62141f711c30725c65d9e94e6
7
+ data.tar.gz: b6ac9cfb36380bedad9982c53802b0b3dec9c6d3d9e69e2930e6cf972e8cd685679aff6ef78b1c59c7fc187626282a4d09f2962916173bbcb2dd727c93f8732d
@@ -11,7 +11,6 @@ module Eunomia
11
11
  :meta,
12
12
  :functions,
13
13
  :tags,
14
- :item_tags,
15
14
  :items,
16
15
  :selector,
17
16
  :sep
@@ -22,7 +21,6 @@ module Eunomia
22
21
  @alts = hash_field(hsh, :alts)
23
22
  @meta = meta_field(hsh)
24
23
  @tags = tags_field(hsh)
25
- @item_tags = Set.new
26
24
  @selector = Eunomia::Selector.new(field_or_nil(hsh, :rng))
27
25
  @items = items_from(hsh)
28
26
  raise "Generators must have items" if @items.empty?
@@ -31,13 +29,18 @@ module Eunomia
31
29
  def items_from(hsh)
32
30
  list_field(hsh, :items).map do |item|
33
31
  item = { segments: item } if item.is_a?(String)
34
- item_tags = item.fetch(:tags, [])
35
- item_tags = [item_tags] unless item_tags.is_a?(Enumerable)
36
- @item_tags += item_tags
37
32
  Eunomia::Item.new(@key, item, @tags)
38
33
  end
39
34
  end
40
35
 
36
+ def item_tags
37
+ @item_tags ||= begin
38
+ set = Set.new
39
+ items.each { |item| set += item.available_tags }
40
+ set
41
+ end
42
+ end
43
+
41
44
  def alt_for(key, segment)
42
45
  return segment unless key
43
46
  return segment unless alts[key]
data/lib/eunomia/item.rb CHANGED
@@ -30,6 +30,7 @@ module Eunomia
30
30
  def available_tags
31
31
  @available_tags ||= begin
32
32
  s = Set.new
33
+ s += tags
33
34
  refs = segments.filter { |seg| seg.is_a?(Eunomia::Segment::Reference) }
34
35
  unless refs.empty?
35
36
  s = refs[0].item_tags
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Eunomia
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.5"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eunomia_gen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - G Palmer