quik 0.3.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/{HISTORY.md → CHANGELOG.md} +3 -3
- data/LICENSE.md +116 -0
- data/Manifest.txt +30 -29
- data/README.md +133 -131
- data/Rakefile +33 -34
- data/bin/qk +5 -5
- data/bin/quik +5 -5
- data/lib/quik.rb +55 -44
- data/lib/quik/builder.rb +96 -96
- data/lib/quik/catalog.rb +73 -56
- data/lib/quik/cli/main.rb +213 -179
- data/lib/quik/cli/opts.rb +33 -33
- data/lib/quik/colors.rb +148 -147
- data/lib/quik/config.rb +60 -60
- data/lib/quik/merger.rb +207 -208
- data/lib/quik/package.rb +116 -115
- data/lib/quik/version.rb +24 -24
- data/lib/quik/wizard.rb +88 -88
- data/test/data/gem-starter-template/Manifest.txt +9 -9
- data/test/data/gem-starter-template/README.md +22 -22
- data/test/data/gem-starter-template/lib/__filename__/version.rb +12 -12
- data/test/helper.rb +18 -22
- data/test/test_colors.rb +39 -39
- data/test/test_config.rb +35 -35
- data/test/test_merger.rb +35 -35
- data/test/test_package.rb +22 -22
- data/test/test_wizard.rb +50 -50
- metadata +26 -38
- data/.gemtest +0 -0
@@ -1,9 +1,9 @@
|
|
1
|
-
---
|
2
|
-
# Gem Starter Template
|
3
|
-
---
|
4
|
-
Manifest.txt
|
5
|
-
HISTORY.md
|
6
|
-
README.md
|
7
|
-
Rakefile
|
8
|
-
lib/{{filename}}.rb
|
9
|
-
lib/{{filename}}/version.rb
|
1
|
+
---
|
2
|
+
# Gem Starter Template
|
3
|
+
---
|
4
|
+
Manifest.txt
|
5
|
+
HISTORY.md
|
6
|
+
README.md
|
7
|
+
Rakefile
|
8
|
+
lib/{{filename}}.rb
|
9
|
+
lib/{{filename}}/version.rb
|
@@ -1,22 +1,22 @@
|
|
1
|
-
# gem-starter-template
|
2
|
-
|
3
|
-
gem starter template
|
4
|
-
|
5
|
-
|
6
|
-
## Settings / Config
|
7
|
-
|
8
|
-
~~~
|
9
|
-
{{ filename }} used for lib/{{ filename }}.rb
|
10
|
-
{{ project }} used for gem name
|
11
|
-
{{ klass }} used for class name (use class - why? why not?)
|
12
|
-
~~~
|
13
|
-
|
14
|
-
filename encode with --filename-- for variables e.g. lib/--filename--.rb -- why? why not?
|
15
|
-
|
16
|
-
|
17
|
-
use three jekyll conventions:
|
18
|
-
|
19
|
-
- folders w/ underscore get ignored
|
20
|
-
- files w/ front matter e.g. ---...--- get (pre)processed
|
21
|
-
- files w/o front matter get copied 1:1
|
22
|
-
|
1
|
+
# gem-starter-template
|
2
|
+
|
3
|
+
gem starter template
|
4
|
+
|
5
|
+
|
6
|
+
## Settings / Config
|
7
|
+
|
8
|
+
~~~
|
9
|
+
{{ filename }} used for lib/{{ filename }}.rb
|
10
|
+
{{ project }} used for gem name
|
11
|
+
{{ klass }} used for class name (use class - why? why not?)
|
12
|
+
~~~
|
13
|
+
|
14
|
+
filename encode with --filename-- for variables e.g. lib/--filename--.rb -- why? why not?
|
15
|
+
|
16
|
+
|
17
|
+
use three jekyll conventions:
|
18
|
+
|
19
|
+
- folders w/ underscore get ignored
|
20
|
+
- files w/ front matter e.g. ---...--- get (pre)processed
|
21
|
+
- files w/o front matter get copied 1:1
|
22
|
+
|
@@ -1,12 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
module $klass$
|
4
|
-
VERSION = $version$
|
5
|
-
VERSION2 = "$version$"
|
6
|
-
VERSION3 = '$version$'
|
7
|
-
VERSION4 = $test
|
8
|
-
VERSION5 = test$test$hello
|
9
|
-
VERSION6 = test$test$
|
10
|
-
VERSION7 = $$
|
11
|
-
VERSION8 = $1$2
|
12
|
-
end
|
1
|
+
|
2
|
+
|
3
|
+
module $klass$
|
4
|
+
VERSION = $version$
|
5
|
+
VERSION2 = "$version$"
|
6
|
+
VERSION3 = '$version$'
|
7
|
+
VERSION4 = $test
|
8
|
+
VERSION5 = test$test$hello
|
9
|
+
VERSION6 = test$test$
|
10
|
+
VERSION7 = $$
|
11
|
+
VERSION8 = $1$2
|
12
|
+
end
|
data/test/helper.rb
CHANGED
@@ -1,22 +1,18 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
def
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
## our own code
|
22
|
-
require 'quik'
|
1
|
+
require 'minitest/autorun'
|
2
|
+
|
3
|
+
|
4
|
+
class EchoIO
|
5
|
+
def initialize( buf )
|
6
|
+
@io = StringIO.new( buf )
|
7
|
+
end
|
8
|
+
|
9
|
+
def gets
|
10
|
+
str = @io.gets
|
11
|
+
puts "|>#{str.chomp}<|" ## remove newline (w/ chomp) in debug/echo output
|
12
|
+
str
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
## our own code
|
18
|
+
require 'quik'
|
data/test/test_colors.rb
CHANGED
@@ -1,39 +1,39 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
###
|
4
|
-
# to run use
|
5
|
-
# ruby -I ./lib -I ./test test/test_colors.rb
|
6
|
-
|
7
|
-
|
8
|
-
require 'helper'
|
9
|
-
|
10
|
-
|
11
|
-
class TestColors < MiniTest::Test
|
12
|
-
|
13
|
-
def test_colors
|
14
|
-
|
15
|
-
puts "this text is blue".blue
|
16
|
-
puts "this text is red".red
|
17
|
-
puts "this text is green".green + "this text is yellow".yellow
|
18
|
-
puts "this text is magenta".magenta
|
19
|
-
puts "this text is cyan".cyan
|
20
|
-
|
21
|
-
puts "this text is blue".bold.blue
|
22
|
-
puts "this text is red".bold.red
|
23
|
-
puts "this text is green".bold.green + "this text is yellow".bold.yellow
|
24
|
-
|
25
|
-
pp String.use_colors?
|
26
|
-
|
27
|
-
assert true ## if we get here; everything is ok
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_codes
|
31
|
-
assert_equal "\e[31mred\e[0m", "red".red
|
32
|
-
assert_equal "\e[34m\e[31mblue\e[0m\e[0m", "blue".red.blue
|
33
|
-
## better to generate "\e[34m;[31m" -- why? why not? e.g. one starting escpape and codes delimited by ; ??
|
34
|
-
assert_equal "\e[1mway bold\e[0m", "way bold".bold
|
35
|
-
assert_equal "\e[36m\e[1mcyan bold\e[0m\e[0m", "cyan bold".bold.cyan
|
36
|
-
end
|
37
|
-
|
38
|
-
end # class TestColors
|
39
|
-
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_colors.rb
|
6
|
+
|
7
|
+
|
8
|
+
require 'helper'
|
9
|
+
|
10
|
+
|
11
|
+
class TestColors < MiniTest::Test
|
12
|
+
|
13
|
+
def test_colors
|
14
|
+
|
15
|
+
puts "this text is blue".blue
|
16
|
+
puts "this text is red".red
|
17
|
+
puts "this text is green".green + "this text is yellow".yellow
|
18
|
+
puts "this text is magenta".magenta
|
19
|
+
puts "this text is cyan".cyan
|
20
|
+
|
21
|
+
puts "this text is blue".bold.blue
|
22
|
+
puts "this text is red".bold.red
|
23
|
+
puts "this text is green".bold.green + "this text is yellow".bold.yellow
|
24
|
+
|
25
|
+
pp String.use_colors?
|
26
|
+
|
27
|
+
assert true ## if we get here; everything is ok
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_codes
|
31
|
+
assert_equal "\e[31mred\e[0m", "red".red
|
32
|
+
assert_equal "\e[34m\e[31mblue\e[0m\e[0m", "blue".red.blue
|
33
|
+
## better to generate "\e[34m;[31m" -- why? why not? e.g. one starting escpape and codes delimited by ; ??
|
34
|
+
assert_equal "\e[1mway bold\e[0m", "way bold".bold
|
35
|
+
assert_equal "\e[36m\e[1mcyan bold\e[0m\e[0m", "cyan bold".bold.cyan
|
36
|
+
end
|
37
|
+
|
38
|
+
end # class TestColors
|
39
|
+
|
data/test/test_config.rb
CHANGED
@@ -1,35 +1,35 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
###
|
4
|
-
# to run use
|
5
|
-
# ruby -I ./lib -I ./test test/test_config.rb
|
6
|
-
|
7
|
-
|
8
|
-
require 'helper'
|
9
|
-
|
10
|
-
|
11
|
-
class TestConfig < MiniTest::Test
|
12
|
-
|
13
|
-
def test_config
|
14
|
-
|
15
|
-
c = Quik::OpenConfig.new
|
16
|
-
c.title = 'title'
|
17
|
-
c.author.name = 'name'
|
18
|
-
|
19
|
-
c.mrhyde.last_updated = Time.now
|
20
|
-
c.mrhyde.title = 'title'
|
21
|
-
c.mrhyde.name = 'name'
|
22
|
-
c.mrhyde.theme = 'theme'
|
23
|
-
c.mrhyde.meta.info = 'test nested nested value'
|
24
|
-
|
25
|
-
## test self reference in value assignment e.g.
|
26
|
-
c.test.title = c.title
|
27
|
-
c.test.name = c.author.name
|
28
|
-
|
29
|
-
pp c.to_h
|
30
|
-
|
31
|
-
assert true ## if we get here; everything is ok
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
end # class TestConfig
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_config.rb
|
6
|
+
|
7
|
+
|
8
|
+
require 'helper'
|
9
|
+
|
10
|
+
|
11
|
+
class TestConfig < MiniTest::Test
|
12
|
+
|
13
|
+
def test_config
|
14
|
+
|
15
|
+
c = Quik::OpenConfig.new
|
16
|
+
c.title = 'title'
|
17
|
+
c.author.name = 'name'
|
18
|
+
|
19
|
+
c.mrhyde.last_updated = Time.now
|
20
|
+
c.mrhyde.title = 'title'
|
21
|
+
c.mrhyde.name = 'name'
|
22
|
+
c.mrhyde.theme = 'theme'
|
23
|
+
c.mrhyde.meta.info = 'test nested nested value'
|
24
|
+
|
25
|
+
## test self reference in value assignment e.g.
|
26
|
+
c.test.title = c.title
|
27
|
+
c.test.name = c.author.name
|
28
|
+
|
29
|
+
pp c.to_h
|
30
|
+
|
31
|
+
assert true ## if we get here; everything is ok
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
end # class TestConfig
|
data/test/test_merger.rb
CHANGED
@@ -1,35 +1,35 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
###
|
4
|
-
# to run use
|
5
|
-
# ruby -I ./lib -I ./test test/test_merger.rb
|
6
|
-
|
7
|
-
|
8
|
-
require 'helper'
|
9
|
-
|
10
|
-
|
11
|
-
class TestMerger < MiniTest::Test
|
12
|
-
|
13
|
-
def test_gem_starter_template
|
14
|
-
|
15
|
-
config = { 'filename' => 'hola',
|
16
|
-
'version' => '0.0.1',
|
17
|
-
'klass' => 'Hola',
|
18
|
-
}
|
19
|
-
|
20
|
-
m = Quik::Merger.new
|
21
|
-
|
22
|
-
## m.merge_filenames( "#{Quik.root}/test/data/gem-starter-template", config, test: true )
|
23
|
-
## m.merge_filenames( "./o/gem", config )
|
24
|
-
|
25
|
-
## note: set output path (for testing; not in place)
|
26
|
-
## m.merge_files( "#{Quik.root}/test/data/gem-starter-template", config, test: true, o: "./o/#{Time.now.to_i}" )
|
27
|
-
|
28
|
-
## note: set output path (for testing; not in place)
|
29
|
-
m.merge( "#{Quik.root}/test/data/gem-starter-template", config, test: true, o: "./o/#{Time.now.to_i}" )
|
30
|
-
## m.merge( "./o/gem", config )
|
31
|
-
|
32
|
-
assert true ## if we get here; everything is ok
|
33
|
-
end
|
34
|
-
|
35
|
-
end # class TestMerger
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_merger.rb
|
6
|
+
|
7
|
+
|
8
|
+
require 'helper'
|
9
|
+
|
10
|
+
|
11
|
+
class TestMerger < MiniTest::Test
|
12
|
+
|
13
|
+
def test_gem_starter_template
|
14
|
+
|
15
|
+
config = { 'filename' => 'hola',
|
16
|
+
'version' => '0.0.1',
|
17
|
+
'klass' => 'Hola',
|
18
|
+
}
|
19
|
+
|
20
|
+
m = Quik::Merger.new
|
21
|
+
|
22
|
+
## m.merge_filenames( "#{Quik.root}/test/data/gem-starter-template", config, test: true )
|
23
|
+
## m.merge_filenames( "./o/gem", config )
|
24
|
+
|
25
|
+
## note: set output path (for testing; not in place)
|
26
|
+
## m.merge_files( "#{Quik.root}/test/data/gem-starter-template", config, test: true, o: "./o/#{Time.now.to_i}" )
|
27
|
+
|
28
|
+
## note: set output path (for testing; not in place)
|
29
|
+
m.merge( "#{Quik.root}/test/data/gem-starter-template", config, test: true, o: "./o/#{Time.now.to_i}" )
|
30
|
+
## m.merge( "./o/gem", config )
|
31
|
+
|
32
|
+
assert true ## if we get here; everything is ok
|
33
|
+
end
|
34
|
+
|
35
|
+
end # class TestMerger
|
data/test/test_package.rb
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
###
|
4
|
-
# to run use
|
5
|
-
# ruby -I ./lib -I ./test test/test_package.rb
|
6
|
-
|
7
|
-
|
8
|
-
require 'helper'
|
9
|
-
|
10
|
-
|
11
|
-
class TestPackage < MiniTest::Test
|
12
|
-
|
13
|
-
def test_gem_starter_template
|
14
|
-
|
15
|
-
pak = Quik::Package.new( 'gem-starter-template' )
|
16
|
-
pak.download
|
17
|
-
pak.unzip( './o/gem' )
|
18
|
-
|
19
|
-
assert true ## if we get here; everything is ok
|
20
|
-
end
|
21
|
-
|
22
|
-
end # class TestPackage
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_package.rb
|
6
|
+
|
7
|
+
|
8
|
+
require 'helper'
|
9
|
+
|
10
|
+
|
11
|
+
class TestPackage < MiniTest::Test
|
12
|
+
|
13
|
+
def test_gem_starter_template
|
14
|
+
|
15
|
+
pak = Quik::Package.new( 'gem-starter-template' )
|
16
|
+
pak.download
|
17
|
+
pak.unzip( './o/gem' )
|
18
|
+
|
19
|
+
assert true ## if we get here; everything is ok
|
20
|
+
end
|
21
|
+
|
22
|
+
end # class TestPackage
|
data/test/test_wizard.rb
CHANGED
@@ -1,50 +1,50 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
###
|
4
|
-
# to run use
|
5
|
-
# ruby -I ./lib -I ./test test/test_wizard.rb
|
6
|
-
|
7
|
-
|
8
|
-
require 'helper'
|
9
|
-
|
10
|
-
|
11
|
-
class TestWizard < MiniTest::Test
|
12
|
-
|
13
|
-
include Quik::Wizard ## lets you use ask etc.
|
14
|
-
|
15
|
-
def test_ask
|
16
|
-
|
17
|
-
$QUIK_WIZARD_IN = EchoIO.new( <<EOS )
|
18
|
-
Another Beautiful Static Site
|
19
|
-
|
20
|
-
H. J.
|
21
|
-
|
22
|
-
2
|
23
|
-
n
|
24
|
-
y
|
25
|
-
EOS
|
26
|
-
|
27
|
-
say "Hello, Wizard!"
|
28
|
-
|
29
|
-
title = ask "What's your site's title", "Your Site Title"
|
30
|
-
assert_equal 'Another Beautiful Static Site', title
|
31
|
-
|
32
|
-
title = ask "What's your site's title", "Your Site Title"
|
33
|
-
assert_equal 'Your Site Title', title
|
34
|
-
|
35
|
-
name = ask "Your Name"
|
36
|
-
assert_equal 'H. J.', name
|
37
|
-
|
38
|
-
theme = select "Select your theme", ["Starter", "Bootstrap", "Minimal"]
|
39
|
-
assert_equal 'Starter', theme
|
40
|
-
|
41
|
-
theme = select "Select your theme", ["Starter", "Bootstrap", "Minimal"]
|
42
|
-
assert_equal 'Bootstrap', theme
|
43
|
-
|
44
|
-
assert_equal false, yes?( "Add to GitHub" )
|
45
|
-
assert_equal false, no?( "Add to GitHub" )
|
46
|
-
|
47
|
-
assert true ## if we get here; everything is ok
|
48
|
-
end
|
49
|
-
|
50
|
-
end # class TestWizard
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_wizard.rb
|
6
|
+
|
7
|
+
|
8
|
+
require 'helper'
|
9
|
+
|
10
|
+
|
11
|
+
class TestWizard < MiniTest::Test
|
12
|
+
|
13
|
+
include Quik::Wizard ## lets you use ask etc.
|
14
|
+
|
15
|
+
def test_ask
|
16
|
+
|
17
|
+
$QUIK_WIZARD_IN = EchoIO.new( <<EOS )
|
18
|
+
Another Beautiful Static Site
|
19
|
+
|
20
|
+
H. J.
|
21
|
+
|
22
|
+
2
|
23
|
+
n
|
24
|
+
y
|
25
|
+
EOS
|
26
|
+
|
27
|
+
say "Hello, Wizard!"
|
28
|
+
|
29
|
+
title = ask "What's your site's title", "Your Site Title"
|
30
|
+
assert_equal 'Another Beautiful Static Site', title
|
31
|
+
|
32
|
+
title = ask "What's your site's title", "Your Site Title"
|
33
|
+
assert_equal 'Your Site Title', title
|
34
|
+
|
35
|
+
name = ask "Your Name"
|
36
|
+
assert_equal 'H. J.', name
|
37
|
+
|
38
|
+
theme = select "Select your theme", ["Starter", "Bootstrap", "Minimal"]
|
39
|
+
assert_equal 'Starter', theme
|
40
|
+
|
41
|
+
theme = select "Select your theme", ["Starter", "Bootstrap", "Minimal"]
|
42
|
+
assert_equal 'Bootstrap', theme
|
43
|
+
|
44
|
+
assert_equal false, yes?( "Add to GitHub" )
|
45
|
+
assert_equal false, no?( "Add to GitHub" )
|
46
|
+
|
47
|
+
assert true ## if we get here; everything is ok
|
48
|
+
end
|
49
|
+
|
50
|
+
end # class TestWizard
|