Class: InOrder::Aux::PolyKey

Inherits:
Object
  • Object
show all
Defined in:
app/models/in_order/aux/poly_key.rb

Constant Summary collapse

FIELD_NAMES =
%i(type id)
SPLITTER_RE =
%r([-,:/^\\|\s])

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(candidate, id = nil, name: nil, default_name: name) ⇒ PolyKey

Returns a new instance of PolyKey.



11
12
13
14
15
16
17
# File 'app/models/in_order/aux/poly_key.rb', line 11

def initialize(candidate, id=nil, name: nil, default_name: name)
  self.default_name = default_name

  candidate = [ candidate, id ] if id

  assign candidate
end

Instance Attribute Details

#default_nameObject

Returns the value of attribute default_name.



9
10
11
# File 'app/models/in_order/aux/poly_key.rb', line 9

def default_name
  @default_name
end

#idObject

Returns the value of attribute id.



9
10
11
# File 'app/models/in_order/aux/poly_key.rb', line 9

def id
  @id
end

#typeObject

Returns the value of attribute type.



9
10
11
# File 'app/models/in_order/aux/poly_key.rb', line 9

def type
  @type
end

Instance Method Details

#set(type = nil, _id = nil, id: _id) ⇒ Object

alias to_named params to_params_by_name



57
58
59
60
61
62
63
# File 'app/models/in_order/aux/poly_key.rb', line 57

def set(type=nil, _id=nil, id: _id)
  self.type = type.to_s if type

  self.id = id

  self
end

#to_aObject



25
26
27
# File 'app/models/in_order/aux/poly_key.rb', line 25

def to_a
  [ type, id ]
end

#to_bare_paramsObject Also known as: to_short_params



34
35
36
# File 'app/models/in_order/aux/poly_key.rb', line 34

def to_bare_params
  to_h FIELD_NAMES
end

#to_h(field_names = full_names) ⇒ Object Also known as: to_params



29
30
31
# File 'app/models/in_order/aux/poly_key.rb', line 29

def to_h(field_names=full_names)
  field_names.zip(to_a).to_h
end

#to_id_key_paramsObject

REST key params



40
41
42
# File 'app/models/in_order/aux/poly_key.rb', line 40

def to_id_key_params
  { id: to_s }
end

#to_id_paramsObject



43
44
45
# File 'app/models/in_order/aux/poly_key.rb', line 43

def to_id_params
  { id: id }
end

#to_params_by_name(key_name = nil, default: true) ⇒ Object



50
51
52
53
54
# File 'app/models/in_order/aux/poly_key.rb', line 50

def to_params_by_name(key_name=nil, default: true)
  key_name ||= name_prefix

  { key_name.to_sym => to_bare_params }
end

#to_s(delim = '-') ⇒ Object Also known as: to_param, to_key



19
20
21
# File 'app/models/in_order/aux/poly_key.rb', line 19

def to_s(delim='-')
  "#{type}#{delim}#{id}"
end

#to_type_paramsObject



46
47
48
# File 'app/models/in_order/aux/poly_key.rb', line 46

def to_type_params
  { type: type }
end

#valid?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'app/models/in_order/aux/poly_key.rb', line 65

def valid?
  type.present? and id.present?
end