Class: Foliokit::Manifest

Inherits:
Object
  • Object
show all
Includes:
Foliokit::Modules::Element
Defined in:
lib/foliokit/manifest.rb

Direct Known Subclasses

ManifestArticle, ManifestFolio

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Foliokit::Modules::Element

#initialize

Class Method Details

.element_baseObject



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_idsObject



60
61
62
# File 'lib/foliokit/manifest.rb', line 60

def content_stack_ids
  element.css("contentStacks contentStack").map { |s| s["id"] }
end

#content_stacksObject



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_heightObject



32
33
34
# File 'lib/foliokit/manifest.rb', line 32

def device_height
  (orientation == "landscape") ? narrow_dimension : wide_dimension
end

#device_widthObject



36
37
38
# File 'lib/foliokit/manifest.rb', line 36

def device_width
  (orientation == "landscape") ? wide_dimension : narrow_dimension
end

#narrow_dimensionObject



28
29
30
# File 'lib/foliokit/manifest.rb', line 28

def narrow_dimension
  target_dimension["narrowDimension"].to_i
end

#overlay_idsObject



54
55
56
57
58
# File 'lib/foliokit/manifest.rb', line 54

def overlay_ids
  @_overlay_ids ||= begin
    element.css("overlay[@id]").map { |overlay| hashify(overlay["id"]) }
  end
end

#referenced_idsObject



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

#subfoliosObject



68
69
70
# File 'lib/foliokit/manifest.rb', line 68

def subfolios
  element.css("contentStacks contentStack[@subfolio]:empty")
end

#target_dimensionObject



20
21
22
# File 'lib/foliokit/manifest.rb', line 20

def target_dimension
  element.css("targetDimensions targetDimension").first
end

#valid_overlay_id?(id) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/foliokit/manifest.rb', line 46

def valid_overlay_id?(id)
  overlay_ids.include?(id)
end

#valid_referenced_id?(id) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/foliokit/manifest.rb', line 50

def valid_referenced_id?(id)
  referenced_ids.include?(id)
end

#wide_dimensionObject



24
25
26
# File 'lib/foliokit/manifest.rb', line 24

def wide_dimension
  target_dimension["wideDimension"].to_i
end