Class: Foliokit::Manifest
- Inherits:
-
Object
- Object
- Foliokit::Manifest
- Includes:
- Foliokit::Modules::Element
- Defined in:
- lib/foliokit/manifest.rb
Direct Known Subclasses
Class Method Summary collapse
Instance Method Summary collapse
- #content_stack_ids ⇒ Object
- #content_stacks ⇒ Object
- #device_height ⇒ Object
- #device_width ⇒ Object
- #narrow_dimension ⇒ Object
- #overlay_ids ⇒ Object
- #referenced_ids ⇒ Object
- #subfolios ⇒ Object
- #target_dimension ⇒ Object
- #valid_overlay_id?(id) ⇒ Boolean
- #valid_referenced_id?(id) ⇒ Boolean
- #wide_dimension ⇒ Object
Methods included from Foliokit::Modules::Element
Class Method Details
.element_base ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/foliokit/manifest.rb', line 7 def self.element_base element_reader :id, type: :s element_reader :version, type: :s element_reader :targetViewer, type: :s element_reader :lastUpdated, type: :s element_reader :date, type: :s element_reader :bindingDirection, type: :s element_reader :orientation, type: :s element_reader :title, type: :s, selector: "metadata > magazineTitle", text: true element_reader :description, type: :s, selector: "metadata > description", text: true element_reader :article, type: :bool end |
Instance Method Details
#content_stack_ids ⇒ Object
60 61 62 |
# File 'lib/foliokit/manifest.rb', line 60 def content_stack_ids element.css("contentStacks contentStack").map { |s| s["id"] } end |
#content_stacks ⇒ Object
64 65 66 |
# File 'lib/foliokit/manifest.rb', line 64 def content_stacks element.css("contentStacks contentStack:not(:empty)").map { |element| ContentStack.new(element, package) } end |
#device_height ⇒ Object
32 33 34 |
# File 'lib/foliokit/manifest.rb', line 32 def device_height (orientation == "landscape") ? narrow_dimension : wide_dimension end |
#device_width ⇒ Object
36 37 38 |
# File 'lib/foliokit/manifest.rb', line 36 def device_width (orientation == "landscape") ? wide_dimension : narrow_dimension end |
#narrow_dimension ⇒ Object
28 29 30 |
# File 'lib/foliokit/manifest.rb', line 28 def narrow_dimension target_dimension["narrowDimension"].to_i end |
#overlay_ids ⇒ Object
54 55 56 57 58 |
# File 'lib/foliokit/manifest.rb', line 54 def @_overlay_ids ||= begin element.css("overlay[@id]").map { || hashify(["id"]) } end end |
#referenced_ids ⇒ Object
40 41 42 43 44 |
# File 'lib/foliokit/manifest.rb', line 40 def referenced_ids @_referenced_ids ||= begin element.css("action[@target]").map { |action| hashify(action["target"]) } | element.css("action[@state]").map { |action| hashify(action["state"]) } end end |
#subfolios ⇒ Object
68 69 70 |
# File 'lib/foliokit/manifest.rb', line 68 def subfolios element.css("contentStacks contentStack[@subfolio]:empty") end |
#target_dimension ⇒ Object
20 21 22 |
# File 'lib/foliokit/manifest.rb', line 20 def target_dimension element.css("targetDimensions targetDimension").first end |
#valid_overlay_id?(id) ⇒ Boolean
46 47 48 |
# File 'lib/foliokit/manifest.rb', line 46 def (id) .include?(id) end |
#valid_referenced_id?(id) ⇒ Boolean
50 51 52 |
# File 'lib/foliokit/manifest.rb', line 50 def valid_referenced_id?(id) referenced_ids.include?(id) end |
#wide_dimension ⇒ Object
24 25 26 |
# File 'lib/foliokit/manifest.rb', line 24 def wide_dimension target_dimension["wideDimension"].to_i end |