Module: Springcm::Helpers
- Defined in:
- lib/springcm-sdk/helpers.rb
Class Method Summary collapse
-
.deserialize_field(field) ⇒ Object
Deserialize a SpringCM attribute value.
- .deserialize_value(type, value) ⇒ Object
- .serialize_field(field_config, value) ⇒ Object
- .serialize_value(type, value) ⇒ Object
- .validate_access!(access) ⇒ Object
-
.validate_offset_limit!(offset, limit) ⇒ Object
Validate an offset and limit pair.
Class Method Details
.deserialize_field(field) ⇒ Object
Deserialize a SpringCM attribute value
52 53 54 55 56 |
# File 'lib/springcm-sdk/helpers.rb', line 52 def self.deserialize_field(field) type = field["AttributeType"] value = field["Value"] Helpers.deserialize_value(type, value) end |
.deserialize_value(type, value) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/springcm-sdk/helpers.rb', line 37 def self.deserialize_value(type, value) if type == "String" value elsif type == "Number" value.to_i elsif type == "Decimal" value.to_f elsif type == "Date" Date.strptime(value[0..8], "%Y%m%d") else value end end |
.serialize_field(field_config, value) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/springcm-sdk/helpers.rb', line 23 def self.serialize_field(field_config, value) type = field_config.type name = field_config.name repeating = field_config.repeating_attribute? serialized = { "AttributeType" => type, "RepeatingAttribute" => repeating } if !value.nil? serialized["Value"] = Helpers.serialize_value(type, value) end serialized end |
.serialize_value(type, value) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/springcm-sdk/helpers.rb', line 14 def self.serialize_value(type, value) if type == "Date" # Raise if value is not a DateTime serialized_value = value.strftime("%m/%d/%Y") else serialized_value = value.to_s end end |
.validate_access!(access) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/springcm-sdk/helpers.rb', line 58 def self.validate_access!(access) access_types = [ :inherit_from_parent_folder, :no_access, :view, :view_create, :view_edit, :view_edit_delete, :view_edit_delete_set_access ] if !access_types.include?(access) raise ArgumentError.new("Access must be one of: #{access_types.map(&:inspect).join(", ")}") end end |
.validate_offset_limit!(offset, limit) ⇒ Object
Validate an offset and limit pair.
4 5 6 7 8 9 10 11 12 |
# File 'lib/springcm-sdk/helpers.rb', line 4 def self.validate_offset_limit!(offset, limit) if !limit.is_a?(Integer) || limit < 1 || limit > 1000 raise ArgumentError.new("Limit must be an integer between 1 and 1000 (inclusive).") end if !offset.is_a?(Integer) || offset < 0 raise ArgumentError.new("Offset must be a positive, non-zero integer.") end end |