class RallyAPI::RallyObject
RallyObject
is a helper class that wraps the JSON.parsed hash
Attributes
rally_object[R]
type[R]
warnings[R]
Public Class Methods
new(rally_rest, json_hash, warnings = {})
click to toggle source
# 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 @type = "unknown" if json_hash["_type"] && !json_hash["_type"].empty? @type = json_hash["_type"] elsif json_hash["_ref"] && !json_hash["_ref"].empty? @type = json_hash["_ref"].split("/")[-2] end @rally_object = json_hash @rally_rest = rally_rest @warnings = warnings[:warnings] end
Public Instance Methods
<=>(object)
click to toggle source
# File lib/rally_api/rally_object.rb, line 102 def <=>(object) self.ref <=> object.ref end
==(object)
click to toggle source
# File lib/rally_api/rally_object.rb, line 92 def ==(object) object.equal?(self) || (object.instance_of?(self.class) && object.ref == ref) end
[](field_name)
click to toggle source
# File lib/rally_api/rally_object.rb, line 43 def [](field_name) get_val(field_name.to_s) end
[]=(field_name, value)
click to toggle source
# File lib/rally_api/rally_object.rb, line 47 def []=(field_name, value) return if field_name.nil? rally_object[field_name.to_s] = value end
camel_case_word(sym)
click to toggle source
# File lib/rally_api/rally_object.rb, line 66 def camel_case_word(sym) RallyAPI::RallyRestJson.camel_case_word(sym) end
delete()
click to toggle source
# File lib/rally_api/rally_object.rb, line 138 def delete() @rally_rest.delete(rally_object["_ref"]) end
elements()
click to toggle source
# File lib/rally_api/rally_object.rb, line 70 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)
click to toggle source
# File lib/rally_api/rally_object.rb, line 98 def eql?(object) self == (object) end
getref()
click to toggle source
# File lib/rally_api/rally_object.rb, line 58 def getref ref end
hash()
click to toggle source
# File lib/rally_api/rally_object.rb, line 106 def hash self.ref.hash end
name()
click to toggle source
# File lib/rally_api/rally_object.rb, line 110 def name get_val('Name') || get_val('_refObjectName') end
oid()
click to toggle source
# File lib/rally_api/rally_object.rb, line 80 def oid object_i_d end
password()
click to toggle source
# File lib/rally_api/rally_object.rb, line 88 def password @rally_rest.rally_password end
rank_above(relative_rally_object)
click to toggle source
# File lib/rally_api/rally_object.rb, line 118 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)
click to toggle source
# File lib/rally_api/rally_object.rb, line 123 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_bottom()
click to toggle source
# File lib/rally_api/rally_object.rb, line 128 def rank_to_bottom @rally_object = @rally_rest.rank_to(rally_object["_ref"], "BOTTOM").rally_object self end
rank_to_top()
click to toggle source
# File lib/rally_api/rally_object.rb, line 133 def rank_to_top @rally_object = @rally_rest.rank_to(rally_object["_ref"], "TOP").rally_object self end
read(params = {})
click to toggle source
# File lib/rally_api/rally_object.rb, line 52 def read(params = {}) @rally_object = @rally_rest.reread(rally_object, params) self end
Also aliased as: refresh
ref()
click to toggle source
# File lib/rally_api/rally_object.rb, line 62 def ref rally_object["_ref"] end
to_json(*args)
click to toggle source
# File lib/rally_api/rally_object.rb, line 39 def to_json(*args) rally_object.to_json end
to_q()
click to toggle source
# File lib/rally_api/rally_object.rb, line 114 def to_q @rally_object["_ref"] end
to_s(*args)
click to toggle source
# File lib/rally_api/rally_object.rb, line 35 def to_s(*args) get_val('Name') || get_val('_refObjectName') end
update(fields, params = {})
click to toggle source
# File lib/rally_api/rally_object.rb, line 29 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
username()
click to toggle source
# File lib/rally_api/rally_object.rb, line 84 def username user_name || login_name end
Private Instance Methods
get_val(field)
click to toggle source
# File lib/rally_api/rally_object.rb, line 154 def get_val(field) return_val = @rally_object[field] return_val = @rally_object["c_#{field}"] if return_val.nil? if return_val.class == Hash if return_val.has_key?("_ref") return read_association return_val end return RallyObject.new(@rally_rest, return_val) end if return_val.class == Array make_object_array(field) return_val = @rally_object[field] end return_val end
make_object_array(field)
click to toggle source
# File lib/rally_api/rally_object.rb, line 188 def make_object_array(field) object_array = [] @rally_object[field].each do |rally_obj| object_array.push(RallyObject.new(@rally_rest, rally_obj)) end @rally_object[field] = RallyCollection.new(object_array) end
method_missing(sym, *args)
click to toggle source
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
# File lib/rally_api/rally_object.rb, line 146 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
read_association(object_or_collection)
click to toggle source
# File lib/rally_api/rally_object.rb, line 173 def read_association(object_or_collection) return read_collection(object_or_collection) if object_or_collection.has_key? 'Count' return RallyObject.new(@rally_rest, @rally_rest.reread(object_or_collection)) if @rally_rest.rally_rest_api_compat RallyObject.new(@rally_rest, object_or_collection) end
read_collection(collection)
click to toggle source
# File lib/rally_api/rally_object.rb, line 179 def read_collection(collection) results = @rally_rest.read_collection(collection, {:pagesize => 200})["Results"] RallyCollection.new(results.collect { |object| RallyObject.new(@rally_rest, object) }) end
underscore(camel_cased_word)
click to toggle source
# File lib/rally_api/rally_object.rb, line 184 def underscore(camel_cased_word) camel_cased_word.split(/(?=[A-Z])/).join('_').downcase end