Class: Megalopolis::Subject
- Inherits:
-
Array
- Object
- Array
- Megalopolis::Subject
- Includes:
- Essentials
- Defined in:
- lib/megalopolis/scheme.rb
Instance Attribute Summary collapse
-
#base_url ⇒ Object
readonly
Returns the value of attribute base_url.
-
#log ⇒ Object
readonly
Returns the value of attribute log.
-
#subject ⇒ Object
readonly
Returns the value of attribute subject.
Instance Method Summary collapse
- #fetch_subject(base_url, log) ⇒ Object
-
#initialize(base_url, log) ⇒ Subject
constructor
A new instance of Subject.
- #latest_log ⇒ Object
- #next_page ⇒ Object (also: #next)
- #prev_page ⇒ Object (also: #prev)
Methods included from Essentials
Constructor Details
#initialize(base_url, log) ⇒ Subject
Returns a new instance of Subject.
88 89 90 91 92 93 |
# File 'lib/megalopolis/scheme.rb', line 88 def initialize(base_url, log) @subject = fetch_subject(base_url, log) super(subject) @base_url = base_url @log = @subject.first.log end |
Instance Attribute Details
#base_url ⇒ Object (readonly)
Returns the value of attribute base_url.
86 87 88 |
# File 'lib/megalopolis/scheme.rb', line 86 def base_url @base_url end |
#log ⇒ Object (readonly)
Returns the value of attribute log.
84 85 86 |
# File 'lib/megalopolis/scheme.rb', line 84 def log @log end |
#subject ⇒ Object (readonly)
Returns the value of attribute subject.
85 86 87 |
# File 'lib/megalopolis/scheme.rb', line 85 def subject @subject end |
Instance Method Details
#fetch_subject(base_url, log) ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/megalopolis/scheme.rb', line 95 def fetch_subject(base_url, log) page = send_req(File.join(base_url, "#{log}.json")) obj = JSON.parse(page)["entries"] raise NoDocumentError, "Requested page is out of range" unless obj indexes = [] obj.each do |index| index["url"] = URI.join(base_url, "#{log}/#{index["id"]}").to_s index["log"] = index["subject"] index.delete("subject") indexes << Index.new(base_url, index) end return indexes.reverse end |
#latest_log ⇒ Object
121 122 123 124 |
# File 'lib/megalopolis/scheme.rb', line 121 def latest_log page = send_req(File.join(base_url, "0.json")) return JSON.parse(page)["entries"][0]["subject"] end |