bddfire 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZjY0MWNkMTJlOGZmMjcxYzU2MDNhMzhhYWNkNmY1YTBhMTljY2IyOA==
4
+ ZTFiMmVmNDIxYmMwZThlYWZhOWFkZWQwODg0MTg0MmYwM2RjNGE1MA==
5
5
  data.tar.gz: !binary |-
6
- ZGJmOGYxNTY1MTEzZWMxMDNhNDUzNzhkYmFhMjcwM2ZlMjc0MTY5Ng==
6
+ ODdlNDA3NDZlNjNlZDc0YTEyY2NhNmU3MGQzYjlhMTdhMjA0MmY1Nw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- M2VhYTk1YjcwNWZiYTc5NWYzMGYyNTUwZGM2YjNiN2U2ZDIzMjcxZWY1MThj
10
- OTRkOTNmNmNiM2ZhMmViYjBhYmVmODcyM2RjOGE4NjY0MWFmMGFjNGIxZjRh
11
- MjRkZTc4ZTgyYmYzZTM2YzA5OGE4YTQ3NWU4YzkxYzI4ZDIzM2Q=
9
+ MzJkNzhmNDFiYTU1N2U3OWNlMzBhNDAyMTQxYzM1OGE4MTYxZWU4NmM0MDhl
10
+ NjUyMDQwOTRhYzZlMjY4Mzc5MjMyMTBiYmFmM2UwNWI5NGQ2MWExNTdlYmNj
11
+ ODdhMGQ4NDljY2NmNjYyZmNhY2E3NDc3MzYwYTdhNzk3MTMyYzU=
12
12
  data.tar.gz: !binary |-
