lib/eve_online/characters/bookmarks.rb in eve_online-0.6.0 vs lib/eve_online/characters/bookmarks.rb in eve_online-0.7.0
- old
+ new
@@ -1,21 +1,46 @@
module EveOnline
module Characters
- # https://eveonline-third-party-documentation.readthedocs.org/en/latest/xmlapi/char_bookmarks/
- class Bookmarks < Base
- API_ENDPOINT = 'https://api.eveonline.com/char/Bookmarks.xml.aspx'
+ # https://eveonline-third-party-documentation.readthedocs.org/en/latest/xmlapi/character/char_bookmarks.html
+ class Bookmarks < BaseXML
+ API_ENDPOINT = 'https://api.eveonline.com/char/Bookmarks.xml.aspx'.freeze
attr_reader :key_id, :v_code, :character_id
def initialize(key_id, v_code, character_id)
super()
@key_id = key_id
@v_code = v_code
@character_id = character_id
end
+ def bookmark_folders
+ @bookmark_folders ||= begin
+ case row
+ when Hash
+ [EveOnline::BookmarkFolder.new(row)]
+ when Array
+ bookmark_folders = []
+ row.each do |bookmark_folder|
+ bookmark_folders << EveOnline::BookmarkFolder.new(bookmark_folder)
+ end
+ bookmark_folders
+ else
+ raise ArgumentError
+ end
+ end
+ end
+
+ def row
+ @row ||= rowset.fetch('row')
+ end
+
+ def rowset
+ @rowset ||= result.fetch('rowset')
+ end
+
def url
"#{ API_ENDPOINT }?keyID=#{ key_id }&vCode=#{ v_code }&characterID=#{ character_id }"
- end
+ end
end
end
end