Module: Heya::License::Boundary

Defined in:
lib/heya/license/boundary.rb

Constant Summary collapse

BOUNDARY_START =
/(\A|\r?\n)-*BEGIN .+? LICENSE-*\r?\n/.freeze
BOUNDARY_END =
/\r?\n-*END .+? LICENSE-*(\r?\n|\z)/.freeze

Class Method Summary collapse

Class Method Details

.add_boundary(data, product_name) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/heya/license/boundary.rb', line 32

def add_boundary(data, product_name)
  data = remove_boundary(data)

  product_name.upcase!

  pad = lambda do |message, width|
    total_padding = [width - message.length, 0].max

    padding = total_padding / 2.0
    [
      "-" * padding.ceil,
      message,
      "-" * padding.floor
    ].join
  end

  [
    pad.call("BEGIN #{product_name} LICENSE", 60),
    data.strip,
    pad.call("END #{product_name} LICENSE", 60)
  ].join("\n")
end

.remove_boundary(data) ⇒ Object



55
56
57
58
59
60
# File 'lib/heya/license/boundary.rb', line 55

def remove_boundary(data)
  after_boundary = data.split(BOUNDARY_START).last
  in_boundary = after_boundary.split(BOUNDARY_END).first

  in_boundary
end