Class: RDStation::Builder::Field
- Inherits:
-
Object
- Object
- RDStation::Builder::Field
- Defined in:
- lib/rdstation/builder/field.rb
Overview
Constant Summary collapse
- DATA_TYPES =
%w(STRING INTEGER BOOLEAN STRING[]).freeze
- PRESENTATION_TYPES =
%w[TEXT_INPUT TEXT_AREA URL_INPUT PHONE_INPUT EMAIL_INPUT CHECK_BOX NUMBER_INPUT COMBO_BOX RADIO_BUTTON MULTIPLE_CHOICE].freeze
- REQUIRED_FIELDS =
%w[api_identifier data_type presentation_type label name].freeze
Instance Method Summary collapse
- #build ⇒ Object
- #data_type(data_type) ⇒ Object
-
#initialize(api_identifier) ⇒ Field
constructor
A new instance of Field.
- #label(language, label) ⇒ Object
- #name(language, name) ⇒ Object
- #presentation_type(presentation_type) ⇒ Object
- #valid_options(valid_options) ⇒ Object
- #validation_rules(validation_rules) ⇒ Object
Constructor Details
#initialize(api_identifier) ⇒ Field
Returns a new instance of Field.
14 15 16 17 18 19 20 21 22 |
# File 'lib/rdstation/builder/field.rb', line 14 def initialize(api_identifier) raise 'api_identifier required' unless api_identifier unless valid_identifier(api_identifier) raise 'api_identifier is not in a valid format, need start with "cf_"' end @values = {} @values['api_identifier'] = api_identifier end |
Instance Method Details
#build ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/rdstation/builder/field.rb', line 54 def build empty_fields = REQUIRED_FIELDS.select { |field| @values[field].nil? } unless empty_fields.empty? raise "Required fields are missing - #{empty_fields}" end @values end |
#data_type(data_type) ⇒ Object
24 25 26 27 28 |
# File 'lib/rdstation/builder/field.rb', line 24 def data_type(data_type) raise "Not valid data_type - #{DATA_TYPES}" unless DATA_TYPES.include? data_type @values['data_type'] = data_type end |
#label(language, label) ⇒ Object
38 39 40 |
# File 'lib/rdstation/builder/field.rb', line 38 def label(language, label) @values['label'] = { language.to_s => label } end |
#name(language, name) ⇒ Object
42 43 44 |
# File 'lib/rdstation/builder/field.rb', line 42 def name(language, name) @values['name'] = { language.to_s => name } end |
#presentation_type(presentation_type) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/rdstation/builder/field.rb', line 30 def presentation_type(presentation_type) unless PRESENTATION_TYPES.include? presentation_type raise "Not valid presentation_type - #{PRESENTATION_TYPES}" end @values['presentation_type'] = presentation_type end |
#valid_options(valid_options) ⇒ Object
50 51 52 |
# File 'lib/rdstation/builder/field.rb', line 50 def () @values['valid_options'] = end |
#validation_rules(validation_rules) ⇒ Object
46 47 48 |
# File 'lib/rdstation/builder/field.rb', line 46 def validation_rules(validation_rules) @values['validation_rules'] = validation_rules end |