13
- NTRhZTFmZjFiNDdhZGVlNDAzMmI3ZDAzYjFhYzUzYzlhMzliMjBmZWEwYTQ2
14
- OTA3MzdkMTkxMTMwOTIyNzhkZTJkNDMwMmIwMmJjNmNmYzcxOWVjN2NmZWZl
15
- NTI4NGIwNTJiZmEyZjljMThiNmYxNGFhYmIyM2JmZWZiY2YyYmU=
13
+ YTRkNmJlZmJmYjYzN2YxZjM1ODNmYjJhMTQzMWY2YzZlNGNhZjBiNjYyYTQw
14
+ M2YzZTgzNTc2MmY3ZGNjYjE4YjVmZTUwMDkzZTZmNDE4ZGIzZjdhMTg0NzAw
15
+ N2IzNTFjOGU1ZWE2NTE3M2E4NzcxYzhlODZhNmQ1MzljMDczZjY=
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ pkg/*
2
+ tmp/*
3
+ doc/*
4
+ *.gem
5
+ .bundle
6
+ .yardoc
7
+ .ruby-version
8
+
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+ gemspec
3
+ gem 'rspec'
data/Gemfile.lock ADDED
@@ -0,0 +1,107 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ bddfire (1.0.0)
5
+ thor
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ activesupport (4.1.4)
11
+ i18n (~> 0.6, >= 0.6.9)
12
+ json (~> 1.7, >= 1.7.7)
13
+ minitest (~> 5.1)
14
+ thread_safe (~> 0.1)
15
+ tzinfo (~> 1.1)
16
+ archive-tar-minitar (0.5.2)
17
+ aruba (0.6.0)
18
+ childprocess (>= 0.3.6)
19
+ cucumber (>= 1.1.1)
20
+ rspec-expectations (>= 2.7.0)
21
+ ast (2.0.0)
22
+ bluecloth (2.2.0)
23
+ builder (3.2.2)
24
+ childprocess (0.5.3)
25
+ ffi (~> 1.0, >= 1.0.11)
26
+ cucumber (1.3.15)
27
+ builder (>= 2.1.2)
28
+ diff-lcs (>= 1.1.3)
29
+ gherkin (~> 2.12)
30
+ multi_json (>= 1.7.5, < 2.0)
31
+ multi_test (>= 0.1.1)
32
+ cuke_sniffer (0.0.8)
33
+ roxml
34
+ diff-lcs (1.2.5)
35
+ ffi (1.9.3)
36
+ gherkin (2.12.2)
37
+ multi_json (~> 1.3)
38
+ i18n (0.6.11)
39
+ json (1.8.1)
40
+ mime-types (2.3)
41
+ mini_portile (0.6.0)
42
+ minitest (5.4.0)
43
+ multi_json (1.10.1)
44
+ multi_test (0.1.1)
45
+ netrc (0.7.7)
46
+ nokogiri (1.6.2.1)
47
+ mini_portile (= 0.6.0)
48
+ parallel (1.0.0)
49
+ parallel_tests (1.0.0)
50
+ parallel
51
+ parser (2.2.0.pre.3)
52
+ ast (>= 1.1, < 3.0)
53
+ slop (~> 3.4, >= 3.4.5)
54
+ powerpack (0.0.9)
55
+ rainbow (2.0.0)
56
+ rake (10.3.2)
57
+ relish (0.7)
58
+ archive-tar-minitar (>= 0.5.2)
59
+ json (>= 1.4.6)
60
+ rest-client (>= 1.6.1)
61
+ rest-client (1.7.1)
62
+ mime-types (>= 1.16, < 3.0)
63
+ netrc (~> 0.7)
64
+ roxml (3.3.1)
65
+ activesupport (>= 2.3.0)
66
+ nokogiri (>= 1.3.3)
67
+ rspec (3.0.0)
68
+ rspec-core (~> 3.0.0)
69
+ rspec-expectations (~> 3.0.0)
70
+ rspec-mocks (~> 3.0.0)
71
+ rspec-core (3.0.2)
72
+ rspec-support (~> 3.0.0)
73
+ rspec-expectations (3.0.2)
74
+ diff-lcs (>= 1.2.0, < 2.0)
75
+ rspec-support (~> 3.0.0)
76
+ rspec-mocks (3.0.2)
77
+ rspec-support (~> 3.0.0)
78
+ rspec-support (3.0.2)
79
+ rubocop (0.24.1)
80
+ json (>= 1.7.7, < 2)
81
+ parser (>= 2.2.0.pre.3, < 3.0)
82
+ powerpack (~> 0.0.6)
83
+ rainbow (>= 1.99.1, < 3.0)
84
+ ruby-progressbar (~> 1.4)
85
+ ruby-progressbar (1.5.1)
86
+ slop (3.5.0)
87
+ thor (0.19.1)
88
+ thread_safe (0.3.4)
89
+ tzinfo (1.2.1)
90
+ thread_safe (~> 0.1)
91
+ yard (0.8.7.4)
92
+
93
+ PLATFORMS
94
+ ruby
95
+
96
+ DEPENDENCIES
97
+ aruba
98
+ bddfire!
99
+ bluecloth
100
+ cucumber
101
+ cuke_sniffer
102
+ parallel_tests
103
+ rake
104
+ relish
105
+ rspec
106
+ rubocop
107
+ yard
data/LICENSE ADDED
@@ -0,0 +1,3 @@
1
+ Copyright (c) 2014 Shashikant Jagtap
2
+ All rights reserved.
3
+ You must not remove this notice, or any other, from this software.
data/README.markdown ADDED
@@ -0,0 +1,21 @@
1
+ # bddfire
2
+
3
+ Generate default toolkit around BDD with cucumber and friends
4
+ ## Installation
5
+
6
+ The usual:
7
+
8
+ $ gem install bddfire
9
+
10
+ ## Usage
11
+
12
+ In your project's root directory...
13
+
14
+ ### Cucumber
15
+
16
+ $ bddfire cucumber
17
+
18
+ This will create a `features` directory with all the files you need to hit the
19
+
20
+ If you don't already have a `Gemfile` or `Rakefile`, one will be created.
21
+
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ require 'yard'
4
+ require 'bundler/setup'
5
+
6
+ Bundler::GemHelper.install_tasks
7
+
8
+ # Cucumber tasks
9
+ require 'cucumber/rake/task'
10
+ YARD::Rake::YardocTask.new(:yard) do |t|
11
+ t.files = ['features/**/*.feature', 'features/**/*.rb']
12
+ #t.options = ['--any', '--extra', '--opts'] # optional
13
+ end
14
+
15
+ Cucumber::Rake::Task.new(:features) do |t|
16
+ t.cucumber_opts = "features --format pretty"
17
+ end
18
+
19
+ task :default => [:features]
data/bddfire.gemspec ADDED
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "bddfire/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "bddfire"
7
+ s.version = BDDfire::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Shashikant Jagtap"]
10
+ s.email = ["shashikant.jagtap@aol.co.uk"]
11
+ s.homepage = "https://github.com/Shashikant86/bddfire"
12
+ s.license = 'MIT'
13
+ s.summary = %q{Generate template project for the cucumber BDD with related tools}
14
+ s.description = %q{Blue print for the cucumber, capybara, cuke_sniffer, rubocop, relish, yard and many of them libraries}
15
+ s.add_dependency "thor"
16
+ s.add_development_dependency "rake"
17
+ s.add_development_dependency "rspec"
18
+ s.add_development_dependency "cucumber"
19
+ s.add_development_dependency "aruba"
20
+ s.add_development_dependency "yard"
21
+ s.add_development_dependency "bluecloth"
22
+ s.add_development_dependency "rubocop"
23
+ s.add_development_dependency "relish"
24
+ s.add_development_dependency "cuke_sniffer"
25
+ s.add_development_dependency "parallel_tests"
26
+ s.files = `git ls-files`.split("\n")
27
+ s.test_files = `git ls-files -- {features}/*`.split("\n")
28
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
29
+ s.require_paths = ["lib"]
30
+ end
data/bin/bddfire ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ lib_dir = File.expand_path("../lib", File.dirname(__FILE__))
4
+ $:.unshift lib_dir unless $:.include?(lib_dir)
5
+
6
+ require 'bddfire'
7
+ BDDfire::App.start
@@ -0,0 +1,7 @@
1
+ Feature: Generate cucumber template
2
+
3
+ Scenario: Generate Cucumber
4
+
5
+ Given I have empty directory
6
+ When I run BDDfire
7
+ Then I shouls see all the files and directories are created
@@ -0,0 +1,11 @@
1
+ Given(/^I have empty directory$/) do
2
+
3
+ end
4
+
5
+ When(/^I run BDDfire$/) do
6
+
7
+ end
8
+
9
+ Then(/^I shouls see all the files and directories are created$/) do
10
+
11
+ end
@@ -0,0 +1,6 @@
1
+ require "rubygems"
2
+ require "bundler/setup"
3
+
4
+ require "aruba"
5
+
6
+ require 'bddfire'
File without changes
@@ -0,0 +1,130 @@
1
+ require 'thor'
2
+ require 'bddfire/version'
3
+
4
+ module BDDfire
5
+ class App < Thor
6
+ include Thor::Actions
7
+ map %w(-v -V --version) => :version
8
+ def self.source_root
9
+ File.expand_path('../../scaffold', File.dirname(__FILE__))
10
+ end
11
+
12
+ desc "version", "current version"
13
+ def version
14
+ say BDDfire::VERSION
15
+ end
16
+
17
+ desc "cucumber", "Set up cucumber"
18
+ def cucumber
19
+ genarate_gemfile
20
+ insert_gem 'cucumber'
21
+ insert_gem 'capybara'
22
+ insert_gem 'selenium-webdriver'
23
+ insert_gem 'poltergeist'
24
+ generate_rakefile
25
+ add_task BDDfire::Tasks.cucumber
26
+ add_file "features/step_definitions/#{project_name}_steps.rb"
27
+ add_file "features/#{project_name}.feature"
28
+ add_file "cucumber.yml"
29
+ add_file ".rubocop.yml"
30
+ add_file ".relish"
31
+ add_file ".ruby-version"
32
+ add_file ".travis.yml"
33
+ copy_file "features/support/env.rb"
34
+ copy_file "features/support/hooks.rb"
35
+ template "features/support/helpers.erb", "features/support/helpers.rb"
36
+ init_gitignore
37
+ append_file ".gitignore", ".ruby-version\n"
38
+ append_file ".gitignore", ".travis.yml\n"
39
+ end
40
+
41
+ desc "rspec", "Set up rspec"
42
+ def rspec
43
+ genarate_gemfile
44
+ insert_gem 'rspec'
45
+ generate_rakefile
46
+ add_task BDDfire::Tasks.rspec
47
+ copy_file "spec/spec_helper.rb"
48
+ end
49
+
50
+ desc "yard", "Set up Yard"
51
+ def yard
52
+ genarate_gemfile
53
+ insert_gem 'yard'
54
+
55
+ generate_rakefile
56
+ add_task BDDfire::Tasks.yard(project_name)
57
+
58
+ init_gitignore
59
+ append_file ".gitignore", "doc/*\n"
60
+ append_file ".gitignore", ".yardoc\n"
61
+ end
62
+
63
+ desc "cuke_sniffer", "Set up cuke_sniffer"
64
+ def cuke_sniffer
65
+ genarate_gemfile
66
+ insert_gem 'cuke_sniffer'
67
+
68
+ generate_rakefile
69
+ add_task BDDfire::Tasks.cuke_sniffer
70
+ end
71
+
72
+ desc "rubocop", "Set up rubocop"
73
+ def cuke_sniffer
74
+ genarate_gemfile
75
+ insert_gem 'rubocop'
76
+
77
+ generate_rakefile
78
+ add_task BDDfire::Tasks.rubocop
79
+ end
80
+
81
+ private
82
+
83
+ def project_name
84
+ destination_root.split(/\/|\\/).last
85
+ end
86
+
87
+ def genarate_gemfile
88
+ unless destination_file_exists?("Gemfile")
89
+ add_file "Gemfile"
90
+ append_file "Gemfile" do
91
+ "source 'http://rubygems.org'\n\n" +
92
+ "gem 'rake'\n"
93
+ end
94
+ end
95
+ end
96
+
97
+ def generate_rakefile
98
+ unless destination_file_exists?("Rakefile")
99
+ add_file "Rakefile"
100
+ append_file "Rakefile" do
101
+ "require 'rubygems'\n" +
102
+ "require 'bundler'\n" +
103
+ "require 'bundler/setup'\n\n"
104
+ end
105
+ end
106
+ end
107
+
108
+ def init_gitignore
109
+ add_file ".gitignore" unless destination_file_exists?(".gitignore")
110
+ ensure_eof_newline(".gitignore")
111
+ end
112
+
113
+ def destination_file_exists?(filename)
114
+ File.exist?(File.join(destination_root, filename))
115
+ end
116
+
117
+ def insert_gem(gem_name)
118
+ ensure_eof_newline("Gemfile")
119
+ append_file "Gemfile", "gem '#{gem_name}'\n"
120
+ end
121
+
122
+ def add_task(the_task)
123
+ append_file "Rakefile", "\n\n#{the_task}\n"
124
+ end
125
+
126
+ def ensure_eof_newline(filename)
127
+ gsub_file(filename, /([^\n])\z/, "\\1\n")
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,11 @@
1
+ module BDDfire
2
+ module Extensions
3
+ module String
4
+ def camelize
5
+ self.capitalize.gsub(/[ _\-]+([a-z])?/) { $1.upcase }
6
+ end
7
+ end
8
+ end
9
+ end
10
+
11
+ String.send(:include, BDDfire::Extensions::String)
@@ -0,0 +1,30 @@
1
+ module BDDfire
2
+ class Tasks
3
+ def self.cucumber
4
+ @cucumber_tasks ||= read_task_file('cucumber.rb')
5
+ end
6
+
7
+ def self.rspec
8
+ @rspec_tasks ||= read_task_file('rspec.rb')
9
+ end
10
+
11
+ def self.rubocop
12
+ @rubocop_tasks ||= read_task_file('rubocop.rb')
13
+ end
14
+
15
+ def self.cuke_sniffer
16
+ @cuke_sniffer_tasks ||= read_task_file('cuke_sniffer.rb')
17
+ end
18
+
19
+ def self.yard(project_name)
20
+ @yard_tasks ||= read_task_file('yard.rb').gsub(
21
+ '{{project_name}}', project_name
22
+ )
23
+ end
24
+
25
+ private
26
+ def self.read_task_file(filename)
27
+ File.read(File.join(BDDfire::App.source_root, 'rake_tasks', filename))
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ module BDDfire
2
+ VERSION = "1.0.3"
3
+ end
data/lib/bddfire.rb ADDED
@@ -0,0 +1,6 @@
1
+ require 'bddfire/extensions/string'
2
+
3
+ module BDDfire
4
+ autoload :App, "bddfire/app"
5
+ autoload :Tasks, "bddfire/tasks"
6
+ end
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require "Capybara/cucumber"
4
+ require "rspec"
5
+ require 'capybara/poltergeist'
6
+ require 'selenium-webdriver'
7
+
8
+ Capybara.default_driver = :selenium
9
+
10
+ Capybara.register_driver :poltergeist do |app|
11
+
12
+ options = {
13
+ :js_errors => true,
14
+ :timeout => 120,
15
+ :debug => false,
16
+ :phantomjs_options => ['--load-images=no', '--disk-cache=false'],
17
+ :inspector => true,
18
+
19
+ }
20
+
21
+ Capybara::Poltergeist::Driver.new(app, options)
22
+ end
@@ -0,0 +1,6 @@
1
+ module <%= project_name.camelize %>
2
+ module CucumberHelpers
3
+ end
4
+ end
5
+
6
+ World(<%= project_name.camelize %>::CucumberHelpers)
File without changes
@@ -0,0 +1,3 @@
1
+ module <%= project_name.camelize %>
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,2 @@
1
+ module <%= project_name.camelize %>
2
+ end
@@ -0,0 +1,13 @@
1
+ require 'cucumber/rake/task'
2
+ Cucumber::Rake::Task.new(:features) do |features|
3
+ features.cucumber_opts = "features --tags ~@wip --format progress"
4
+ end
5
+ namespace :features do
6
+ Cucumber::Rake::Task.new(:pretty, "Run Cucumber features with output in pretty format") do |features|
7
+ features.cucumber_opts = "features --tags ~@wip --format pretty"
8
+ end
9
+ Cucumber::Rake::Task.new(:wip, "Run @wip (Work In Progress) Cucumber features") do |features|
10
+ features.cucumber_opts = "features --tags @wip --format progress"
11
+ end
12
+ end
13
+
@@ -0,0 +1,4 @@
1
+ task :cuke_sniffer do
2
+ sh 'cd features'
3
+ sh 'bundle exec cuke_sniffer'
4
+ end
@@ -0,0 +1,12 @@
1
+ require 'rspec/core/rake_task'
2
+ desc "Run specs"
3
+ RSpec::Core::RakeTask.new(:spec) do |t|
4
+ t.rspec_opts = %w(--color)
5
+ end
6
+ namespace :spec do
7
+ desc "Run specs with output in documentation format"
8
+ RSpec::Core::RakeTask.new(:doc) do |t|
9
+ t.rspec_opts = ["--color", "--format d"]
10
+ end
11
+ end
12
+
@@ -0,0 +1,8 @@
1
+ require 'rubocop/rake_task'
2
+
3
+ desc "Run Rubocop"
4
+
5
+ Rubocop::RakeTask.new(:rubocop) do |task|
6
+ task.patterns = ['features/**/*.rb']
7
+ end
8
+
@@ -0,0 +1,5 @@
1
+ require 'yard'
2
+ YARD::Rake::YardocTask.new do |t|
3
+ t.files = ['lib/**/*.rb', '-', 'CHANGELOG', 'LICENSE']
4
+ t.options = ['--no-private', '--title', '{{project_name}} API Documentation']
5
+ end
@@ -0,0 +1,8 @@
1
+ require "rubygems"
2
+ require "bundler/setup"
3
+
4
+ require 'rspec'
5
+
6
+ RSpec.configure do |config|
7
+ config.fail_fast = true
8
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bddfire
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shashikant Jagtap
@@ -168,10 +168,39 @@ description: Blue print for the cucumber, capybara, cuke_sniffer, rubocop, relis
168
168
  yard and many of them libraries
