ammeter 1.1.3 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8b09616152a6a841841c86b88596daa437725df9
4
- data.tar.gz: 7aee1b867d17fa150330198d7f5c8c73c9812237
3
+ metadata.gz: a001157dcbfae6b406995d4e01a27b89ce22ae92
4
+ data.tar.gz: 7f43153034ae84e0698a73c609782714224d64dc
5
5
  SHA512:
6
- metadata.gz: 4f7affdbcb8d11a54dbb7eefd2d8694b4f6a519bc1f42a22bb49d2ea13381360c519dbc576eace67f6a9ec6bafd2704697a146660961199d19a65049b7da610f
7
- data.tar.gz: 76fbf530694d7c1727f6ea40080799bfd50f8363cd4ddc86d1d1ba8e13490ef3ff93b8672efaeda239005260a5481d0961e7d84b64eb006c4a2234d27a4a3c0e
6
+ metadata.gz: 44b2ea56e21b1650b60a598d0ac45ab8e07c0e36c8500a93a067cc2ed42dacc8efc853996ceea1d4362b4f50de75454ab440833689c5ede74881a7c31aef1673
7
+ data.tar.gz: d54a0ab64428f7f462f5fb22c70ca2af3e0498b95e94c86b26babc6d7c5741fa8d915b820ae4dd047443432c03713c61e1e38093e0d79c044b14962c0baf24c1
@@ -2,20 +2,16 @@ language: ruby
2
2
  sudo: false
3
3
 
4
4
  rvm:
5
+ - 2.3.0
5
6
  - 2.2
6
7
  - 2.1.2
7
8
  - 2.0.0
8
- - 1.9.3
9
- - 1.8.7
10
9
  - ruby-head
11
- - jruby-9.0.0.0.pre1
12
- - jruby-1.7.9-d19
10
+ - jruby-9.1.2.0
13
11
 
14
12
  env:
15
13
  - RSPEC_VERSION=master
16
- - RSPEC_VERSION='~> 3.0.0'
17
- - RSPEC_VERSION='~> 2.99.0'
18
- - RSPEC_VERSION='~> 2.14.0'
14
+ - RSPEC_VERSION='~> 3.0'
19
15
 
20
16
  bundler_args: "--retry=3 --jobs=3"
21
17
 
@@ -23,8 +19,5 @@ script: "bundle exec rake ci --trace"
23
19
 
24
20
  matrix:
25
21
  allow_failures:
26
- - rvm: 2.2
27
22
  - rvm: ruby-head
28
- - rvm: jruby-9.0.0.0.pre1
29
- - rvm: jruby-1.7.9-d19
30
-
23
+ - rvm: jruby-9.1.2.0
data/Gemfile CHANGED
@@ -27,7 +27,11 @@ if rspec_major_version == '2' || RUBY_VERSION.to_f < 1.9
27
27
  gem 'haml-rails', '~> 0.4'
28
28
  gem 'execjs', '~> 2.0.0'
29
29
  elsif rspec_major_version == '3'
30
- gem 'rails', '>= 4.0'
30
+ if RUBY_VERSION < '2.2.2'
31
+ gem 'rails', '< 5.0' # rails 5 is ruby >= 2.2.2
32
+ else
33
+ gem 'rails', '>= 4.0'
34
+ end
31
35
  gem 'uglifier', '>= 1.3'
32
36
  gem 'rake', '>= 0.10'
33
37
  gem 'coffee-rails', '>= 4.0'
@@ -39,6 +43,7 @@ else
39
43
  end
40
44
 
41
45
  gem "i18n", '< 0.7.0' if RUBY_VERSION < '1.9.3'
46
+ gem "rack", '<= 1.6.4' if RUBY_VERSION < '2.2.2'
42
47
 
43
48
  # Specify your gem's dependencies in rspec-rails-generator-specs.gemspec
44
49
  gemspec
data/Rakefile CHANGED
@@ -27,7 +27,7 @@ def create_gem(gem_name)
27
27
  template_folder = "features/templates/#{gem_name}"
