Class: DribbbleBucketApi::BucketIndexParser

Inherits:
Object
  • Object
show all
Defined in:
lib/dribbble_bucket_api/bucket_index_parser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(body, options = {}) ⇒ BucketIndexParser

Returns a new instance of BucketIndexParser.



8
9
10
11
# File 'lib/dribbble_bucket_api/bucket_index_parser.rb', line 8

def initialize(body, options = {})
  @body = body
  @options = options
end

Instance Attribute Details

#bodyObject (readonly)

Returns the value of attribute body.



6
7
8
# File 'lib/dribbble_bucket_api/bucket_index_parser.rb', line 6

def body
  @body
end

Instance Method Details

#bucketsObject



13
14
15
16
17
18
19
20
21
# File 'lib/dribbble_bucket_api/bucket_index_parser.rb', line 13

def buckets
  @buckets ||= document.css(".bucket-list > li").map do |bucket|
    # parse bucket data from HTML
    id = bucket["class"] =~ /^bucket\-(\d+)$/ && $1.to_i
    name = bucket.css(".bucket-title a").first.text
    # pass data into bucket object
    Bucket.new(id: id, name: name, username: username)
  end
end

#current_pageObject



23
24
25
# File 'lib/dribbble_bucket_api/bucket_index_parser.rb', line 23

def current_page
  @options[:page] || 1
end

#next_pageObject



27
28
29
# File 'lib/dribbble_bucket_api/bucket_index_parser.rb', line 27

def next_page
  current_page + 1 if current_page < total_pages
end

#previous_pageObject



31
32
33
# File 'lib/dribbble_bucket_api/bucket_index_parser.rb', line 31

def previous_page
  current_page - 1 if current_page > 1
end

#total_entriesObject



35
36
37
# File 'lib/dribbble_bucket_api/bucket_index_parser.rb', line 35

def total_entries
  @total_entries ||= document.css(".buckets .count").text.to_i
end

#total_pagesObject



39
40
41
# File 'lib/dribbble_bucket_api/bucket_index_parser.rb', line 39

def total_pages
  total_entries > 0 ? (total_entries.to_f / 5).ceil : 0
end