Class: FruitToLime::DealClassSettings

Inherits:
ClassSettings show all
Defined in:
lib/fruit_to_lime/model/deal_class_settings.rb

Instance Attribute Summary collapse

Attributes inherited from ClassSettings

#custom_fields

Instance Method Summary collapse

Methods inherited from ClassSettings

#serialize_name, #set_custom_field

Methods included from SerializeHelper

#get_import_rows, #serialize, #serialize_to_file

Constructor Details

#initialize(opt = nil) ⇒ DealClassSettings

Returns a new instance of DealClassSettings.



6
7
8
9
10
11
12
13
14
# File 'lib/fruit_to_lime/model/deal_class_settings.rb', line 6

def initialize(opt = nil)
    @statuses = []
    if opt != nil
        serialize_variables.each do |myattr|
            val = opt[myattr[:id]]
            instance_variable_set("@" + myattr[:id].to_s, val) if val != nil
        end
    end
end

Instance Attribute Details

#statusesObject (readonly)

Returns the value of attribute statuses.



4
5
6
# File 'lib/fruit_to_lime/model/deal_class_settings.rb', line 4

def statuses
  @statuses
end

Instance Method Details

#add_status(obj) ⇒ Object



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
45
46
47
# File 'lib/fruit_to_lime/model/deal_class_settings.rb', line 20

def add_status(obj)
    @statuses = [] if @statuses.nil?

    if obj.is_a?(DealStatusSetting)
        status = obj
    else
        status = DealStatusSetting.new(obj)
    end

    if status.label.nil? || status.label.empty?
        raise InvalidDealStatusError, "Deal status must have a label"
    end

    if status.assessment.nil?
        status.assessment = DealState::NotAnEndState
    end

    index = @statuses.find_index do |deal_status|
        deal_status.same_as?(status)
    end
    if index
        @statuses.delete_at index
    end

    @statuses.push status

    return status
end

#find_status_by_id(id) ⇒ Object



65
66
67
68
69
70
71
# File 'lib/fruit_to_lime/model/deal_class_settings.rb', line 65

def find_status_by_id(id)
    return nil if @statuses.nil?

    return @statuses.find do |status|
        !status.id.nil? && status.id.casecmp(integration_id) == 0
    end
end

#find_status_by_integration_id(integration_id) ⇒ Object



57
58
59
60
61
62
63
# File 'lib/fruit_to_lime/model/deal_class_settings.rb', line 57

def find_status_by_integration_id(integration_id)
    return nil if @statuses.nil? || integration_id.nil?

    return @statuses.find do |status|
        !status.integration_id.nil? && status.integration_id.casecmp(integration_id) == 0
    end
end

#find_status_by_label(label) ⇒ Object



49
50
51
52
53
54
55
# File 'lib/fruit_to_lime/model/deal_class_settings.rb', line 49

def find_status_by_label(label)
    return nil if @statuses.nil? || label.nil?

    return @statuses.find do |status|
        !status.label.nil? && status.label.casecmp(label) == 0
    end
end

#serialize_variablesObject



16
17
18
# File 'lib/fruit_to_lime/model/deal_class_settings.rb', line 16

def serialize_variables
    super() + [{:id => :statuses, :type => :statuses }]
end