Class: PGit::Pivotal::IndividualRequest

Inherits:
Request
  • Object
show all
Defined in:
lib/pgit/pivotal/individual_request.rb

Direct Known Subclasses

Iteration, Project, Story, PGit::Project

Instance Method Summary collapse

Methods inherited from Request

#api_token, #api_version, #before_initialize, #configuration, #current_project, #get_request, #link

Constructor Details

#initialize {|_self| ... } ⇒ IndividualRequest

Returns a new instance of IndividualRequest.

Yields:

  • (_self)

Yield Parameters:



4
5
6
# File 'lib/pgit/pivotal/individual_request.rb', line 4

def initialize(&block)
  yield self if block_given?
end

Instance Method Details

#define_methods(json) ⇒ Object



17
18
19
20
21
# File 'lib/pgit/pivotal/individual_request.rb', line 17

def define_methods(json)
  JSON.parse(json).each do |key, value|
    instance_variable_set("@#{key}", value)
  end
end

#get!Object



13
14
15
# File 'lib/pgit/pivotal/individual_request.rb', line 13

def get!
  define_methods get_request
end

#hash=(hash) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/pgit/pivotal/individual_request.rb', line 27

def hash=(hash)
  hash.each do |key, value|
    if key == 'stories'
      define_singleton_method key do
        value.map do |story_hash|
          PGit::Pivotal::Story.new do |s|
            s.hash = story_hash
          end
        end
      end
    else
      define_singleton_method key do
        value
      end
    end
  end
end

#put!Object



8
9
10
11
# File 'lib/pgit/pivotal/individual_request.rb', line 8

def put!
  `curl -X PUT -H 'X-TrackerToken: #{api_token}' -H 'Content-Type: application/json' -d '#{JSON.generate(to_hash)}' #{link}`
  @changed_attributes = []
end

#to_hashObject



23
24
25
# File 'lib/pgit/pivotal/individual_request.rb', line 23

def to_hash
  @changed_attributes.inject(Hash.new) {|accum, key| accum[key] = send(key); accum }
end