Implement ruby feature loading (-r CLI option)
This commit is contained in:
		
							
								
								
									
										5
									
								
								features/cli/ruby_features.feature
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								features/cli/ruby_features.feature
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					Feature: ruby feature require CLI option
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Scenario: requires a ruby feature
 | 
				
			||||||
 | 
					    When I run uhwm with option -v -r abbrev
 | 
				
			||||||
 | 
					    Then the current output must match /load.+abbrev.+ruby feature/i
 | 
				
			||||||
@@ -23,6 +23,7 @@ options:
 | 
				
			|||||||
    -h, --help                       print this message
 | 
					    -h, --help                       print this message
 | 
				
			||||||
    -v, --version                    enable verbose mode
 | 
					    -v, --version                    enable verbose mode
 | 
				
			||||||
    -d, --debug                      enable debug mode
 | 
					    -d, --debug                      enable debug mode
 | 
				
			||||||
 | 
					    -r, --require PATH               require ruby feature
 | 
				
			||||||
  eoh
 | 
					  eoh
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -58,6 +58,11 @@ module Uh
 | 
				
			|||||||
            @env.debug = true
 | 
					            @env.debug = true
 | 
				
			||||||
            @env.log_logger_level
 | 
					            @env.log_logger_level
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          opts.on '-r', '--require PATH', 'require ruby feature' do |feature|
 | 
				
			||||||
 | 
					            require feature
 | 
				
			||||||
 | 
					            @env.log "Loaded `#{feature}' ruby feature"
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -116,6 +116,21 @@ module Uh
 | 
				
			|||||||
          end
 | 
					          end
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        context 'with require option' do
 | 
				
			||||||
 | 
					          let(:arguments) { %w[-r abbrev] }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          it 'requires the given ruby feature' do
 | 
				
			||||||
 | 
					            expect { cli.parse_arguments! }
 | 
				
			||||||
 | 
					              .to change { $LOADED_FEATURES.grep(/abbrev/).any? }
 | 
				
			||||||
 | 
					              .from(false).to(true)
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          it 'logs a message about the feature being loaded' do
 | 
				
			||||||
 | 
					            expect(cli.env).to receive(:log).with /load.+abbrev.+ruby feature/i
 | 
				
			||||||
 | 
					            cli.parse_arguments!
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        context 'with invalid option' do
 | 
					        context 'with invalid option' do
 | 
				
			||||||
          let(:arguments) { %w[--unknown-option] }
 | 
					          let(:arguments) { %w[--unknown-option] }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user