Class: Foobara::DomainMapper

Inherits:
Object
  • Object
show all
Includes:
CommandPatternImplementation
Defined in:
foobara-0.6.1/projects/domain_mapper/src/domain_mapper.rb,
foobara-0.6.1/projects/domain_mapper/lib/foobara/domain_mapper.rb

Overview

NOTE: If you depend_on a domain mapper in a command, then you need to depend on all domain mappers that that command uses. Or you can just exclude all of them in which case Foobara won't enforce explicit depends_on of domain mappers.

Constant Summary

Constants included from TruncatedInspect

TruncatedInspect::MAX_LENGTH

Class Method Summary collapse

Instance Method Summary collapse

Methods included from TruncatedInspect

#inspect, truncating

Methods included from Concern

foobara_class_methods_module_for, foobara_concern?, included

Class Method Details

.applicable?(from_value, to_value) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'projects/domain_mapper/src/domain_mapper.rb', line 43

def applicable?(from_value, to_value)
  matches?(from_type, from_value) && matches?(to_type, to_value)
end

.applicable_score(from_value, to_value) ⇒ Object



51
52
53
# File 'projects/domain_mapper/src/domain_mapper.rb', line 51

def applicable_score(from_value, to_value)
  [*match_score(from_type, from_value), *match_score(to_type, to_value)].sum
end

.foobara_on_registerObject



9
10
11
# File 'projects/domain_mapper/src/domain_mapper.rb', line 9

def foobara_on_register
  foobara_domain.new_mapper_registered!
end

.fromObject

A bit hacky because Command only supports attributes inputs at the moment, ugg.



22
23
24
25
26
27
28
# File 'projects/domain_mapper/src/domain_mapper.rb', line 22

def from(...)
  from_type = args_to_type(...)

  inputs do
    from from_type, :required
  end
end

.from_typeObject



35
36
37
# File 'projects/domain_mapper/src/domain_mapper.rb', line 35

def from_type
  inputs_type.element_types[:from]
end

.install!Object



6
7
8
9
# File 'projects/domain_mapper/lib/foobara/domain_mapper.rb', line 6

def install!
  Namespace.global.foobara_add_category_for_subclass_of(:domain_mapper, self)
  Domain::DomainModuleExtension.include Foobara::DomainMapperLookups
end

.map(value) ⇒ Object



13
14
15
# File 'projects/domain_mapper/src/domain_mapper.rb', line 13

def map(value)
  new(from: value).run
end

.map!(value) ⇒ Object



17
18
19
# File 'projects/domain_mapper/src/domain_mapper.rb', line 17

def map!(value)
  new(from: value).run!
end

.matches?(type_indicator, value) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'projects/domain_mapper/src/domain_mapper.rb', line 47

def matches?(type_indicator, value)
  match_score(type_indicator, value)&.>(0)
end

.toObject



30
31
32
33
# File 'projects/domain_mapper/src/domain_mapper.rb', line 30

def to(...)
  result_type = args_to_type(...)
  result(result_type)
end

.to_typeObject



39
40
41
# File 'projects/domain_mapper/src/domain_mapper.rb', line 39

def to_type
  result_type
end

Instance Method Details

#executeObject



115
116
117
# File 'projects/domain_mapper/src/domain_mapper.rb', line 115

def execute
  map
end

#fromObject



119
120
121
# File 'projects/domain_mapper/src/domain_mapper.rb', line 119

def from
  inputs[:from]
end

#mapObject

Raises:

  • (NotImplementedError)


123
124
125
126
127
# File 'projects/domain_mapper/src/domain_mapper.rb', line 123

def map
  # simplecov:disable
  raise NotImplementedError
  # simplecov:enable
end