169
169
  email:
170
170
  - shashikant.jagtap@aol.co.uk
171
- executables: []
171
+ executables:
172
+ - bddfire
172
173
  extensions: []
173
174
  extra_rdoc_files: []
174
- files: []
175
+ files:
176
+ - .gitignore
177
+ - Gemfile
178
+ - Gemfile.lock
179
+ - LICENSE
180
+ - README.markdown
181
+ - Rakefile
182
+ - bddfire.gemspec
183
+ - bin/bddfire
184
+ - features/cucumber_template.feature
185
+ - features/step_definitions/all_steps.rb
186
+ - features/support/env.rb
187
+ - features/support/support_code.rb
188
+ - lib/bddfire.rb
189
+ - lib/bddfire/app.rb
190
+ - lib/bddfire/extensions/string.rb
191
+ - lib/bddfire/tasks.rb
192
+ - lib/bddfire/version.rb
193
+ - scaffold/features/support/env.rb
194
+ - scaffold/features/support/helpers.erb
195
+ - scaffold/features/support/hooks.rb
196
+ - scaffold/lib/project.erb
197
+ - scaffold/lib/project/version.erb
198
+ - scaffold/rake_tasks/cucumber.rb
199
+ - scaffold/rake_tasks/cuke_sniffer.rb
200
+ - scaffold/rake_tasks/rspec.rb
201
+ - scaffold/rake_tasks/rubocop.rb
202
+ - scaffold/rake_tasks/yard.rb
203
+ - scaffold/spec/spec_helper.rb
175
204
  homepage: https://github.com/Shashikant86/bddfire
176
205
  licenses:
177
206
  - MIT