Module: HackTree::Tools

Defined in:
lib/hack_tree/tools.rb

Class Method Summary collapse

Class Method Details

.compute_name_align(names, limit) ⇒ Object

compute_name_align([“alfa”, “bravo”], 8..16) # => 8



4
5
6
7
8
9
10
11
# File 'lib/hack_tree/tools.rb', line 4

def self.compute_name_align(names, limit)
  (v = eval(vn = "names")).is_a?(klass = Array) or raise ArgumentError, "`#{vn}` must be #{klass}, #{v.class} (#{v.inspect}) given"
  (v = eval(vn = "limit")).is_a?(klass = Range) or raise ArgumentError, "`#{vn}` must be #{klass}, #{v.class} (#{v.inspect}) given"

  computed = names.map(&:size).select {|n| n <= limit.max}.max.to_i

  [limit.min, computed].max
end

.format_node_name(node, name = nil) ⇒ Object

format_node_name(node) # => “hello”

format_node_name(node, "yo")    # => "yo"


15
16
17
18
19
20
21
22
23
24
# File 'lib/hack_tree/tools.rb', line 15

def self.format_node_name(node, name = nil)
  case node
  when Node::Group
    ::HackTree.conf.group_format
  when Node::Hack
    ::HackTree.conf.hack_format
  else
    raise ArgumentError, "Unknown node class #{node.class}, SE" 
  end % (name || node.name).to_s
end