Class: Glassfrog::Project

Inherits:
Base
  • Object
show all
Defined in:
lib/glassfrog/project.rb

Overview

Encapsulates GlassFrog Projects.

Constant Summary collapse

PATH =
'/projects'
TYPE =
:projects

Instance Attribute Summary collapse

Attributes inherited from Base

#id

Class Method Summary collapse

Methods inherited from Base

#==, #hashify, #initialize

Methods included from Utils

#extract_id, #parameterize, #symbolize_keys

Constructor Details

This class inherits a constructor from Glassfrog::Base

Instance Attribute Details

#archived_atString

Returns:

  • (String)


13
14
15
# File 'lib/glassfrog/project.rb', line 13

def archived_at
  @archived_at
end

#created_atString

Returns:

  • (String)


13
14
15
# File 'lib/glassfrog/project.rb', line 13

def created_at
  @created_at
end

#descriptionString

Returns:

  • (String)


13
14
15
# File 'lib/glassfrog/project.rb', line 13

def description
  @description
end

#effortInteger

Returns:

  • (Integer)


15
16
17
# File 'lib/glassfrog/project.rb', line 15

def effort
  @effort
end

Returns:

  • (String)


13
14
15
# File 'lib/glassfrog/project.rb', line 13

def link
  @link
end

Returns:

  • (Hash)


19
20
21
# File 'lib/glassfrog/project.rb', line 19

def links
  @links
end

#private_to_circleBoolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/glassfrog/project.rb', line 17

def private_to_circle
  @private_to_circle
end

#roiInteger

Returns:

  • (Integer)


15
16
17
# File 'lib/glassfrog/project.rb', line 15

def roi
  @roi
end

#statusString

Returns:

  • (String)


13
14
15
# File 'lib/glassfrog/project.rb', line 13

def status
  @status
end

#valueInteger

Returns:

  • (Integer)


15
16
17
# File 'lib/glassfrog/project.rb', line 15

def value
  @value
end

Class Method Details

.delete(client, options) ⇒ Boolean

Sends a DELETE request to delete a Project on GlassFrog.

Parameters:

  • client (Glassforg::Client)

    The client that will send the request. Contains the API key.

  • options (Hash, Glassfrog::Base)

    The options containing the ID of the Project to delete.

Returns:

  • (Boolean)

    Whether the request failed or not.



63
64
65
66
# File 'lib/glassfrog/project.rb', line 63

def self.delete(client, options)
  path = PATH + '/' + options.delete(:id).to_s
  response = Glassfrog::REST::Delete.delete(client, path, options)
end

.get(client, options) ⇒ Array<Glassfrog::Project>

Sends a GET request for Project(s) to GlassFrog.

Parameters:

  • client (Glassfrog::Client)

    The client that will send the request. Contains the API key.

  • options (Hash, Glassfrog::Base)

    The options used to find the correct Projects(s).

Returns:



29
30
31
32
# File 'lib/glassfrog/project.rb', line 29

def self.get(client, options)
  response = Glassfrog::REST::Get.get(client, PATH, options)
  response[TYPE].map { |object| self.new(object) }
end

.patch(client, identifier, options) ⇒ Boolean

Sends a PATCH request to update a Project on GlassFrog.

Parameters:

  • client (Glassforg::Client)

    The client that will send the request. Contains the API key.

  • identifier (Integer)

    The ID of the Project to be updated.

  • options (Hash, Glassfrog::Base)

    The options used to update the Project.

Returns:

  • (Boolean)

    Whether the request failed or not.



52
53
54
55
# File 'lib/glassfrog/project.rb', line 52

def self.patch(client, identifier, options)
  options = Glassfrog::REST::Patch.formify(parse_options(options), self)
  response = Glassfrog::REST::Patch.patch(client, PATH + '/' + identifier.to_s, options)
end

.post(client, options) ⇒ Array<Glassfrog::Project>

Sends a POST request to create a Project on GlassFrog.

Parameters:

  • client (Glassforg::Client)

    The client that will send the request. Contains the API key.

  • options (Hash, Glassforg::Base)

    The options used to create the new Projects.

Returns:



40
41
42
43
# File 'lib/glassfrog/project.rb', line 40

def self.post(client, options)
  response = Glassfrog::REST::Post.post(client, PATH, { TYPE => [parse_options(options)] })
  response[TYPE].map { |object| self.new(object) }
end