cuba_genie 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/lib/cuba_genie.rb +5 -5
- data/lib/cuba_genie/command.rb +29 -0
- data/lib/cuba_genie/{content.rb → content/content.rb} +7 -0
- data/lib/cuba_genie/{content_helpers.rb → content/content_helpers.rb} +0 -0
- data/lib/cuba_genie/{home_view_content.rb → content/home_view_content.rb} +6 -2
- data/lib/cuba_genie/{layout_view_content.rb → content/layout_view_content.rb} +6 -2
- data/lib/cuba_genie/cuba_setup.rb +26 -37
- data/lib/cuba_genie/minitest_setup.rb +23 -29
- data/lib/cuba_genie/version.rb +1 -1
- data/lib/cuba_genie/views_setup.rb +23 -29
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ea6de37fd537e0cf2a0022b2c449fba4d4b95dd
|
4
|
+
data.tar.gz: 519edffa9fc41d3e2cd2474e7d13c4854e4feef8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 440620a683669ad330137c3dcdf041a9a4ce8e7ea7197c253179b6c6401f8c7605b95d7f49b91a489c068add9b848be01602aa620f7929f2e7481807f4a15196
|
7
|
+
data.tar.gz: 3f5d48e6d95fa781d99df3e9bacae3fb90dbc6bfd961f853030ad1469ce821855ddff6fb114c9a3e11eba759fc6223d087120ccd8ed7a3f8c74d2c485a7aac82
|
data/CHANGELOG.md
ADDED
data/lib/cuba_genie.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require "cuba_genie/version"
|
2
|
-
require "cuba_genie/content"
|
3
|
-
require "cuba_genie/content_helpers"
|
2
|
+
require "cuba_genie/content/content"
|
3
|
+
require "cuba_genie/content/content_helpers"
|
4
4
|
|
5
5
|
require 'thor'
|
6
6
|
require_relative 'cuba_genie/command_list'
|
@@ -24,9 +24,9 @@ module CubaGenie
|
|
24
24
|
minitest = want_minitest?
|
25
25
|
reporter = (minitest ? choose_reporter : 'n')
|
26
26
|
capybara = (minitest ? want_capybara? : false)
|
27
|
-
@cmds.add_command CubaSetup.new(project_name, minitest, capybara)
|
28
|
-
@cmds.add_command ViewsSetup.new(project_name, choose_bootstrap_version)
|
29
|
-
@cmds.add_command MinitestSetup.new(project_name, reporter, capybara) if minitest
|
27
|
+
@cmds.add_command CubaSetup.new(project_name: project_name, minitest: minitest, capybara: capybara)
|
28
|
+
@cmds.add_command ViewsSetup.new(project_name: project_name, bootstrap_version: choose_bootstrap_version)
|
29
|
+
@cmds.add_command MinitestSetup.new(project_name: project_name, reporter: reporter, capybara_setup: capybara) if minitest
|
30
30
|
puts closing_message(project_name) if @cmds.execute
|
31
31
|
end
|
32
32
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module CubaGenie
|
2
|
+
|
3
|
+
class Command
|
4
|
+
|
5
|
+
attr_reader :description, :error, :project_name
|
6
|
+
|
7
|
+
def initialize(**args)
|
8
|
+
@files_created, @dirs_created = [], []
|
9
|
+
end
|
10
|
+
|
11
|
+
def execute
|
12
|
+
yield
|
13
|
+
true
|
14
|
+
rescue Exception => e
|
15
|
+
puts e.message and false
|
16
|
+
end
|
17
|
+
|
18
|
+
def unexecute(message)
|
19
|
+
puts message unless ENV['RACK_ENV'] == 'test'
|
20
|
+
@files_created.each do |file_path|
|
21
|
+
File.delete file_path if File.exist? file_path
|
22
|
+
end
|
23
|
+
@dirs_created.each do |dir_name|
|
24
|
+
FileUtils.rm_rf(dir_name) if Dir.exist? dir_name
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end #class
|
29
|
+
end #CubaGenie
|
@@ -108,10 +108,17 @@ gem "mote-render"
|
|
108
108
|
group :development, :test do
|
109
109
|
gem 'pry-byebug'
|
110
110
|
gem 'minitest-reporters'
|
111
|
+
%s
|
111
112
|
gem 'shotgun'
|
112
113
|
end
|
113
114
|
)
|
114
115
|
|
116
|
+
GEM_FILE_CAPYBARA_CONTENT = %Q(
|
117
|
+
gem 'rack-test'
|
118
|
+
gem 'minitest-capybara'
|
119
|
+
gem 'selenium-webdriver'
|
120
|
+
)
|
121
|
+
|
115
122
|
|
116
123
|
RAKE_FILE_CONTENT = %q(
|
117
124
|
require 'rake/testtask'
|
File without changes
|
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
module Content
|
2
|
+
|
3
|
+
HOME_VIEW_CONTENT = %Q(
|
2
4
|
<div class="jumbotron">
|
3
5
|
<div class="container">
|
4
6
|
<h1>Hello from Cuba Genie!</h1>
|
@@ -35,4 +37,6 @@ generated by <a href="https://gitlab.com/RedFred7/cuba-genie">Cuba Genie</a>. Wh
|
|
35
37
|
<p>© your company name here </p>
|
36
38
|
</footer>
|
37
39
|
</div> <!-- /container -->
|
38
|
-
|
40
|
+
)
|
41
|
+
|
42
|
+
end
|
@@ -1,44 +1,37 @@
|
|
1
1
|
require 'fileutils'
|
2
|
-
require_relative 'content'
|
2
|
+
require_relative 'content/content'
|
3
|
+
require_relative 'command'
|
3
4
|
|
4
5
|
module CubaGenie
|
5
6
|
|
6
|
-
class CubaSetup
|
7
|
+
class CubaSetup < Command
|
7
8
|
include Content
|
8
|
-
attr_reader :description, :error, :project_name
|
9
9
|
|
10
|
-
def initialize(
|
10
|
+
def initialize(**args)
|
11
|
+
@project_name = args[:project_name]
|
12
|
+
@minitest = args[:minitest]
|
13
|
+
@capybara = args[:capybara]
|
11
14
|
@description = "Creating Cuba setup"
|
12
|
-
|
13
|
-
|
14
|
-
@capybara = capybara
|
15
|
-
@files_created = []
|
16
|
-
@dirs_created = []
|
15
|
+
super
|
16
|
+
|
17
17
|
end
|
18
18
|
|
19
19
|
def execute
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
rescue Exception => e
|
31
|
-
@error = e.message and false
|
20
|
+
super do
|
21
|
+
FileUtils.mkdir @project_name
|
22
|
+
@dirs_created << @project_name
|
23
|
+
FileUtils.chdir @project_name
|
24
|
+
create_app_file
|
25
|
+
create_rack_file
|
26
|
+
create_gem_file
|
27
|
+
create_ruby_version_file
|
28
|
+
create_ruby_gemset_file
|
29
|
+
end
|
32
30
|
end
|
33
31
|
|
32
|
+
|
34
33
|
def unexecute
|
35
|
-
|
36
|
-
@files_created.each do |file_path|
|
37
|
-
File.delete file_path if File.exist? file_path
|
38
|
-
end
|
39
|
-
@dirs_created.each do |dir_name|
|
40
|
-
FileUtils.rm_rf(dir_name) if Dir.exist? dir_name
|
41
|
-
end
|
34
|
+
super("rolling back Cuba basic setup")
|
42
35
|
end
|
43
36
|
|
44
37
|
private
|
@@ -57,15 +50,11 @@ module CubaGenie
|
|
57
50
|
|
58
51
|
def create_gem_file
|
59
52
|
File.open('Gemfile', 'w') do |f|
|
60
|
-
if @minitest
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
"\n\s\sgem 'selenium-webdriver'"
|
66
|
-
end
|
67
|
-
f.write GEM_FILE_CONTENT.split("\n").insert(8, gems_to_add).join("\n")
|
68
|
-
else
|
53
|
+
if @minitest && !@capybara
|
54
|
+
f.write GEM_FILE_CONTENT % "gem 'rack-test'"
|
55
|
+
elsif @minitest && @capybara
|
56
|
+
f.write GEM_FILE_CONTENT % GEM_FILE_CAPYBARA_CONTENT
|
57
|
+
elsif !@minitest
|
69
58
|
f.write GEM_FILE_CONTENT
|
70
59
|
end
|
71
60
|
end
|
@@ -1,50 +1,44 @@
|
|
1
1
|
require 'fileutils'
|
2
|
-
require_relative 'content'
|
2
|
+
require_relative 'content/content'
|
3
|
+
require_relative 'command'
|
4
|
+
|
3
5
|
|
4
6
|
module CubaGenie
|
5
7
|
|
6
|
-
class MinitestSetup
|
8
|
+
class MinitestSetup < Command
|
7
9
|
include Content
|
8
10
|
|
9
|
-
attr_reader :description, :error
|
10
11
|
attr_writer :test_helper
|
11
12
|
|
12
|
-
def initialize(
|
13
|
-
@description = (capybara_setup ?
|
13
|
+
def initialize(**args)
|
14
|
+
@description = (args[:capybara_setup] ?
|
14
15
|
"Setting up Minitest functional and acceptance tests" :
|
15
16
|
"Setting up Minitest functional tests")
|
16
|
-
@capybara_setup = capybara_setup
|
17
|
-
@project_name = project_name
|
18
|
-
@reporter = reporter
|
19
|
-
@files_created, @dirs_created = [], []
|
17
|
+
@capybara_setup = args[:capybara_setup]
|
18
|
+
@project_name = args[:project_name]
|
19
|
+
@reporter = args[:reporter] || 'Default'
|
20
20
|
@test_helper = "test/test_helper.rb"
|
21
|
+
super
|
21
22
|
end
|
22
23
|
|
23
24
|
def execute
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
super do
|
26
|
+
FileUtils.mkdir_p "test/functional"
|
27
|
+
@dirs_created << "test" << "test/functional"
|
28
|
+
if @capybara_setup
|
29
|
+
FileUtils.mkdir_p "test/acceptance"
|
30
|
+
@dirs_created << "test/acceptance"
|
31
|
+
end
|
32
|
+
create_test_helper
|
33
|
+
create_rake_file
|
34
|
+
create_functional_test
|
35
|
+
create_acceptance_test if @capybara_setup
|
29
36
|
end
|
30
|
-
create_test_helper
|
31
|
-
create_rake_file
|
32
|
-
create_functional_test
|
33
|
-
create_acceptance_test if @capybara_setup
|
34
|
-
true
|
35
|
-
rescue Exception => e
|
36
|
-
@error = e.message and false
|
37
37
|
end
|
38
38
|
|
39
|
+
|
39
40
|
def unexecute
|
40
|
-
|
41
|
-
# FileUtils.chdir @parent_dir
|
42
|
-
@files_created.each do |file_path|
|
43
|
-
File.delete file_path if File.exist? file_path
|
44
|
-
end
|
45
|
-
@dirs_created.each do |dir_name|
|
46
|
-
FileUtils.rm_rf(dir_name) if Dir.exist? dir_name
|
47
|
-
end
|
41
|
+
super("rolling back Minitest")
|
48
42
|
end
|
49
43
|
|
50
44
|
|
data/lib/cuba_genie/version.rb
CHANGED
@@ -1,54 +1,48 @@
|
|
1
1
|
require 'fileutils'
|
2
|
-
require_relative 'content'
|
3
|
-
require_relative 'home_view_content'
|
4
|
-
require_relative 'layout_view_content'
|
2
|
+
require_relative 'content/content'
|
3
|
+
require_relative 'content/home_view_content'
|
4
|
+
require_relative 'content/layout_view_content'
|
5
|
+
require_relative 'command'
|
6
|
+
|
5
7
|
|
6
8
|
module CubaGenie
|
7
9
|
|
8
10
|
ALLOWED_BOOTSTRAP_VERSIONS = %w(3.3.0 3.3.5 3.3.6 4.0.0-alpha.2)
|
9
11
|
|
10
|
-
class ViewsSetup
|
12
|
+
class ViewsSetup < Command
|
11
13
|
require 'open-uri'
|
12
14
|
require 'zip'
|
13
15
|
|
14
16
|
include Content
|
15
|
-
attr_reader :description, :error, :project_name
|
16
17
|
|
17
|
-
def initialize(
|
18
|
-
@project_name = project_name
|
18
|
+
def initialize(**args)
|
19
|
+
@project_name = args[:project_name]
|
19
20
|
#TODO: allow for choice of different template engines
|
20
21
|
@description = 'Setting up views'
|
21
|
-
@
|
22
|
-
|
23
|
-
@bootstrap_version = bootstrap_version
|
22
|
+
@bootstrap_version = args[:bootstrap_version] || 'n'
|
23
|
+
super
|
24
24
|
end
|
25
25
|
|
26
26
|
def execute
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
27
|
+
super do
|
28
|
+
layout_view_formatters = [nil, @project_name.capitalize, nil]
|
29
|
+
|
30
|
+
if ALLOWED_BOOTSTRAP_VERSIONS.include? @bootstrap_version
|
31
|
+
bootstrap_location =
|
32
|
+
"https://github.com/twbs/bootstrap/releases/download/v#{@bootstrap_version}/bootstrap-#{@bootstrap_version}-dist.zip"
|
33
|
+
download_bootstrap_from bootstrap_location
|
34
|
+
extract_bootstrap_to 'public'
|
35
|
+
layout_view_formatters = [BOOTSTRAP_CSS, @project_name.capitalize, BOOTSTRAP_JS]
|
36
|
+
end
|
37
|
+
create_view_files(layout_view_formatters)
|
35
38
|
end
|
36
|
-
create_view_files(layout_view_formatters)
|
37
|
-
true
|
38
|
-
rescue Exception => e
|
39
|
-
@error = e.message and false
|
40
39
|
end
|
41
40
|
|
42
41
|
def unexecute
|
43
|
-
|
44
|
-
@files_created.each do |file_path|
|
45
|
-
File.delete file_path if File.exist? file_path
|
46
|
-
end
|
47
|
-
@dirs_created.each do |dir_name|
|
48
|
-
FileUtils.rm_rf(dir_name) if Dir.exist? dir_name
|
49
|
-
end
|
42
|
+
super("rolling back views")
|
50
43
|
end
|
51
44
|
|
45
|
+
|
52
46
|
private
|
53
47
|
def create_view_files(layout_view_formatters)
|
54
48
|
FileUtils.mkdir "views"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cuba_genie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Heath
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -163,6 +163,7 @@ extra_rdoc_files: []
|
|
163
163
|
files:
|
164
164
|
- ".gitignore"
|
165
165
|
- ".travis.yml"
|
166
|
+
- CHANGELOG.md
|
166
167
|
- Gemfile
|
167
168
|
- LICENSE.txt
|
168
169
|
- README.md
|
@@ -172,12 +173,13 @@ files:
|
|
172
173
|
- exe/cuba_genie
|
173
174
|
- exe/setup
|
174
175
|
- lib/cuba_genie.rb
|
176
|
+
- lib/cuba_genie/command.rb
|
175
177
|
- lib/cuba_genie/command_list.rb
|
176
|
-
- lib/cuba_genie/content.rb
|
177
|
-
- lib/cuba_genie/content_helpers.rb
|
178
|
+
- lib/cuba_genie/content/content.rb
|
179
|
+
- lib/cuba_genie/content/content_helpers.rb
|
180
|
+
- lib/cuba_genie/content/home_view_content.rb
|
181
|
+
- lib/cuba_genie/content/layout_view_content.rb
|
178
182
|
- lib/cuba_genie/cuba_setup.rb
|
179
|
-
- lib/cuba_genie/home_view_content.rb
|
180
|
-
- lib/cuba_genie/layout_view_content.rb
|
181
183
|
- lib/cuba_genie/minitest_setup.rb
|
182
184
|
- lib/cuba_genie/version.rb
|
183
185
|
- lib/cuba_genie/views_setup.rb
|
@@ -201,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
201
203
|
version: '0'
|
202
204
|
requirements: []
|
203
205
|
rubyforge_project:
|
204
|
-
rubygems_version: 2.4.
|
206
|
+
rubygems_version: 2.4.6
|
205
207
|
signing_key:
|
206
208
|
specification_version: 4
|
207
209
|
summary: CubaGenie is a generator gem that sets up all the infrastructure you need
|