Class: Ehpt::CreateStoryAttributes
- Defined in:
- lib/ehpt/create_story_attributes.rb
Constant Summary collapse
- ARRAY_TYPE_ATTRIBUTES =
%w[ labels tasks pull_requests branches blockers comments reviews ]- INT_ARRAY_TYPE_ATTRIBUTES =
%w[ owner_ids label_ids follower_ids ]- INT_TYPE_ATTRIBUTES =
%w[ project_id requested_by_id before_id after_id integration_id ]- FLOAT_TYPE_ATTRIBUES =
%w[ estimate ]
Instance Attribute Summary collapse
-
#row ⇒ Object
readonly
Returns the value of attribute row.
Attributes inherited from Base
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(row) ⇒ CreateStoryAttributes
constructor
A new instance of CreateStoryAttributes.
Methods inherited from Base
#add_error, #add_warning, call, #error?, #success?, #warning?
Constructor Details
#initialize(row) ⇒ CreateStoryAttributes
Returns a new instance of CreateStoryAttributes.
13 14 15 16 |
# File 'lib/ehpt/create_story_attributes.rb', line 13 def initialize(row) @row = row super end |
Instance Attribute Details
#row ⇒ Object (readonly)
Returns the value of attribute row.
3 4 5 |
# File 'lib/ehpt/create_story_attributes.rb', line 3 def row @row end |
Instance Method Details
#call ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/ehpt/create_story_attributes.rb', line 18 def call story_attrs = row.to_h.compact story_attrs.each do |key, value| story_attrs[key] = value.to_i if INT_TYPE_ATTRIBUTES.include?(key) story_attrs[key] = value.to_f if FLOAT_TYPE_ATTRIBUES.include?(key) story_attrs[key] = value.split(',') if ARRAY_TYPE_ATTRIBUTES.include?(key) story_attrs[key] = value.split(',').map(&:to_i) if INT_ARRAY_TYPE_ATTRIBUTES.include?(key) end if story_attrs.has_key?('requested_by') user_id = get_user_id_from(story_attrs.delete('requested_by')) story_attrs['requested_by_id'] = user_id unless user_id.nil? end if story_attrs.has_key?('owners') owners = story_attrs.delete('owners').split(',') owner_ids = owners.map { |owner| get_user_id_from(owner.strip) }.compact story_attrs['owner_ids'] = owner_ids unless owner_ids.empty? end @data = story_attrs rescue StandardError => e add_error({ row: row.to_h, warnings: e. }) end |