Class: Trello::Board

Inherits:
BasicData show all
Includes:
HasActions
Defined in:
lib/trello/board.rb

Instance Attribute Summary

Attributes inherited from BasicData

#client

Class Method Summary collapse

Instance Method Summary collapse

Methods included from HasActions

#actions

Methods inherited from BasicData

#==, client, #initialize, many, one, parse, parse_many, path_name, #refresh!, register_attributes, save

Constructor Details

This class inherits a constructor from Trello::BasicData

Class Method Details

.allObject



24
25
26
# File 'lib/trello/board.rb', line 24

def all
  client.get("/members/#{Member.find(:me).username}/boards").json_into(self)
end

.create(fields) ⇒ Object



17
18
19
20
21
22
# File 'lib/trello/board.rb', line 17

def create(fields)
  client.create(:board,
    'name'   => fields[:name],
    'desc'   => fields[:description],
    'closed' => fields[:closed] || false)
end

.find(id) ⇒ Object

Finds a board.



13
14
15
# File 'lib/trello/board.rb', line 13

def find(id)
  client.find(:board, id)
end

Instance Method Details

#closed?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/trello/board.rb', line 63

def closed?
  attributes[:closed]
end

#find_card(card_id) ⇒ Object



71
72
73
# File 'lib/trello/board.rb', line 71

def find_card(card_id)
  client.get("/boards/#{self.id}/cards/#{card_id}").json_into(Card)
end

#has_lists?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/trello/board.rb', line 67

def has_lists?
  lists.size > 0
end

#labelsObject



99
100
101
102
# File 'lib/trello/board.rb', line 99

def labels
  labels = client.get("/boards/#{id}/labelnames").json_into(LabelName)
  MultiAssociation.new(self, labels).proxy
end

#request_prefixObject

:nodoc:



105
106
107
# File 'lib/trello/board.rb', line 105

def request_prefix
  "/boards/#{id}"
end

#saveObject



29
30
31
32
33
34
35
36
37
# File 'lib/trello/board.rb', line 29

def save
  return update! if id

  fields = { :name => name }
  fields.merge!(:desc => description) if description
  fields.merge!(:idOrganization => organization_id) if organization_id

  client.post("/boards", fields).json_into(self)
end

#update!Object



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/trello/board.rb', line 39

def update!
  fail "Cannot save new instance." unless self.id

  @previously_changed = changes
  @changed_attributes.clear

  client.put("/boards/#{self.id}/", {
    :name        => attributes[:name],
    :description => attributes[:description],
    :closed      => attributes[:closed]
  }).json_into(self)
end

#update_fields(fields) ⇒ Object



52
53
54
55
56
57
58
59
60
61
# File 'lib/trello/board.rb', line 52

def update_fields(fields)
  attributes[:id]              = fields['id']              if fields['id']
  attributes[:name]            = fields['name']            if fields['name']
  attributes[:description]     = fields['desc']            if fields['desc']
  attributes[:closed]          = fields['closed']          if fields.has_key?('closed')
  attributes[:url]             = fields['url']             if fields['url']
  attributes[:organization_id] = fields['idOrganization']  if fields['idOrganization']
  attributes[:prefs]           = fields['prefs'] || {}
  self
end