28
28
 
29
29
  Dir.chdir("./tmp") do
30
- sh "bundle gem #{gem_name}"
30
+ sh "yes | bundle gem -t rspec #{gem_name}"
31
31
  end
32
32
  sh "cp '#{template_folder}/Gemfile' tmp/#{gem_name}"
33
33
  sh "cp '#{template_folder}/#{gem_name}.gemspec' tmp/#{gem_name}"
@@ -74,7 +74,7 @@ Feature: Gems can contain generators
74
74
  describe 'app/models/post.rb' do
75
75
  subject { file('app/models/post.rb') }
76
76
  it { expect(subject).to exist }
77
- it { expect(subject).to contain 'class Post < ActiveRecord::Base' }
77
+ it { expect(subject).to contain 'class Post < ' }
78
78
  end
79
79
  end
80
80
  """
@@ -0,0 +1,56 @@
1
+ @example_app
2
+ Feature: generator with shell prompts spec
3
+
4
+ Generator specs live in spec/generators. In order to access
5
+ the generator's methods you can call them on the "generator" object.
6
+
7
+ Background: A simple generator
8
+ Given a file named "lib/generators/awesome/lamest_generator.rb" with:
9
+ """
10
+ class LamestGenerator < Rails::Generators::NamedBase
11
+ source_root File.expand_path('../templates', __FILE__)
12
+ class_option :super, :type => :boolean, :default => false
13
+
14
+ def create_lamest
15
+ @lame = false
16
+ @awesome = false
17
+ @user_name = ask("What is your name?")
18
+ if yes?("Are you the lamest?")
19
+ @lame = true
20
+ end
21
+ if yes?("Are you awesome?")
22
+ @awesome = true
23
+ end
24
+ template 'lamest.html.erb', File.join('public', name, "#{"super_" if options[:super]}lamest.html")
25
+ end
26
+ end
27
+ """
28
+ And a file named "lib/generators/awesome/templates/lamest.html.erb" with:
29
+ """
30
+ <%= @user_name %> <%= "is the lamest" if @lame %> and <%= "is not awesome!" if @awesome == false %>
31
+ """
32
+
33
+ Scenario: A spec that runs the entire generator
34
+ Given a file named "spec/generators/lamest_generator_spec.rb" with:
35
+ """
36
+ require "rails_helper"
37
+ require 'generators/awesome/lamest_generator'
38
+
39
+ describe LamestGenerator do
40
+ describe 'invoke' do
41
+ before do
42
+ gen = generator %w(my_dir)
43
+ set_shell_prompt_responses(gen, { :ask => "Thomas", :yes? => [true, false] })
44
+ run_generator
45
+ end
46
+ describe 'public/my_dir/lamest.html' do
47
+ subject { file('public/my_dir/lamest.html') }
48
+ it { expect(subject).to exist }
49
+ it { expect(subject).to contain 'Thomas is the lamest and is not awesome!' }
50
+ it { expect(subject).to_not contain 'This text is not in the file' }
51
+ end
52
+ end
53
+ end
54
+ """
55
+ When I run `rake spec`
56
+ Then the output should contain "3 examples, 0 failures"
@@ -41,7 +41,7 @@ Feature: generator spec
41
41
  describe 'app/models/post.rb' do
42
42
  subject { file('app/models/post.rb') }
43
43
  it { expect(subject).to exist }
44
- it { expect(subject).to contain 'class Post < ActiveRecord::Base' }
44
+ it { expect(subject).to contain 'class Post < ' }
45
45
  end
46
46
  end
47
47
  """
@@ -1,5 +1,8 @@
1
1
  require 'bundler/setup'
2
2
  require 'rails/all'
3
+
4
+ ActiveRecord::Base.establish_connection :adapter => "sqlite3", :database => ":memory:"
5
+
3
6
  begin
4
7
  # This prevents 'uninitialized constant Jquery::Rails::Railtie::PROTOTYPE_JS (NameError)'
