Class: Bonobot::Status
- Inherits:
-
Object
- Object
- Bonobot::Status
- Includes:
- Configuration
- Defined in:
- lib/bonobot/status.rb
Constant Summary collapse
- STATUS =
{ up_to_date: "š„³", out_of_date: "š±", unused: "š ", missing: "š¤¬" }.freeze
Class Method Summary collapse
Instance Method Summary collapse
- #display_banner ⇒ Object
- #display_intro ⇒ Object
- #display_outro ⇒ Object
- #display_status ⇒ Object
- #generate ⇒ Object
- #generate_status(status, emoji) ⇒ Object
- #generate_status_file ⇒ Object
-
#initialize(status) ⇒ Status
constructor
A new instance of Status.
- #present(entries) ⇒ Object
- #return_status_code ⇒ Object
- #status_json ⇒ Object
Methods included from Configuration
Constructor Details
#initialize(status) ⇒ Status
Returns a new instance of Status.
15 16 17 |
# File 'lib/bonobot/status.rb', line 15 def initialize(status) @status = status end |
Class Method Details
.generate(status = nil) ⇒ Object
11 12 13 |
# File 'lib/bonobot/status.rb', line 11 def self.generate(status = nil) new(status).generate end |
Instance Method Details
#display_banner ⇒ Object
58 59 60 |
# File 'lib/bonobot/status.rb', line 58 def [display_intro + display_status.join("\n") + display_outro].join("\n") end |
#display_intro ⇒ Object
62 63 64 |
# File 'lib/bonobot/status.rb', line 62 def display_intro "-----\nš š š Bonobot š š š\n-----\n\nš Generating status\n#{File.(self.class.configuration.status_file)}\n-----\n\n" end |
#display_outro ⇒ Object
76 77 78 |
# File 'lib/bonobot/status.rb', line 76 def display_outro "\n-----" end |
#display_status ⇒ Object
66 67 68 69 70 71 72 73 74 |
# File 'lib/bonobot/status.rb', line 66 def display_status if @status generate_status(@status.to_sym, STATUS[@status.to_sym]) else STATUS.map do |status_type, emoji| generate_status(status_type, emoji) end end end |
#generate ⇒ Object
19 20 21 22 23 |
# File 'lib/bonobot/status.rb', line 19 def generate generate_status_file puts return_status_code end |
#generate_status(status, emoji) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/bonobot/status.rb', line 35 def generate_status(status, emoji) overload_status = OverloadsRegistry.find_by(status: status) status_to_text = status.to_s.capitalize.gsub("_", " ") if overload_status.empty? ["-> #{emoji} #{status_to_text} : All good! \n"] else ["-> #{emoji} #{status_to_text} fingerprint (#{overload_status.count}):", present(OverloadsRegistry.find_by(status: status)), ""] end end |
#generate_status_file ⇒ Object
54 55 56 |
# File 'lib/bonobot/status.rb', line 54 def generate_status_file File.write(self.class.configuration.status_file, status_json) end |
#present(entries) ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/bonobot/status.rb', line 25 def present(entries) entries.map do |entry| if entry.engine_file.nil? " - #{entry.path} (unused)" else " - #{entry.engine_file.engine_name}: #{entry.engine_file.short_path} (#{entry.engine_file.fingerprint})" end end.join("\n") end |
#return_status_code ⇒ Object
80 81 82 |
# File 'lib/bonobot/status.rb', line 80 def return_status_code OverloadsRegistry.find_by(status: :out_of_date).empty? && OverloadsRegistry.find_by(status: :missing).empty? end |
#status_json ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/bonobot/status.rb', line 46 def status_json JSON.pretty_generate({ rails_files: LocalFilesRegistry.output, engines_files: EnginesFilesRegistry.output, overloads: OverloadsRegistry.output }) end |