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



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

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



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 8

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


47
48
49
50
51
52
53
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 47

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


55
56
57
58
59
60
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 55

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

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


62
63
64
65
66
67
68
69
70
71
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 62

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

  puts ""
  if info[:status] == :expired
    puts "WARNING: License has expired. Renew at https://www.shakacode.com/react-on-rails-pro/"
  else
    puts "WARNING: License expires within 30 days. Renew at https://www.shakacode.com/react-on-rails-pro/"
  end
end


39
40
41
42
43
44
45
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 39

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


30
31
32
33
34
35
36
37
# File 'lib/react_on_rails_pro/license_task_formatter.rb', line 30

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