Class: ModelTestFlowDisplay
- Inherits:
-
Object
- Object
- ModelTestFlowDisplay
- Defined in:
- lib/tng/ui/model_test_flow_display.rb
Instance Method Summary collapse
-
#initialize(prompt, pastel) ⇒ ModelTestFlowDisplay
constructor
A new instance of ModelTestFlowDisplay.
- #select_model(models) ⇒ Object
- #select_model_method(model, methods) ⇒ Object
- #show_no_methods_message(model) ⇒ Object
- #show_no_models_message ⇒ Object
Constructor Details
#initialize(prompt, pastel) ⇒ ModelTestFlowDisplay
10 11 12 13 14 15 16 17 18 |
# File 'lib/tng/ui/model_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_model(models) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/tng/ui/model_test_flow_display.rb', line 20 def select_model(models) header = @pastel.public_send(Tng::UI::Theme.color(:primary)).bold("#{Tng::UI::Theme.icon(:config)} Select model 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 || models.each do |model| display_name = "#{model[:name]} #{@pastel.public_send(Tng::UI::Theme.color(:muted), "(#{model[:path]})")}" .choice display_name, model end .choice @pastel.public_send(Tng::UI::Theme.color(:secondary), "#{Tng::UI::Theme.icon(:back)} Back"), :back end end |
#select_model_method(model, methods) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/tng/ui/model_test_flow_display.rb', line 52 def select_model_method(model, methods) header = @pastel.public_send(Tng::UI::Theme.color(:primary)).bold("#{Tng::UI::Theme.icon(:rocket)} Select method to test in #{model[:name]}") puts Tng::UI::Theme.center_text(header, @terminal_width) @prompt.select( "", cycle: true, per_page: 10, 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(model) ⇒ Object
70 71 72 73 74 75 76 77 78 79 |
# File 'lib/tng/ui/model_test_flow_display.rb', line 70 def (model) error_msg = "#{@pastel.public_send(Tng::UI::Theme.color(:error)).bold("#{Tng::UI::Theme.icon(:error)} No methods found in #{model[:name]}")}\n#{@pastel.public_send( Tng::UI::Theme.color(:muted), "Model may be empty or have syntax errors" )}" 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_models_message ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/tng/ui/model_test_flow_display.rb', line 39 def puts puts Tng::UI::Theme.center_text( @pastel.public_send(Tng::UI::Theme.color(:warning), "#{Tng::UI::Theme.icon(:warning)} No models found in app/models"), @terminal_width ) puts Tng::UI::Theme.center_text( @pastel.public_send(Tng::UI::Theme.color(:muted), "Make sure you're in a Rails project with models"), @terminal_width ) puts end |