Class: DribbbleBucketSync

Inherits:
Object
  • Object
show all
Defined in:
lib/dribbble_bucket_sync.rb,
lib/dribbble_bucket_sync/folder.rb,
lib/dribbble_bucket_sync/version.rb

Defined Under Namespace

Classes: Folder

Constant Summary collapse

VERSION =
"0.0.2"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(username) ⇒ DribbbleBucketSync

Returns a new instance of DribbbleBucketSync.



9
10
11
# File 'lib/dribbble_bucket_sync.rb', line 9

def initialize(username)
  @username = username
end

Instance Attribute Details

#usernameObject (readonly)

Returns the value of attribute username.



7
8
9
# File 'lib/dribbble_bucket_sync.rb', line 7

def username
  @username
end

Instance Method Details

#sync_to(directory) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/dribbble_bucket_sync.rb', line 13

def sync_to(directory)
  # ensure the directory exists
  unless File.directory?(directory)
    raise ArgumentError, "Sync destination must be a valid directory:\n#{directory}"
  end
  # get the first page
  response = connection.buckets(page: 1)
  # load the total pages
  total_pages = response.total_pages
  # return if total pages is none
  return if total_pages < 1
  # print how many buckets there are
  puts "#{@username} has #{response.total_entries} buckets."
  # loop through each page
  1.upto(total_pages) do |page|
    # load the buckets for this page
    buckets = connection.buckets(page: page)
    # sync each bucket
    buckets.each do |bucket|
      sync_bucket(bucket, directory)
    end
    # being nice to Dribbble site
    # sleep for 1 - 3 seconds every 5 buckets
    sleep(3) + 1
  end
end