Module: AbideDevUtils::Output
- Defined in:
- lib/abide_dev_utils/output.rb
Constant Summary collapse
- FWRITER =
AbideDevUtils::Files::Writer.new
Class Method Summary collapse
- .json(in_obj, console: false, file: nil, pretty: true, **_) ⇒ Object
- .print(msg, stream: $stdout, **_) ⇒ Object
- .progress(title: 'Progress', start: 0, total: 100, format: nil, **_) ⇒ Object
- .simple(msg, stream: $stdout, **_) ⇒ Object
- .simple_section_separator(section_text, sepchar: '#', width: 60, **_) ⇒ Object
- .text(msg, console: false, file: nil, **_) ⇒ Object
- .yaml(in_obj, console: false, file: nil, stringify: false, **_) ⇒ Object
- .yml(in_obj, console: false, file: nil, **_) ⇒ Object
Class Method Details
.json(in_obj, console: false, file: nil, pretty: true, **_) ⇒ Object
39 40 41 42 43 44 |
# File 'lib/abide_dev_utils/output.rb', line 39 def self.json(in_obj, console: false, file: nil, pretty: true, **_) AbideDevUtils::Validate.hashable(in_obj) json_out = pretty ? JSON.pretty_generate(in_obj) : JSON.generate(in_obj) simple(json_out) if console FWRITER.write_json(json_out, file: file) unless file.nil? end |
.print(msg, stream: $stdout, **_) ⇒ Object
30 31 32 |
# File 'lib/abide_dev_utils/output.rb', line 30 def self.print(msg, stream: $stdout, **_) stream.print msg end |
.progress(title: 'Progress', start: 0, total: 100, format: nil, **_) ⇒ Object
70 71 72 |
# File 'lib/abide_dev_utils/output.rb', line 70 def self.progress(title: 'Progress', start: 0, total: 100, format: nil, **_) ProgressBar.create(title: title, starting_at: start, total: total, format: format) end |
.simple(msg, stream: $stdout, **_) ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/abide_dev_utils/output.rb', line 21 def self.simple(msg, stream: $stdout, **_) case msg when Hash stream.puts JSON.pretty_generate(msg) else stream.puts msg end end |
.simple_section_separator(section_text, sepchar: '#', width: 60, **_) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/abide_dev_utils/output.rb', line 13 def self.simple_section_separator(section_text, sepchar: '#', width: 60, **_) section_text = section_text.to_s section_text = section_text[0..width - 4] if section_text.length > width section_text = " #{section_text} " section_sep_line = sepchar * width [section_sep_line, section_text.center(width, sepchar), section_sep_line].join("\n") end |
.text(msg, console: false, file: nil, **_) ⇒ Object
34 35 36 37 |
# File 'lib/abide_dev_utils/output.rb', line 34 def self.text(msg, console: false, file: nil, **_) simple(msg) if console FWRITER.write_text(msg, file: file) unless file.nil? end |
.yaml(in_obj, console: false, file: nil, stringify: false, **_) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/abide_dev_utils/output.rb', line 46 def self.yaml(in_obj, console: false, file: nil, stringify: false, **_) yaml_out = if in_obj.is_a? String in_obj else AbideDevUtils::Validate.hashable(in_obj) if stringify JSON.parse(JSON.generate(in_obj)).to_yaml else # Use object's #to_yaml method if it exists, convert to hash if not in_obj.respond_to?(:to_yaml) ? in_obj.to_yaml : in_obj.to_h.to_yaml end end simple(yaml_out) if console FWRITER.write_yaml(yaml_out, file: file) unless file.nil? end |
.yml(in_obj, console: false, file: nil, **_) ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/abide_dev_utils/output.rb', line 62 def self.yml(in_obj, console: false, file: nil, **_) AbideDevUtils::Validate.hashable(in_obj) # Use object's #to_yaml method if it exists, convert to hash if not yml_out = in_obj.respond_to?(:to_yaml) ? in_obj.to_yaml : in_obj.to_h.to_yaml simple(yml_out) if console FWRITER.write_yml(yml_out, file: file) unless file.nil? end |