metanorma-taste 0.0.3 → 0.1.1
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 +4 -4
- data/Gemfile +15 -0
- data/README.adoc +27 -14
- data/data/elf/config.yaml +1 -0
- data/data/elf/logo.svg +1 -0
- data/data/enosema/config.yaml +17 -0
- data/data/enosema/copyright.adoc +26 -0
- data/data/enosema/i18n.yaml +3 -0
- data/data/enosema/logo.svg +1 -0
- data/data/icc/config.yaml +1 -0
- data/data/icc/icc-full-new.svg +1 -0
- data/data/icc/icc-full.svg +1 -0
- data/data/icc/icc-small-new.svg +1 -0
- data/data/icc/icc-small.svg +1 -0
- data/lib/metanorma/taste/base.rb +286 -61
- data/lib/metanorma/taste/base_override.rb +24 -0
- data/lib/metanorma/taste/doctype_config.rb +20 -0
- data/lib/metanorma/taste/taste_config.rb +33 -0
- data/lib/metanorma/taste/version.rb +1 -1
- data/lib/metanorma/taste_register.rb +195 -56
- data/metanorma-taste.gemspec +1 -14
- metadata +18 -188
@@ -1,102 +1,241 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "yaml"
|
4
3
|
require "singleton"
|
4
|
+
require_relative "taste/taste_config"
|
5
|
+
require_relative "taste/base"
|
5
6
|
|
6
7
|
module Metanorma
|
8
|
+
# Registry for managing and providing access to taste configurations
|
9
|
+
#
|
10
|
+
# This singleton class automatically discovers taste configurations from the data directory,
|
11
|
+
# loads them using lutaml-model, and provides a centralized registry for accessing
|
12
|
+
# taste instances and their metadata.
|
13
|
+
#
|
14
|
+
# @example Basic usage
|
15
|
+
# # Get a taste instance
|
16
|
+
# icc_taste = TasteRegister.get("icc")
|
17
|
+
#
|
18
|
+
# # List available tastes
|
19
|
+
# TasteRegister.available_tastes
|
20
|
+
# # => [:icc, :elf, :enosema]
|
21
|
+
#
|
22
|
+
# # Get taste configuration
|
23
|
+
# config = TasteRegister.get_config("icc")
|
24
|
+
# # => #<Metanorma::Taste::TasteConfig:...>
|
25
|
+
# puts config.owner # => "International Color Consortium"
|
7
26
|
class TasteRegister
|
8
27
|
include Singleton
|
9
28
|
|
29
|
+
# Error raised when an unknown taste is requested
|
30
|
+
class UnknownTasteError < StandardError; end
|
31
|
+
|
32
|
+
# Error raised when taste configuration is invalid
|
33
|
+
class InvalidTasteConfigError < StandardError; end
|
34
|
+
|
10
35
|
def initialize
|
11
|
-
@
|
12
|
-
@
|
13
|
-
|
36
|
+
@taste_configs = {}
|
37
|
+
@taste_instances = {}
|
38
|
+
discover_and_load_tastes
|
14
39
|
end
|
15
40
|
|
41
|
+
# Get a taste instance by flavor name
|
42
|
+
#
|
43
|
+
# @param flavor [String, Symbol] The flavor name (e.g., "icc", "elf")
|
44
|
+
# @return [Taste::Base] The taste instance
|
45
|
+
# @raise [UnknownTasteError] If the flavor is not registered
|
46
|
+
#
|
47
|
+
# @example
|
48
|
+
# taste = TasteRegister.get("icc")
|
49
|
+
# taste.process_input_adoc_overrides(attrs, options)
|
16
50
|
def self.get(flavor)
|
17
51
|
instance.get(flavor)
|
18
52
|
end
|
19
53
|
|
54
|
+
# Get a taste instance by flavor name
|
55
|
+
#
|
56
|
+
# @param flavor [String, Symbol] The flavor name
|
57
|
+
# @return [Taste::Base] The taste instance
|
58
|
+
# @raise [UnknownTasteError] If the flavor is not registered
|
20
59
|
def get(flavor)
|
21
|
-
flavor_sym = flavor
|
22
|
-
|
60
|
+
flavor_sym = normalize_flavor_name(flavor)
|
61
|
+
|
62
|
+
return @taste_instances[flavor_sym] if @taste_instances[flavor_sym]
|
23
63
|
|
24
|
-
config = @
|
25
|
-
raise "Unknown taste: #{flavor}" unless config
|
64
|
+
config = @taste_configs[flavor_sym]
|
65
|
+
raise UnknownTasteError, "Unknown taste: #{flavor}" unless config
|
26
66
|
|
27
|
-
|
28
|
-
@taste_classes[flavor_sym] = create_taste_class(flavor_sym, config)
|
67
|
+
@taste_instances[flavor_sym] = create_taste_instance(flavor_sym, config)
|
29
68
|
end
|
30
69
|
|
70
|
+
# Get list of available taste flavors
|
71
|
+
#
|
72
|
+
# @return [Array<Symbol>] Array of available flavor names
|
73
|
+
#
|
74
|
+
# @example
|
75
|
+
# TasteRegister.available_tastes
|
76
|
+
# # => [:icc, :elf, :enosema]
|
31
77
|
def available_tastes
|
32
|
-
@
|
78
|
+
@taste_configs.keys
|
33
79
|
end
|
34
80
|
|
35
|
-
|
36
|
-
|
81
|
+
# Get detailed information about a specific taste
|
82
|
+
#
|
83
|
+
# @param flavor [String, Symbol] The flavor name
|
84
|
+
# @return [TasteConfig, nil] The taste configuration object, or nil if not found
|
85
|
+
#
|
86
|
+
# @example
|
87
|
+
# config = TasteRegister.get_config("icc")
|
88
|
+
# puts config.owner # => "International Color Consortium"
|
89
|
+
def self.get_config(flavor)
|
90
|
+
instance.get_config(flavor)
|
91
|
+
end
|
92
|
+
|
93
|
+
def get_config(flavor)
|
94
|
+
flavor_sym = normalize_flavor_name(flavor)
|
95
|
+
config = @taste_configs[flavor_sym]
|
96
|
+
return nil unless config
|
97
|
+
|
98
|
+
# Set the directory on the config object
|
99
|
+
config.directory = config_directory_for(flavor_sym)
|
100
|
+
config
|
101
|
+
end
|
102
|
+
|
103
|
+
# Get flavor aliases mapping
|
104
|
+
#
|
105
|
+
# @return [Hash<Symbol, Symbol>] Mapping of flavor to base_flavor
|
106
|
+
#
|
107
|
+
# @example
|
108
|
+
# aliases = TasteRegister.instance.aliases
|
109
|
+
# # => { icc: :iso, elf: :iso, enosema: :iso }
|
110
|
+
def self.aliases
|
111
|
+
instance.aliases
|
37
112
|
end
|
38
113
|
|
39
114
|
def aliases
|
40
|
-
|
41
|
-
|
42
|
-
@tastes.each do |flavor, info|
|
43
|
-
aliases[flavor] = info[:base_flavor] if info[:base_flavor]
|
115
|
+
@taste_configs.each_with_object({}) do |(flavor, config), aliases|
|
116
|
+
aliases[flavor] = config.base_flavor&.to_sym if config.base_flavor
|
44
117
|
end
|
45
|
-
aliases
|
46
118
|
end
|
47
119
|
|
48
120
|
private
|
49
121
|
|
50
|
-
|
51
|
-
|
52
|
-
|
122
|
+
# Discover and load all taste configurations from the data directory
|
123
|
+
#
|
124
|
+
# Scans the data directory for subdirectories containing config.yaml files,
|
125
|
+
# loads each configuration using lutaml-model, and registers them.
|
126
|
+
def discover_and_load_tastes
|
127
|
+
data_directory_path = data_directory
|
128
|
+
return unless data_directory_path && Dir.exist?(data_directory_path)
|
53
129
|
|
54
|
-
|
55
|
-
|
130
|
+
taste_directories = find_taste_directories(data_directory_path)
|
131
|
+
taste_directories.each { |dir| load_taste_from_directory(dir) }
|
132
|
+
end
|
56
133
|
|
57
|
-
|
58
|
-
|
134
|
+
# Get the path to the data directory
|
135
|
+
#
|
136
|
+
# @return [String] Path to the data directory
|
137
|
+
def data_directory
|
138
|
+
File.join(File.dirname(__FILE__), "..", "..", "data")
|
139
|
+
end
|
59
140
|
|
60
|
-
|
61
|
-
|
141
|
+
# Find all valid taste directories in the data directory
|
142
|
+
#
|
143
|
+
# @param data_dir [String] Path to the data directory
|
144
|
+
# @return [Array<String>] Array of taste directory paths
|
145
|
+
def find_taste_directories(data_dir)
|
146
|
+
Dir.entries(data_dir)
|
147
|
+
.reject { |entry| entry.start_with?(".") }
|
148
|
+
.map { |entry| File.join(data_dir, entry) }
|
149
|
+
.select { |path| Dir.exist?(path) && has_config_file?(path) }
|
150
|
+
end
|
62
151
|
|
63
|
-
|
152
|
+
# Check if a directory contains a config.yaml file
|
153
|
+
#
|
154
|
+
# @param directory [String] Directory path to check
|
155
|
+
# @return [Boolean] True if config.yaml exists
|
156
|
+
def has_config_file?(directory)
|
157
|
+
File.exist?(File.join(directory, "config.yaml"))
|
158
|
+
end
|
159
|
+
|
160
|
+
# Load and register a taste configuration from a directory
|
161
|
+
#
|
162
|
+
# @param taste_directory [String] Path to the taste directory
|
163
|
+
# @raise [InvalidTasteConfigError] If the configuration is invalid
|
164
|
+
def load_taste_from_directory(taste_directory)
|
165
|
+
config_file = File.join(taste_directory, "config.yaml")
|
166
|
+
directory_name = File.basename(taste_directory)
|
167
|
+
|
168
|
+
begin
|
169
|
+
config_content = File.read(config_file)
|
170
|
+
config = Taste::TasteConfig.from_yaml(config_content)
|
171
|
+
|
172
|
+
validate_taste_config!(config, directory_name)
|
173
|
+
register_taste_config(config, taste_directory)
|
174
|
+
rescue StandardError => e
|
175
|
+
raise InvalidTasteConfigError,
|
176
|
+
"Failed to load taste from #{taste_directory}: #{e.message}"
|
64
177
|
end
|
65
178
|
end
|
66
179
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
directory: taste_dir,
|
76
|
-
config: config,
|
77
|
-
copyright_notice: config["copyright-notice"],
|
78
|
-
i18n_dictionary: config["i18n-dictionary"],
|
79
|
-
base_override: config["base-override"] || {},
|
80
|
-
doctypes: config["doctypes"] || {}
|
81
|
-
}
|
82
|
-
end
|
83
|
-
|
84
|
-
def create_taste_class(flavor, config)
|
85
|
-
# Create a dynamic class that inherits from Base
|
86
|
-
taste_class = Class.new(Taste::Base) do
|
87
|
-
define_method :initialize do
|
88
|
-
super(flavor, config)
|
89
|
-
end
|
180
|
+
# Validate that a taste configuration is complete and valid
|
181
|
+
#
|
182
|
+
# @param config [Taste::TasteConfig] The configuration to validate
|
183
|
+
# @param directory_name [String] The directory name for fallback
|
184
|
+
# @raise [InvalidTasteConfigError] If validation fails
|
185
|
+
def validate_taste_config!(config, directory_name)
|
186
|
+
unless config.flavor || directory_name
|
187
|
+
raise InvalidTasteConfigError, "Taste must have a flavor name"
|
90
188
|
end
|
189
|
+
end
|
190
|
+
|
191
|
+
# Register a taste configuration in the registry
|
192
|
+
#
|
193
|
+
# @param config [Taste::TasteConfig] The configuration to register
|
194
|
+
# @param directory [String] The taste directory path
|
195
|
+
def register_taste_config(config, directory)
|
196
|
+
# Use config flavor or fall back to directory name
|
197
|
+
flavor = config.flavor&.to_sym || File.basename(directory).to_sym
|
198
|
+
|
199
|
+
# Store the config and remember its directory
|
200
|
+
@taste_configs[flavor] = config
|
201
|
+
@config_directories ||= {}
|
202
|
+
@config_directories[flavor] = directory
|
203
|
+
end
|
91
204
|
|
92
|
-
|
93
|
-
|
205
|
+
# Create a taste instance for the given flavor and configuration
|
206
|
+
#
|
207
|
+
# @param flavor [Symbol] The flavor name
|
208
|
+
# @param config [Taste::TasteConfig] The taste configuration
|
209
|
+
# @return [Taste::Base] The created taste instance
|
210
|
+
def create_taste_instance(flavor, config)
|
211
|
+
directory = config_directory_for(flavor)
|
212
|
+
|
213
|
+
# Create dynamic class if it doesn't exist
|
214
|
+
class_name = flavor.to_s.capitalize
|
94
215
|
unless Taste.const_defined?(class_name)
|
95
|
-
Taste.const_set(class_name,
|
96
|
-
taste_class)
|
216
|
+
Taste.const_set(class_name, Class.new(Taste::Base))
|
97
217
|
end
|
98
218
|
|
99
|
-
|
219
|
+
# Create instance of the dynamic class
|
220
|
+
dynamic_class = Taste.const_get(class_name)
|
221
|
+
dynamic_class.new(flavor, config, directory: directory)
|
222
|
+
end
|
223
|
+
|
224
|
+
# Get the directory path for a registered flavor
|
225
|
+
#
|
226
|
+
# @param flavor [Symbol] The flavor name
|
227
|
+
# @return [String] The directory path
|
228
|
+
def config_directory_for(flavor)
|
229
|
+
@config_directories ||= {}
|
230
|
+
@config_directories[flavor] || File.join(data_directory, flavor.to_s)
|
231
|
+
end
|
232
|
+
|
233
|
+
# Normalize flavor name to symbol
|
234
|
+
#
|
235
|
+
# @param flavor [String, Symbol] The flavor name
|
236
|
+
# @return [Symbol] Normalized flavor name
|
237
|
+
def normalize_flavor_name(flavor)
|
238
|
+
flavor.to_sym
|
100
239
|
end
|
101
240
|
end
|
102
241
|
end
|
data/metanorma-taste.gemspec
CHANGED
@@ -32,18 +32,5 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.bindir = "bin"
|
33
33
|
spec.require_paths = ["lib"]
|
34
34
|
|
35
|
-
spec.
|
36
|
-
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
37
|
-
spec.add_development_dependency "metanorma"
|
38
|
-
spec.add_development_dependency "metanorma-iso"
|
39
|
-
spec.add_development_dependency "mnconvert"
|
40
|
-
spec.add_development_dependency "pry"
|
41
|
-
spec.add_development_dependency "rake", "~> 13.0"
|
42
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
43
|
-
spec.add_development_dependency "rspec-command", "~> 1.0"
|
44
|
-
spec.add_development_dependency "rubocop", "~> 1"
|
45
|
-
spec.add_development_dependency "rubocop-performance"
|
46
|
-
spec.add_development_dependency "sassc-embedded", "~> 1"
|
47
|
-
spec.add_development_dependency "simplecov", "~> 0.15"
|
48
|
-
spec.add_development_dependency "xml-c14n"
|
35
|
+
spec.add_dependency "lutaml-model", "~>0.7"
|
49
36
|
end
|
metadata
CHANGED
@@ -1,211 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-taste
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: equivalent-xml
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0.6'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0.6'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: metanorma
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: metanorma-iso
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: mnconvert
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: pry
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: rake
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '13.0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '13.0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rspec
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '3.0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '3.0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rspec-command
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '1.0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '1.0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: rubocop
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '1'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - "~>"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '1'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: rubocop-performance
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '0'
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '0'
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: sassc-embedded
|
14
|
+
name: lutaml-model
|
169
15
|
requirement: !ruby/object:Gem::Requirement
|
170
16
|
requirements:
|
171
17
|
- - "~>"
|
172
18
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
174
|
-
type: :
|
19
|
+
version: '0.7'
|
20
|
+
type: :runtime
|
175
21
|
prerelease: false
|
176
22
|
version_requirements: !ruby/object:Gem::Requirement
|
177
23
|
requirements:
|
178
24
|
- - "~>"
|
179
25
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
181
|
-
- !ruby/object:Gem::Dependency
|
182
|
-
name: simplecov
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
184
|
-
requirements:
|
185
|
-
- - "~>"
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version: '0.15'
|
188
|
-
type: :development
|
189
|
-
prerelease: false
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
191
|
-
requirements:
|
192
|
-
- - "~>"
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version: '0.15'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: xml-c14n
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - ">="
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '0'
|
202
|
-
type: :development
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - ">="
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: '0'
|
26
|
+
version: '0.7'
|
209
27
|
description: Library to process and handle default Metanorma Tastes, providing configuration-driven
|
210
28
|
customization of Metanorma flavours.
|
211
29
|
email:
|
@@ -225,12 +43,24 @@ files:
|
|
225
43
|
- data/elf/config.yaml
|
226
44
|
- data/elf/copyright.adoc
|
227
45
|
- data/elf/i18n.yaml
|
46
|
+
- data/elf/logo.svg
|
47
|
+
- data/enosema/config.yaml
|
48
|
+
- data/enosema/copyright.adoc
|
49
|
+
- data/enosema/i18n.yaml
|
50
|
+
- data/enosema/logo.svg
|
228
51
|
- data/icc/config.yaml
|
229
52
|
- data/icc/copyright.adoc
|
230
53
|
- data/icc/i18n.yaml
|
54
|
+
- data/icc/icc-full-new.svg
|
55
|
+
- data/icc/icc-full.svg
|
56
|
+
- data/icc/icc-small-new.svg
|
57
|
+
- data/icc/icc-small.svg
|
231
58
|
- lib/metanorma-taste.rb
|
232
59
|
- lib/metanorma/taste.rb
|
233
60
|
- lib/metanorma/taste/base.rb
|
61
|
+
- lib/metanorma/taste/base_override.rb
|
62
|
+
- lib/metanorma/taste/doctype_config.rb
|
63
|
+
- lib/metanorma/taste/taste_config.rb
|
234
64
|
- lib/metanorma/taste/version.rb
|
235
65
|
- lib/metanorma/taste_register.rb
|
236
66
|
- metanorma-taste.gemspec
|