Class: ActsAsIcontact::SegmentCriteria

Inherits:
Subresource show all
Defined in:
lib/acts_as_icontact/resources/segment_criteria.rb

Overview

The list of criteria attached to every Segment. Because of this intrinsic association, the usual #find methods don’t work; this collection must be obtained using the individual segment’s #criteria method.

Unlike other subresources, SegmentCriteria can be created, modified, and saved.

Instance Attribute Summary

Attributes inherited from Subresource

#parent

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Subresource

cannot_query, #initialize, scoped_find

Methods inherited from Resource

#==, all, #connection, #error, #errors, find, find_by_id, first, #initialize, #inspect, #method_missing, #new_record?, #property_names, #save, #save!

Constructor Details

This class inherits a constructor from ActsAsIcontact::Subresource

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class ActsAsIcontact::Resource

Class Method Details

.collection_nameObject

:nodoc:



19
20
21
# File 'lib/acts_as_icontact/resources/segment_criteria.rb', line 19

def self.collection_name  # :nodoc:
  "criteria"
end

.required_on_createObject

fieldName, operator, and values are required



10
11
12
# File 'lib/acts_as_icontact/resources/segment_criteria.rb', line 10

def self.required_on_create
  super + %w(fieldName operator values)
end

.resource_nameObject

Looks like ‘criteria’ is just a bit too strange for ActiveSupport to know singulars and plurals…



15
16
17
# File 'lib/acts_as_icontact/resources/segment_criteria.rb', line 15

def self.resource_name  # :nodoc:
  "criterion"
end

Instance Method Details

#idObject

Uses criterionId as its ID.



24
25
26
# File 'lib/acts_as_icontact/resources/segment_criteria.rb', line 24

def id
  properties["criterionId"]
end

#validate_on_save(fields) ⇒ Object

operator must be one: eq, lt, lte, gt, gte, bet, notcontains, contains



30
31
32
33
# File 'lib/acts_as_icontact/resources/segment_criteria.rb', line 30

def validate_on_save(fields)
  operators = %w(eq lt lte gt gte bet notcontains contains)
  raise ActsAsIcontact::ValidationError, "operator must be one of: " + operators.join(', ') unless operators.include?(fields["operator"])
end