Module: Basketball::ValueObjectDSL

Included in:
ValueObject
Defined in:
lib/basketball/value_object_dsl.rb

Overview

Class-level methods that extend core Ruby attr_* methods.

Instance Method Summary collapse

Instance Method Details

#all_sorted_value_keysObject



16
17
18
# File 'lib/basketball/value_object_dsl.rb', line 16

def all_sorted_value_keys
  all_value_keys.sort
end

#all_value_keysObject



6
7
8
9
10
11
12
13
14
# File 'lib/basketball/value_object_dsl.rb', line 6

def all_value_keys
  @all_value_keys ||= ancestors.flat_map do |ancestor|
    if ancestor < Basketball::ValueObject
      ancestor.value_keys
    else
      []
    end
  end.uniq.sort
end

#value_keysObject



20
21
22
# File 'lib/basketball/value_object_dsl.rb', line 20

def value_keys
  @value_keys ||= []
end

#value_reader(*keys) ⇒ Object



24
25
26
27
28
# File 'lib/basketball/value_object_dsl.rb', line 24

def value_reader(*keys)
  keys.each { |k| value_keys << k.to_sym }

  attr_reader(*keys)
end