Class: RallyAPI::RallyObject

Inherits:
Object
  • Object
show all
Defined in:
lib/rally_api/rally_object.rb

Overview

RallyObject is a helper class that wraps the JSON.parsed hash

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rally_rest, json_hash, warnings = {}) ⇒ RallyObject

Returns a new instance of RallyObject.



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rally_api/rally_object.rb', line 16

def initialize(rally_rest, json_hash, warnings = {})
  # handle that we might not get a _ref or a _type
  if !json_hash["_type"].nil? || !json_hash["_ref"].nil?
    @type = json_hash["_type"] || json_hash["_ref"].split("/")[-2]
  else
    @type = "unknown"
  end
  @rally_object = json_hash
  @rally_rest = rally_rest
  @warnings = warnings[:warnings]
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(sym, *args) ⇒ Object (private)

An attempt to be rally_rest_api user friendly - you can get a field the old way with an underscored field name or the upcase name



145
146
147
148
149
150
151
# File 'lib/rally_api/rally_object.rb', line 145

def method_missing(sym, *args)
  ret_val = get_val(sym.to_s)
  if ret_val.nil? && @rally_rest.rally_rest_api_compat
    ret_val = get_val(camel_case_word(sym))
  end
  ret_val
end

Instance Attribute Details

#rally_objectObject (readonly)

Returns the value of attribute rally_object.



14
15
16
# File 'lib/rally_api/rally_object.rb', line 14

def rally_object
  @rally_object
end

#typeObject (readonly)

Returns the value of attribute type.



14
15
16
# File 'lib/rally_api/rally_object.rb', line 14

def type
  @type
end

#warningsObject (readonly)

Returns the value of attribute warnings.



14
15
16
# File 'lib/rally_api/rally_object.rb', line 14

def warnings
  @warnings
end

Instance Method Details

#<=>(object) ⇒ Object



101
102
103
# File 'lib/rally_api/rally_object.rb', line 101

def <=>(object)
  self.ref <=> object.ref
end

#==(object) ⇒ Object



91
92
93
94
95
# File 'lib/rally_api/rally_object.rb', line 91

def ==(object)
  object.equal?(self) ||
      (object.instance_of?(self.class) &&
          object.ref == ref)
end

#[](field_name) ⇒ Object



42
43
44
# File 'lib/rally_api/rally_object.rb', line 42

def [](field_name)
  get_val(field_name.to_s)
end

#[]=(field_name, value) ⇒ Object



46
47
48
49
# File 'lib/rally_api/rally_object.rb', line 46

def []=(field_name, value)
  return if field_name.nil?
  rally_object[field_name.to_s] = value
end

#camel_case_word(sym) ⇒ Object



65
66
67
# File 'lib/rally_api/rally_object.rb', line 65

def camel_case_word(sym)
  RallyAPI::RallyRestJson.camel_case_word(sym)
end

#deleteObject



137
138
139
# File 'lib/rally_api/rally_object.rb', line 137

def delete()
  @rally_rest.delete(rally_object["_ref"])
end

#elementsObject



69
70
71
72
73
74
75
76
77
# File 'lib/rally_api/rally_object.rb', line 69

def elements
  @rally_object.inject({}) do |elements, (key, value)|
    if key.to_s.start_with?("c_")
      key = key.to_s[2..-1]
    end
    elements[underscore(key).to_sym] = value
    elements
  end
end

#eql?(object) ⇒ Boolean

Returns:

  • (Boolean)


97
98
99
# File 'lib/rally_api/rally_object.rb', line 97

def eql?(object)
  self == (object)
end

#getrefObject



57
58
59
# File 'lib/rally_api/rally_object.rb', line 57

def getref
  ref
end

#hashObject



105
106
107
# File 'lib/rally_api/rally_object.rb', line 105

def hash
  self.ref.hash
end

#nameObject



109
110
111
# File 'lib/rally_api/rally_object.rb', line 109

def name
  get_val('Name') || get_val('_refObjectName')
end

#oidObject



79
80
81
# File 'lib/rally_api/rally_object.rb', line 79

def oid
  object_i_d
end

#passwordObject



87
88
89
# File 'lib/rally_api/rally_object.rb', line 87

def password
  @rally_rest.rally_password
end

#rank_above(relative_rally_object) ⇒ Object



117
118
119
120
# File 'lib/rally_api/rally_object.rb', line 117

def rank_above(relative_rally_object)
  @rally_object = @rally_rest.rank_above(rally_object["_ref"],relative_rally_object["_ref"]).rally_object
  self
end

#rank_below(relative_rally_object) ⇒ Object



122
123
124
125
# File 'lib/rally_api/rally_object.rb', line 122

def rank_below(relative_rally_object)
  @rally_object = @rally_rest.rank_below(rally_object["_ref"],relative_rally_object["_ref"]).rally_object
  self
end

#rank_to_bottomObject



127
128
129
130
# File 'lib/rally_api/rally_object.rb', line 127

def rank_to_bottom
  @rally_object = @rally_rest.rank_to(rally_object["_ref"], "BOTTOM").rally_object
  self
end

#rank_to_topObject



132
133
134
135
# File 'lib/rally_api/rally_object.rb', line 132

def rank_to_top
  @rally_object = @rally_rest.rank_to(rally_object["_ref"], "TOP").rally_object
  self
end

#read(params = {}) ⇒ Object Also known as: refresh



51
52
53
54
# File 'lib/rally_api/rally_object.rb', line 51

def read(params = {})
  @rally_object = @rally_rest.reread(rally_object, params)
  self
end

#refObject



61
62
63
# File 'lib/rally_api/rally_object.rb', line 61

def ref
  rally_object["_ref"]
end

#to_json(*args) ⇒ Object



38
39
40
# File 'lib/rally_api/rally_object.rb', line 38

def to_json(*args)
  rally_object.to_json
end

#to_qObject



113
114
115
# File 'lib/rally_api/rally_object.rb', line 113

def to_q
  @rally_object["_ref"]
end

#to_s(*args) ⇒ Object



34
35
36
# File 'lib/rally_api/rally_object.rb', line 34

def to_s(*args)
  get_val('Name') || get_val('_refObjectName')
end

#update(fields, params = {}) ⇒ Object



28
29
30
31
32
# File 'lib/rally_api/rally_object.rb', line 28

def update(fields, params = {})
  oid = @rally_object["ObjectID"] || @rally_object["_ref"].split("/")[-1].split(".")[0]
  @rally_object = @rally_rest.update(@type.downcase.to_sym, oid, fields, params).rally_object
  self
end

#usernameObject



83
84
85
# File 'lib/rally_api/rally_object.rb', line 83

def username
  user_name || 
end