5
8
  require 'jquery/rails'
@@ -1,5 +1,6 @@
1
1
  require 'bundler/setup'
2
- require 'rails'
2
+ require 'rails/all'
3
3
  require 'ammeter/init'
4
4
 
5
5
  Bundler.require
6
+ ActiveRecord::Base.establish_connection :adapter => "sqlite3", :database => ":memory:"
@@ -1,5 +1,6 @@
1
1
  require 'rspec/core'
2
2
  require 'ammeter/rspec/generator/example/generator_example_group'
3
+ require 'ammeter/rspec/generator/example/generator_example_helpers'
3
4
 
4
5
  RSpec::configure do |c|
5
6
  def c.escaped_path(*parts)
@@ -8,6 +9,8 @@ RSpec::configure do |c|
8
9
 
9
10
  generator_path_regex = c.escaped_path(%w[spec generators])
10
11
  if RSpec::Core::Version::STRING >= '3'
12
+ c.include Ammeter::RSpec::Rails::GeneratorExampleHelpers,
13
+ :type => :generator
11
14
  c.include Ammeter::RSpec::Rails::GeneratorExampleGroup,
12
15
  :type => :generator,
13
16
  :file_path => lambda { |file_path, metadata|
@@ -15,7 +18,7 @@ RSpec::configure do |c|
15
18
  }
16
19
 
17
20
  else #rspec2
18
-
21
+ c.include Ammeter::RSpec::Rails::GeneratorExampleHelpers, :type => :generator
19
22
  c.include Ammeter::RSpec::Rails::GeneratorExampleGroup, :type => :generator, :example_group => {
20
23
  :file_path => generator_path_regex
21
24
  }
@@ -0,0 +1,29 @@
1
+ require 'rails/generators'
2
+ require 'active_support/core_ext'
3
+
4
+ module Ammeter
5
+ module RSpec
6
+ module Rails
7
+ # Delegates to Rails::Generators::TestCase to work with RSpec.
8
+ module GeneratorExampleHelpers
9
+
10
+ # Sets return values for basic shell commands (ex. ask, yes?, no?).
11
+ # Does this by mocking return values using RSpec's `and_return` method
12
+ #
13
+ # ===== Parameters =====
14
+ # Generator w/ @shell attribute
15
+ # Hash { command_name: input_value, ask: "Testing", yes?: true }
16
+ # The values for each element in the hash can be set as an array as well.
17
+ # This will allow for different return values upon each call.
18
+ #
19
+ # ex. set_shell_prompt_responses(generator, { yes?: [true, false] })
20
+ # would respond with true to the first yes? call, but false to the second
21
+ def set_shell_prompt_responses(generator, command_args={})
22
+ command_args.each do |k,v|
23
+ allow(generator.shell).to receive(k.to_sym).and_return(*v)
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Ammeter
2
- VERSION = "1.1.3"
2
+ VERSION = "1.1.4"
3
3
  end
@@ -0,0 +1,27 @@
1
+ require "spec_helper"
2
+
3
+ module Ammeter::RSpec::Rails
4
+ describe GeneratorExampleHelpers do
5
+ include GeneratorExampleHelpers
6
+ let(:generator) { MockGenerator.new }
7
+
8
+ it "mocks return value of ask to response" do
9
+ set_shell_prompt_responses(generator, { :ask => "response" })
10
+ expect(generator.shell.ask).to eq("response")
11
+ end
12
+ context "arguments contain multiple shell commands" do
13
+ it "mocks return values response for ask and true for yes?" do
14
+ set_shell_prompt_responses(generator, { :ask => "response", :yes? => true })
15
+ expect(generator.shell.ask).to eq("response")
16
+ expect(generator.shell.yes?).to be true
17
+ end
18
+ end
19
+ context "argument shell command contains an array" do
20
+ it "mocks sequential return values response1 and response2" do
21
+ set_shell_prompt_responses(generator, { :ask => ["response1", "response2"] })
22
+ expect(generator.shell.ask).to eq("response1")
23
+ expect(generator.shell.ask).to eq("response2")
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,10 @@
1
+ # Used in generator_example_helpers_spec.rb
2
+ # set_shell_prompt_responses requires a generator w/ a shell
3
+ # as an argument. This class defines that generator w/ a shell.
4
+ class MockGenerator
5
+ attr_accessor :shell
6
+
7
+ def initialize
8
+ @shell = Object.new
9
+ end
10
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ammeter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Rothenberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-07 00:00:00.000000000 Z
11
+ date: 2016-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -223,6 +223,7 @@ files:
223
223
  - ammeter.gemspec
