Module: ReactOnRailsPro::LicenseTaskFormatter

Defined in:
lib/react_on_rails_pro/license_task_formatter.rb

Overview

Formats license verification output for the verify_license rake task.

Class Method Summary collapse

Class Method Details

.add_expiration_fields(result, info) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 34

def add_expiration_fields(result, info)
  return result unless info[:expiration]

  days_remaining = ((info[:expiration] - Time.now) / 86_400).ceil
  result[:days_remaining] = days_remaining
  result[:renewal_required] = info[:status] == :expired || days_remaining <= 30
  result
end

.build_result(info) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 21

def build_result(info)
  result = {
    status: info[:status].to_s,
    organization: info[:org],
    plan: info[:plan],
    expiration: info[:expiration]&.iso8601,
    attribution_required: info[:attribution_required],
    days_remaining: nil,
    renewal_required: false
  }
  add_expiration_fields(result, info)
end


60
61
62
63
64
65
66
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 60

def print_details(result, info)
  puts "Organization:  #{info[:org] || '(unknown)'}"
  puts "Plan:          #{info[:plan] || '(unknown)'}"
  print_expiration(result, info)
  puts "Attribution:   #{info[:attribution_required] ? 'required' : 'not required'}"
  print_renewal_warning(result, info)
end


68
69
70
71
72
73
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 68

def print_expiration(result, info)
  return unless info[:expiration]

  puts "Expiration:    #{info[:expiration].strftime('%Y-%m-%d')}"
  puts "Days left:     #{result[:days_remaining]}"
end


75
76
77
78
79
80
81
82
83
84
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 75

def print_renewal_warning(result, info)
  return unless result[:renewal_required]

  puts ""
  if info[:status] == :expired
    puts "WARNING: License has expired. Renew at https://pro.reactonrails.com/"
  else
    puts "WARNING: License expires within 30 days. Renew at https://pro.reactonrails.com/"
  end
end


52
53
54
55
56
57
58
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 52

def print_status_line(status)
  puts "Status:        #{status.to_s.upcase}"
  return unless status == :missing

  puts ""
  puts "No license found. Set REACT_ON_RAILS_PRO_LICENSE"
end


43
44
45
46
47
48
49
50
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 43

def print_text(result, info)
  puts "React on Rails Pro — License Status"
  puts "=" * 40
  print_status_line(info[:status])
  return if info[:status] == :missing

  print_details(result, info)
end