Class: ServiceTestFlowDisplay
- Inherits:
-
Object
- Object
- ServiceTestFlowDisplay
- Defined in:
- lib/tng/ui/service_test_flow_display.rb
Instance Method Summary collapse
-
#initialize(prompt, pastel) ⇒ ServiceTestFlowDisplay
constructor
A new instance of ServiceTestFlowDisplay.
- #select_service(services) ⇒ Object
- #select_service_method(service, methods) ⇒ Object
- #show_no_methods_message(service) ⇒ Object
- #show_no_services_message ⇒ Object
Constructor Details
#initialize(prompt, pastel) ⇒ ServiceTestFlowDisplay
Returns a new instance of ServiceTestFlowDisplay.
10 11 12 13 14 15 16 17 18 |
# File 'lib/tng/ui/service_test_flow_display.rb', line 10 def initialize(prompt, pastel) @prompt = prompt @pastel = pastel @terminal_width = begin TTY::Screen.width rescue StandardError 80 end end |
Instance Method Details
#select_service(services) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/tng/ui/service_test_flow_display.rb', line 20 def select_service(services) header = @pastel.public_send(Tng::UI::Theme.color(:primary)).bold("#{Tng::UI::Theme.icon(:config)} Select service to test:") puts Tng::UI::Theme.center_text(header, @terminal_width) @prompt.select( "", cycle: true, per_page: 12, filter: true, symbols: { marker: Tng::UI::Theme.icon(:marker) } ) do || services.each do |service| display_name = "#{service[:name]} #{@pastel.public_send(Tng::UI::Theme.color(:muted), "(#{service[:path]})")}" .choice display_name, service end .choice @pastel.public_send(Tng::UI::Theme.color(:secondary), "#{Tng::UI::Theme.icon(:back)} Back"), :back end end |
#select_service_method(service, methods) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/tng/ui/service_test_flow_display.rb', line 50 def select_service_method(service, methods) header = @pastel.public_send(Tng::UI::Theme.color(:primary)).bold("#{Tng::UI::Theme.icon(:rocket)} Select method to test for #{service[:name]}") puts Tng::UI::Theme.center_text(header, @terminal_width) @prompt.select( "", cycle: true, per_page: 12, filter: true, symbols: { marker: Tng::UI::Theme.icon(:marker) } ) do || methods.each do |method| .choice "#{method[:name]}", method end .choice @pastel.public_send(Tng::UI::Theme.color(:secondary), "#{Tng::UI::Theme.icon(:back)} Back"), :back end end |
#show_no_methods_message(service) ⇒ Object
68 69 70 71 72 73 74 75 76 77 |
# File 'lib/tng/ui/service_test_flow_display.rb', line 68 def (service) error_msg = "#{@pastel.public_send(Tng::UI::Theme.color(:error)).bold("#{Tng::UI::Theme.icon(:error)} No methods found in #{service[:name]}")}\n#{@pastel.public_send( Tng::UI::Theme.color(:muted), "The service might not have any public methods or could not be analyzed." )}" puts Tng::UI::Theme.center_text(error_msg, @terminal_width) @prompt.keypress(Tng::UI::Theme.center_text( @pastel.public_send(Tng::UI::Theme.color(:muted), "Press any key to continue..."), @terminal_width )) end |
#show_no_services_message ⇒ Object
39 40 41 42 43 44 45 46 47 48 |
# File 'lib/tng/ui/service_test_flow_display.rb', line 39 def error_msg = "#{@pastel.public_send(Tng::UI::Theme.color(:error)).bold("#{Tng::UI::Theme.icon(:error)} No services found in your application")}\n#{@pastel.public_send( Tng::UI::Theme.color(:muted), "Make sure you have services in app/services/ or app/service/" )}" puts Tng::UI::Theme.center_text(error_msg, @terminal_width) @prompt.keypress(Tng::UI::Theme.center_text( @pastel.public_send(Tng::UI::Theme.color(:muted), "Press any key to continue..."), @terminal_width )) end |