lib/jiralicious/issue/fields.rb in jiralicious-0.4.3 vs lib/jiralicious/issue/fields.rb in jiralicious-0.5.0
- old
+ new
@@ -1,197 +1,197 @@
-# encoding: utf-8
-module Jiralicious
- class Issue
- ##
- # The Fields class provides functionality to the Issue
- # class that allows it to easily update or create issues.
- # The class retains the original and the proposed
- # information which could be used for cross validation
- # prior to posting an update.
- #
- class Fields
- # The fields that will be updated or created
- attr_accessor :fields_update
- # The current fields when a ticket was loaded
- attr_accessor :fields_current
-
- ##
- # Initialization Method
- #
- # [Arguments]
- # :fc (optional) fields to load
- #
- def initialize(fc = nil)
- @fields_current = (fc == nil) ? Hash.new : fc
- @fields_update = Hash.new
- end
-
- ##
- # Returns the count of fields being updated.
- #
- def count
- return @fields_update.count
- end
-
- ##
- # Returns the length of fields being updated.
- #
- def length
- return @fields_update.length
- end
-
- ##
- # Adds a comment to the field list
- #
- # [Arguments]
- # :comment (required) comment text
- #
- def add_comment(comment)
- if !(@fields_update['comment'].is_a? Array)
- @fields_update['comment'] = Array.new
- end
- @fields_update['comment'].push({"add" => {"body" => comment}})
- end
-
- ##
- # Appends the current String with the provided value
- #
- # [Arguments]
- # :field (required) field to update
- #
- # :value (required) value text
- #
- def append_s(field, value)
- if (@fields_update[field] == nil)
- @fields_update[field] = @fields_current[field] unless @fields_current.nil?
- @fields_update[field] ||= ""
- end
- @fields_update[field] += " " + value.to_s
- end
-
- ##
- # Appends the current Array with the provided value
- #
- # [Arguments]
- # :field (required) field to update
- #
- # :value (required) value array
- #
- def append_a(field, value)
- @fields_update[field] = @fields_current[field] if (@fields_update[field] == nil)
- @fields_update[field] = Array.new if !(@fields_update[field].is_a? Array)
- if value.is_a? String
- @fields_update[field].push(value) unless @fields_update[field].include? value
- else
- @fields_update[field] |= value
- end
- end
-
- ##
- # Appends the current Hash with the provided value
- #
- # [Arguments]
- # :field (required) field to update
- #
- # :value (required) value hash
- #
- def append_h(field, hash)
- @fields_update[field] = @fields_current[field] if (@fields_update[field] == nil)
- @fields_update[field] = Hash.new if !(@fields_update[field].is_a? Hash)
- @fields_update[field].merge!(hash)
- end
-
- ##
- # Merges current to updated to allow for a forced
- # update request to process.
- #
- def force_update
- @fields_update.merge!(@fields_current)
- end
-
- ##
- # Sets the field key with the provided value.
- #
- # [Arguments]
- # :field (required) field to update
- #
- # :value (required) value to add
- #
- def set(field, value)
- @fields_update[field] = value
- end
-
- ##
- # Sets the field with a name hash.
- # This is necessary for some objects in Jira.
- #
- # [Arguments]
- # :field (required) field to update
- #
- # :value (required) value text
- #
- def set_name(field, value)
- @fields_update[field] = {"name" => value}
- end
-
- ##
- # Sets the field with a id hash.
- # This is necessary for some objects in Jira.
- #
- # [Arguments]
- # :field (required) field to update
- #
- # :value (required) value text/int
- #
- def set_id(field, value)
- @fields_update[field] = {"id" => value}
- end
- ##
- # Fills the fields_current object with the provided Hash.
- #
- # [Arguments]
- # :fc (optional) fields to load
- #
- def set_current(fc)
- @fields_current = fc if fc.type == Hash
- end
-
- ##
- # Returns the current fields object
- #
- def current
- return @fields_current
- end
-
- ##
- # Returns the updated fields object
- #
- def updated
- return @fields_update
- end
-
- ##
- # Formats the fields_update object correctly
- # for Jira to perform an update request.
- #
- def format_for_update
- up = Hash.new
- @fields_update.each do |k, v|
- if k == "comment"
- up[k] = v
- else
- up[k] = [{"set" => v}]
- end
- end
- return {"update" => up}
- end
-
- ##
- # Formats the fields_update object correctly
- # for Jira to perform an create request.
- #
- def format_for_create
- return {"fields" => @fields_update}
- end
- end
- end
-end
+# encoding: utf-8
+module Jiralicious
+ class Issue
+ ##
+ # The Fields class provides functionality to the Issue
+ # class that allows it to easily update or create issues.
+ # The class retains the original and the proposed
+ # information which could be used for cross validation
+ # prior to posting an update.
+ #
+ class Fields
+ # The fields that will be updated or created
+ attr_accessor :fields_update
+ # The current fields when a ticket was loaded
+ attr_accessor :fields_current
+
+ ##
+ # Initialization Method
+ #
+ # [Arguments]
+ # :fc (optional) fields to load
+ #
+ def initialize(fc = nil)
+ @fields_current = (fc == nil) ? Hash.new : fc
+ @fields_update = Hash.new
+ end
+
+ ##
+ # Returns the count of fields being updated.
+ #
+ def count
+ return @fields_update.count
+ end
+
+ ##
+ # Returns the length of fields being updated.
+ #
+ def length
+ return @fields_update.length
+ end
+
+ ##
+ # Adds a comment to the field list
+ #
+ # [Arguments]
+ # :comment (required) comment text
+ #
+ def add_comment(comment)
+ if !(@fields_update['comment'].is_a? Array)
+ @fields_update['comment'] = Array.new
+ end
+ @fields_update['comment'].push({"add" => {"body" => comment}})
+ end
+
+ ##
+ # Appends the current String with the provided value
+ #
+ # [Arguments]
+ # :field (required) field to update
+ #
+ # :value (required) value text
+ #
+ def append_s(field, value)
+ if (@fields_update[field] == nil)
+ @fields_update[field] = @fields_current[field] unless @fields_current.nil?
+ @fields_update[field] ||= ""
+ end
+ @fields_update[field] += " " + value.to_s
+ end
+
+ ##
+ # Appends the current Array with the provided value
+ #
+ # [Arguments]
+ # :field (required) field to update
+ #
+ # :value (required) value array
+ #
+ def append_a(field, value)
+ @fields_update[field] = @fields_current[field] if (@fields_update[field] == nil)
+ @fields_update[field] = Array.new if !(@fields_update[field].is_a? Array)
+ if value.is_a? String
+ @fields_update[field].push(value) unless @fields_update[field].include? value
+ else
+ @fields_update[field] |= value
+ end
+ end
+
+ ##
+ # Appends the current Hash with the provided value
+ #
+ # [Arguments]
+ # :field (required) field to update
+ #
+ # :value (required) value hash
+ #
+ def append_h(field, hash)
+ @fields_update[field] = @fields_current[field] if (@fields_update[field] == nil)
+ @fields_update[field] = Hash.new if !(@fields_update[field].is_a? Hash)
+ @fields_update[field].merge!(hash)
+ end
+
+ ##
+ # Merges current to updated to allow for a forced
+ # update request to process.
+ #
+ def force_update
+ @fields_update.merge!(@fields_current)
+ end
+
+ ##
+ # Sets the field key with the provided value.
+ #
+ # [Arguments]
+ # :field (required) field to update
+ #
+ # :value (required) value to add
+ #
+ def set(field, value)
+ @fields_update[field] = value
+ end
+
+ ##
+ # Sets the field with a name hash.
+ # This is necessary for some objects in Jira.
+ #
+ # [Arguments]
+ # :field (required) field to update
+ #
+ # :value (required) value text
+ #
+ def set_name(field, value)
+ @fields_update[field] = {"name" => value}
+ end
+
+ ##
+ # Sets the field with a id hash.
+ # This is necessary for some objects in Jira.
+ #
+ # [Arguments]
+ # :field (required) field to update
+ #
+ # :value (required) value text/int
+ #
+ def set_id(field, value)
+ @fields_update[field] = {"id" => value}
+ end
+ ##
+ # Fills the fields_current object with the provided Hash.
+ #
+ # [Arguments]
+ # :fc (optional) fields to load
+ #
+ def set_current(fc)
+ @fields_current = fc if fc.type == Hash
+ end
+
+ ##
+ # Returns the current fields object
+ #
+ def current
+ return @fields_current
+ end
+
+ ##
+ # Returns the updated fields object
+ #
+ def updated
+ return @fields_update
+ end
+
+ ##
+ # Formats the fields_update object correctly
+ # for Jira to perform an update request.
+ #
+ def format_for_update
+ up = Hash.new
+ @fields_update.each do |k, v|
+ if k == "comment"
+ up[k] = v
+ else
+ up[k] = [{"set" => v}]
+ end
+ end
+ return {"update" => up}
+ end
+
+ ##
+ # Formats the fields_update object correctly
+ # for Jira to perform an create request.
+ #
+ def format_for_create
+ return {"fields" => @fields_update}
+ end
+ end
+ end
+end