Class: Pocketbook::Theme::Manifest
- Inherits:
-
Object
- Object
- Pocketbook::Theme::Manifest
show all
- Defined in:
- lib/pocketbook/theme/manifest.rb
Defined Under Namespace
Classes: Defaults, StyleCatalog
Constant Summary
collapse
- OPTIONAL_FIELDS =
%w[name version template styles defaults].freeze
- SUPPORTED_FIELDS =
OPTIONAL_FIELDS
- DEFAULT_STYLE_NAME =
"default"
- SUPPORTED_DEFAULTS =
%w[style title subtitle author publisher backcover_text size].freeze
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(path:) ⇒ Manifest
Returns a new instance of Manifest.
154
155
156
157
158
159
160
|
# File 'lib/pocketbook/theme/manifest.rb', line 154
def initialize(path:)
@path = path
@values = load_manifest(path)
validate_manifest!
@defaults = Defaults.new(@values["defaults"], path)
@style_catalog = StyleCatalog.new(@values["styles"], path)
end
|
Instance Attribute Details
#path ⇒ Object
Returns the value of attribute path.
144
145
146
|
# File 'lib/pocketbook/theme/manifest.rb', line 144
def path
@path
end
|
Class Method Details
.supported_defaults ⇒ Object
150
151
152
|
# File 'lib/pocketbook/theme/manifest.rb', line 150
def self.supported_defaults
SUPPORTED_DEFAULTS
end
|
.supported_fields ⇒ Object
146
147
148
|
# File 'lib/pocketbook/theme/manifest.rb', line 146
def self.supported_fields
SUPPORTED_FIELDS
end
|
Instance Method Details
#available_styles ⇒ Object
178
179
180
|
# File 'lib/pocketbook/theme/manifest.rb', line 178
def available_styles
@style_catalog.available_styles
end
|
#default_style_name ⇒ Object
190
191
192
|
# File 'lib/pocketbook/theme/manifest.rb', line 190
def default_style_name
@defaults.style_name
end
|
194
195
196
|
# File 'lib/pocketbook/theme/manifest.rb', line 194
def defaults_metadata
@defaults.metadata
end
|
#name(default_name) ⇒ Object
162
163
164
|
# File 'lib/pocketbook/theme/manifest.rb', line 162
def name(default_name)
@values.fetch("name", default_name)
end
|
#style?(style_name) ⇒ Boolean
182
183
184
|
# File 'lib/pocketbook/theme/manifest.rb', line 182
def style?(style_name)
@style_catalog.style?(style_name)
end
|
#style_paths_for(style_name) ⇒ Object
186
187
188
|
# File 'lib/pocketbook/theme/manifest.rb', line 186
def style_paths_for(style_name)
@style_catalog.paths_for(style_name)
end
|
#styles_declared? ⇒ Boolean
174
175
176
|
# File 'lib/pocketbook/theme/manifest.rb', line 174
def styles_declared?
!@style_catalog.available_styles.empty?
end
|
#template_reference ⇒ Object
170
171
172
|
# File 'lib/pocketbook/theme/manifest.rb', line 170
def template_reference
normalize_optional_string(@values["template"])
end
|
#version(default_version = "0.1.0") ⇒ Object
166
167
168
|
# File 'lib/pocketbook/theme/manifest.rb', line 166
def version(default_version = "0.1.0")
@values.fetch("version", default_version)
end
|