quik 0.3.0 → 1.0.0
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 +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
|