Module: Cardname::Parts

Included in:
Cardname
Defined in:
cardname/lib/cardname/parts.rb

Overview

naming conventions: methods that end with _name return name objects the same methods without _name return strings

Instance Method Summary collapse

Instance Method Details

#leftObject



59
60
61
# File 'cardname/lib/cardname/parts.rb', line 59

def left
  left_name&.s
end

#left_keyObject



63
64
65
# File 'cardname/lib/cardname/parts.rb', line 63

def left_key
  left_name&.key
end

#left_nameObject



55
56
57
# File 'cardname/lib/cardname/parts.rb', line 55

def left_name
  simple? ? nil : self.class.new(part_names[0..-2])
end

#parent_keysObject



51
52
53
# File 'cardname/lib/cardname/parts.rb', line 51

def parent_keys
  parent_names.map(&:key)
end

#parent_namesObject



43
44
45
# File 'cardname/lib/cardname/parts.rb', line 43

def parent_names
  simple? ? [] : [left_name, right_name]
end

#parentsObject



47
48
49
# File 'cardname/lib/cardname/parts.rb', line 47

def parents
  parent_names.map(&:s)
end

#part_keysObject



15
16
17
# File 'cardname/lib/cardname/parts.rb', line 15

def part_keys
  part_names.map(&:key)
end

#part_namesObject



6
7
8
# File 'cardname/lib/cardname/parts.rb', line 6

def part_names
  @part_names ||= generate_part_names
end

#partsObject Also known as: to_a



10
11
12
# File 'cardname/lib/cardname/parts.rb', line 10

def parts
  part_names.map(&:s)
end

#rightObject



71
72
73
# File 'cardname/lib/cardname/parts.rb', line 71

def right
  right_name&.s
end

#right_keyObject



75
76
77
# File 'cardname/lib/cardname/parts.rb', line 75

def right_key
  right_name&.key
end

#right_nameObject



67
68
69
# File 'cardname/lib/cardname/parts.rb', line 67

def right_name
  simple? ? nil : part_names[-1]
end

#tagObject



35
36
37
# File 'cardname/lib/cardname/parts.rb', line 35

def tag
  tag_name.s
end

#tag_keyObject



39
40
41
# File 'cardname/lib/cardname/parts.rb', line 39

def tag_key
  tag_name.key
end

#tag_nameObject



31
32
33
# File 'cardname/lib/cardname/parts.rb', line 31

def tag_name
  simple? ? self : right_name
end

#trunkObject



23
24
25
# File 'cardname/lib/cardname/parts.rb', line 23

def trunk
  trunk_name.s
end

#trunk_keyObject



27
28
29
# File 'cardname/lib/cardname/parts.rb', line 27

def trunk_key
  trunk_name.key
end

#trunk_nameObject



19
20
21
# File 'cardname/lib/cardname/parts.rb', line 19

def trunk_name
  simple? ? self : left_name
end