File: generator_example_helpers.rb

package info (click to toggle)
ruby-ammeter 1.1.5-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 312 kB
  • sloc: ruby: 703; makefile: 4
file content (29 lines) | stat: -rw-r--r-- 1,080 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
require 'rails/generators'
require 'active_support/core_ext'

module Ammeter
  module RSpec
    module Rails
      # Delegates to Rails::Generators::TestCase to work with RSpec.
      module GeneratorExampleHelpers

        # Sets return values for basic shell commands (ex. ask, yes?, no?). 
        # Does this by mocking return values using RSpec's `and_return` method
        # 
        # ===== Parameters =====
        # Generator w/ @shell attribute
        # Hash { command_name: input_value, ask: "Testing", yes?: true }
        # The values for each element in the hash can be set as an array as well.
        # This will allow for different return values upon each call.
        # 
        # ex. set_shell_prompt_responses(generator, { yes?: [true, false] })
        # would respond with true to the first yes? call, but false to the second
        def set_shell_prompt_responses(generator, command_args={})
          command_args.each do |k,v|
            allow(generator.shell).to receive(k.to_sym).and_return(*v)
          end
        end
      end
    end
  end
end