224
224
  - features/generator_in_a_gem.feature
225
225
  - features/generator_spec.feature
226
+ - features/generator_with_shell_prompts_spec.feature
226
227
  - features/hooking_into_other_generators.feature
227
228
  - features/support/aruba_timeout.rb
228
229
  - features/support/env.rb
@@ -242,6 +243,7 @@ files:
242
243
  - lib/ammeter/railtie.rb
243
244
  - lib/ammeter/rspec/generator/example.rb
244
245
  - lib/ammeter/rspec/generator/example/generator_example_group.rb
246
+ - lib/ammeter/rspec/generator/example/generator_example_helpers.rb
245
247
  - lib/ammeter/rspec/generator/matchers.rb
246
248
  - lib/ammeter/rspec/generator/matchers/be_a_migration.rb
247
249
  - lib/ammeter/rspec/generator/matchers/contain.rb
@@ -251,6 +253,7 @@ files:
251
253
  - lib/ammeter/rspec/rspec_2_compatibility.rb
252
254
  - lib/ammeter/version.rb
253
255
  - spec/ammeter/rspec/generator/example/generator_example_group_spec.rb
256
+ - spec/ammeter/rspec/generator/example/generator_example_helpers_spec.rb
254
257
  - spec/ammeter/rspec/generator/matchers/be_a_migration_spec.rb
255
258
  - spec/ammeter/rspec/generator/matchers/contain_spec.rb
256
259
  - spec/ammeter/rspec/generator/matchers/exist_spec.rb
@@ -260,6 +263,7 @@ files:
260
263
  - spec/support/helpers.rb
261
264
  - spec/support/matchers.rb
262
265
  - spec/support/memoized_helpers_rspec2compatibility.rb
266
+ - spec/support/mock_generator.rb
263
267
  homepage: ''
264
268
  licenses: []
265
269
  metadata: {}
@@ -279,13 +283,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
283
  version: '0'
280
284
  requirements: []
281
285
  rubyforge_project:
282
- rubygems_version: 2.2.2
286
+ rubygems_version: 2.4.3
283
287
  signing_key:
284
288
  specification_version: 4
285
289
  summary: Write specs for your Rails 3+ generators
286
290
  test_files:
287
291
  - features/generator_in_a_gem.feature
288
292
  - features/generator_spec.feature
293
+ - features/generator_with_shell_prompts_spec.feature
289
294
  - features/hooking_into_other_generators.feature
290
295
  - features/support/aruba_timeout.rb
291
296
  - features/support/env.rb
@@ -300,6 +305,7 @@ test_files:
300
305
  - features/templates/my_railties_gem/spec/spec_helper.rb
301
306
  - features/templates/rspec.rake
302
307
  - spec/ammeter/rspec/generator/example/generator_example_group_spec.rb
308
+ - spec/ammeter/rspec/generator/example/generator_example_helpers_spec.rb
303
309
  - spec/ammeter/rspec/generator/matchers/be_a_migration_spec.rb
304
310
  - spec/ammeter/rspec/generator/matchers/contain_spec.rb
305
311
  - spec/ammeter/rspec/generator/matchers/exist_spec.rb
@@ -309,3 +315,4 @@ test_files:
309
315
  - spec/support/helpers.rb
310
316
  - spec/support/matchers.rb
311
317
  - spec/support/memoized_helpers_rspec2compatibility.rb
318
+ - spec/support/mock_generator.rb