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



26
27
28
# File 'lib/trello/board.rb', line 26

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

.create(fields) ⇒ Object



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

def create(fields)
  data = {
    'name'   => fields[:name],
    'desc'   => fields[:description],
    'closed' => fields[:closed] || false }
  data.merge!('idOrganization' => fields[:organization_id]) if fields[:organization_id]
  client.create(:board, data)
end

.find(id, params = {}) ⇒ Object

Finds a board.



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

def find(id, params = {})
  client.find(:board, id, params)
end

Instance Method Details

#closed?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/trello/board.rb', line 65

def closed?
  attributes[:closed]
end

#find_card(card_id) ⇒ Object



73
74
75
# File 'lib/trello/board.rb', line 73

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

#has_lists?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/trello/board.rb', line 69

def has_lists?
  lists.size > 0
end

#labelsObject



101
102
103
104
# File 'lib/trello/board.rb', line 101

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

#request_prefixObject

:nodoc:



107
108
109
# File 'lib/trello/board.rb', line 107

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

#saveObject



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

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



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

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



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

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