drjekyll 0.0.1 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1abacc0051e57841738784b05c84d1adb06051ad
4
- data.tar.gz: d756a8cd82ef92f2310f8dd40445583c8abf3c7c
3
+ metadata.gz: 5f8388480e3692910b92dcd78a42097b242f72f9
4
+ data.tar.gz: 8ac266778b6fcf94ed8e86e6a80454e378fb3d6e
5
5
  SHA512:
6
- metadata.gz: 0c127f82e87a8eaf5e5dc2be3440c11863d61c0282917e5fd03925531cb7e8281407a7273ad2feb6f4d51bb620a45dea1b759a170993fd8ae528457af5cf805b
7
- data.tar.gz: 09f07a808b355bbcb8cb06ea2a5c466af3d22ab84829dfe813128ae5fa4212cc5053827c9862848bcd49c228504632ecdec6bfca9e703bec839dcbb8993ad52a
6
+ metadata.gz: 1970d2319f64132371a156f9a6b128568401781bd91a59d254b8fde164f7f8b960800e8b7682b14792515eb17ad4c294edd00fbc3284c6ad19da710d41e7195f
7
+ data.tar.gz: 88523b5e8dce44330ffb9612703b0a345a39b30f927a7a3dbcc91f97a1a4d3334342d684f76700f9f3ef9685efead37bf502338a6f8d7bce0a6438863e5434d5
data/Manifest.txt CHANGED
@@ -9,7 +9,9 @@ lib/drjekyll/catalog.rb
9
9
  lib/drjekyll/cli/download.rb
10
10
  lib/drjekyll/cli/list.rb
11
11
  lib/drjekyll/cli/main.rb
12
+ lib/drjekyll/cli/new.rb
12
13
  lib/drjekyll/cli/opts.rb
13
14
  lib/drjekyll/cli/unzip.rb
15
+ lib/drjekyll/package.rb
14
16
  lib/drjekyll/version.rb
15
17
  test/data/themes.yml
data/README.md CHANGED
@@ -1,2 +1,165 @@
1
- # drjekyll
2
- drjekyll
1
+ # drjekyll - the missing theme package manager
2
+
3
+ jekyll command line tool
4
+
5
+ * home :: [github.com/drjekyllthemes/drjekyll](https://github.com/drjekyllthemes/drjekyll)
6
+ * bugs :: [github.com/drjekyllthemes/drjekyll/issues](https://github.com/drjekyllthemes/drjekyll/issues)
7
+ * gem :: [rubygems.org/gems/drjekyll](https://rubygems.org/gems/drjekyll)
8
+ * rdoc :: [rubydoc.info/gems/drjekyll](http://rubydoc.info/gems/drjekyll)
9
+ * forum :: [wwwmake](http://groups.google.com/group/wwwmake)
10
+
11
+
12
+ ## Usage
13
+
14
+ The drjekyll gem includes a command line tool that
15
+ lets you manage static site theme packages.
16
+
17
+ Try:
18
+
19
+ ```
20
+ $ drjekyll --help # or
21
+ $ drj -h
22
+ ```
23
+
24
+ Resulting in:
25
+
26
+ ```
27
+ NAME
28
+ drjekyll/drj - jekyll command line tool .:. the missing static site package manager
29
+
30
+ SYNOPSIS
31
+ drjekyll/drj [global options] command [command options] [arguments...]
32
+
33
+ VERSION
34
+ 0.1.0
35
+
36
+ GLOBAL OPTIONS
37
+ --help - Show this message
38
+ --verbose - (Debug) Show debug messages
39
+ --version - Display the program version
40
+
41
+ COMMANDS
42
+ list, ls, l - List themes
43
+ new, n - Download 'n' setup (unzip/unpack) theme
44
+ download, dl, d, get, g - (Debug) Step 1: Download theme; .zip archive saved in working folder (./)
45
+ unpack, pk, p, setup, s - (Debug) Step 2: Setup (unzip/unpack) theme; uses saved .zip archive in working folder (./)
46
+ help - Shows a list of commands or help for one command
47
+ test - (Debug) Test command suite
48
+ ```
49
+
50
+
51
+ ### List Themes Command - `list`, `ls`, `l`
52
+
53
+ Use:
54
+
55
+ ```
56
+ $ drjekyll list # or
57
+ $ drjekyll ls # or
58
+ $ drjekyll l # or
59
+ $ drj l
60
+ ```
61
+
62
+ Resulting in:
63
+
64
+ ```
65
+ 1..Planet Jekyll's Starter (Minimal) (starter | planetjekyllsstarterminimal) by Gerald Bauer - #white
66
+ 2..Dr Jekyll's Minimal (minimial | drjekyllsminimal) by Gerald Bauer - #white
67
+ 3..Dr Jekyll's Bootstrap (bootstrap | drjekyllsbootstrap) by Gerald Bauer - #bootstrap #scss #white
68
+ 4..Dr Jekyll's Classics Book (classics | drjekyllsclassicsbook) by Gerald Bauer - #books #white
69
+ 5..Poole (poole) by Mark Otto - #poole
70
+ 6..Poole's Hyde (pooleshyde) by Mark Otto - #poole
71
+ 7..Poole's Lanyon (pooleslanyon) by Mark Otto - #poole
72
+ 8..Beautiful Jekyll (beautifuljekyll) by Dean Attali
73
+ ...
74
+ ```
75
+
76
+ Note: You can filter by name or tags; just add the query e.g.:
77
+
78
+ ```
79
+ $ drjekyll list resume # or
80
+ $ drjkeyll ls resume # or
81
+ $ drjkeyll l resume # or
82
+ $ drj l resume
83
+ ```
84
+
85
+ Resulting in:
86
+
87
+ ```
88
+ 68..Resume Cards (resumecards) by Elle Kasai - #resume
89
+ 104..iCard Resume (icardresume) by Dong Liang - #resume
90
+ 109..Resume (resume) by Joel Glovier - #resume
91
+ ```
92
+
93
+
94
+ ### New Theme Command - `new`, `n`
95
+
96
+ To download and install (unzip/unpack) a theme archive use:
97
+
98
+ ```
99
+ $ drjekyll new starter # or
100
+ $ drjekyll n starter # or
101
+ $ drj n starter
102
+ ```
103
+
104
+ This will download the `starter.zip` to your working folder and
105
+ unzip the archive into the `./starter` folder.
106
+
107
+
108
+ **More Examples**
109
+
110
+ To download and install (unzip/unpack):
111
+
112
+ ```
113
+ 7..Poole's Lanyon (pooleslanyon) by Mark Otto - #poole
114
+ ```
115
+
116
+ Use:
117
+
118
+ ```
119
+ $ drjekyll new pooleslanyon # or
120
+ $ drjekyll n pooleslanyon # or
121
+ $ drj n pooleslanyon
122
+ ```
123
+
124
+ To download and install (unzip/unpack):
125
+
126
+ ```
127
+ 8..Beautiful Jekyll (beautifuljekyll) by Dean Attali
128
+ ```
129
+
130
+ Use:
131
+
132
+ ```
133
+ $ drjekyll new beautifuljekyll # or
134
+ $ drjekyll n beautifuljekyll # or
135
+ $ drj n beautifuljekyll
136
+ ```
137
+
138
+ And so on and so forth.
139
+
140
+
141
+
142
+ **More Themes**
143
+
144
+ See the [Dr. Jekyll's Themes](https://drjekyllthemes.github.io) directory .
145
+
146
+
147
+
148
+ ## Install
149
+
150
+ Just install the gem:
151
+
152
+ $ gem install drjekyll
153
+
154
+
155
+ ## License
156
+
157
+ The `drjekyll` scripts are dedicated to the public domain.
158
+ Use it as you please with no restrictions whatsoever.
159
+
160
+
161
+ ## Questions? Comments?
162
+
163
+ Send them along to the [wwwmake forum](http://groups.google.com/group/wwwmake).
164
+ Thanks!
165
+
data/Rakefile CHANGED
@@ -18,8 +18,12 @@ Hoe.spec 'drjekyll' do
18
18
  self.history_file = 'HISTORY.md'
19
19
 
20
20
  self.extra_deps = [
21
- ## 3rd party
21
+ ['props', '>=1.1.2'],
22
+ ['logutils', '>=0.6.1'],
22
23
  ['fetcher', '>= 0.4.5'],
24
+ ## 3rd party
25
+ ['gli', '>=2.12.2'],
26
+ ['rubyzip', '>=1.1.7'],
23
27
  ]
24
28
 
25
29
  self.licenses = ['Public Domain']
data/lib/drjekyll.rb CHANGED
@@ -13,26 +13,26 @@ require 'yaml'
13
13
  ## 3rd party gems
14
14
  require 'props' ## Use Env.home
15
15
  require 'logutils'
16
+ require 'fetcher'
16
17
 
17
18
 
18
- ## require 'fetcher'
19
-
20
19
  ## more 3rd party gems
20
+ require 'zip' # use $ gem install rubyzip
21
21
  require 'gli'
22
22
 
23
23
 
24
-
25
24
  # our own code
26
25
 
27
26
  require 'drjekyll/version' # note: version always goes first
28
27
  require 'drjekyll/catalog'
28
+ require 'drjekyll/package'
29
29
 
30
30
  require 'drjekyll/cli/opts'
31
31
  require 'drjekyll/cli/main'
32
32
  require 'drjekyll/cli/list'
33
33
  require 'drjekyll/cli/download'
34
34
  require 'drjekyll/cli/unzip'
35
-
35
+ require 'drjekyll/cli/new'
36
36
 
37
37
 
38
38
  module DrJekyll
@@ -47,7 +47,7 @@ end # module DrJekyll
47
47
  ## DrJekyll.banner ## say hello
48
48
 
49
49
  ## for debugging
50
- pp Env.home
51
- pp DrJekyll.root
50
+ ## pp Env.home
51
+ ## pp DrJekyll.root
52
52
 
53
53
  DrJekyll.main if __FILE__ == $0
@@ -3,10 +3,25 @@
3
3
  module DrJekyll
4
4
 
5
5
  class Catalog
6
-
7
- def initialize( path )
6
+
7
+ def self.from_url( src )
8
+ worker = Fetcher::Worker.new
9
+ text = worker.read_utf8!( src )
10
+ self.from_string( text )
11
+ end
12
+
13
+ def self.from_file( path )
8
14
  ## read in themes catalog
9
- text = File.read( path )
15
+ text = File.read( path ) ## fix: use File.read_utf8 ??
16
+ self.from_string( text )
17
+ end
18
+
19
+ def self.from_string( text )
20
+ self.new( text )
21
+ end
22
+
23
+
24
+ def initialize( text )
10
25
  @themes = YAML.load( text )
11
26
 
12
27
  ## auto-add keys for now (for quick testing)
@@ -70,7 +85,7 @@ class Catalog
70
85
  end
71
86
  end # method filter
72
87
 
73
- def get( key ) ## use fetch or different name - why? why not??
88
+ def find( key ) ## use fetch/get/? or different name - why? why not??
74
89
  ## find theme by key
75
90
  ## fix/todo: use linear search for now; use hash lookup later
76
91
 
@@ -14,20 +14,21 @@ class DownloadCommand ## find a better name - why, why not ??
14
14
  ## note: required template name (defaults to starter for now)
15
15
  key = args[0] || 'starter'
16
16
 
17
- theme = @catalog.get( key )
18
-
17
+ theme = @catalog.find( key )
18
+
19
19
  if theme
20
- download( theme )
20
+ download( key, theme )
21
21
  else
22
22
  ## todo: issue warning - why, why not??
23
+ puts "*** theme '#{key}' not found; sorry"
23
24
  end
24
25
  end
25
-
26
- def download( theme )
27
- ## to be done
28
- pp theme
26
+
27
+ def download( key, theme )
28
+ pak = Package.new( key, theme )
29
+ pak.download
29
30
  end
30
-
31
+
31
32
  end ## class DownloadCommand
32
33
 
33
34
  end # module DrJekyll
@@ -33,20 +33,30 @@ logger = LogUtils::Logger.root
33
33
  opts = Opts.new
34
34
 
35
35
 
36
- program_desc 'drjekyll command line tool'
36
+ program_desc 'jekyll command line tool .:. the missing static site package manager'
37
37
  version VERSION
38
38
 
39
39
 
40
- desc 'Use only local (offline) cached data; no (online) remote network access'
41
- switch [:l, :local], negatable: false
40
+ ## desc 'Use only local (offline) cached data; no (online) remote network access'
41
+ ## switch [:l, :local], negatable: false
42
42
 
43
43
  desc '(Debug) Show debug messages'
44
44
  switch [:verbose], negatable: false ## todo: use -w for short form? check ruby interpreter if in use too?
45
45
 
46
- desc 'Only show warnings, errors and fatal messages'
47
- switch [:q, :quiet], negatable: false
46
+ ## desc 'Only show warnings, errors and fatal messages'
47
+ ## switch [:q, :quiet], negatable: false
48
48
 
49
49
 
50
+ def self.fetch_catalog
51
+ ## themes_dir = "#{DrJekyll.root}/test/data"
52
+ ## catalog = Catalog.new( "#{themes_dir}/themes.yml" )
53
+
54
+ url = "https://github.com/drjekyllthemes/themes/raw/master/o/themes.yml"
55
+
56
+ catalog = Catalog.from_url( url )
57
+ catalog
58
+ end
59
+
50
60
 
51
61
  desc "List themes"
52
62
  arg_name 'QUERY' # optional search query/filter
@@ -54,8 +64,7 @@ command [:list,:ls,:l] do |c|
54
64
 
55
65
  c.action do |g,o,args|
56
66
  ## read in themes diretory
57
- themes_dir = "#{DrJekyll.root}/test/data"
58
- catalog = Catalog.new( "#{themes_dir}/themes.yml" )
67
+ catalog = fetch_catalog
59
68
 
60
69
  cmd = ListCommand.new( catalog, opts )
61
70
  cmd.run( args )
@@ -65,14 +74,13 @@ end # command list
65
74
 
66
75
 
67
76
  ## use get or fetch - why, why not??
68
- desc "Download theme; saved in ~/.drjekyll/cache"
77
+ desc "(Debug) Step 1: Download theme; .zip archive saved in working folder (./)"
69
78
  arg_name 'NAME' # required theme name
70
79
  command [:download,:dl,:d,:get,:g] do |c|
71
80
 
72
81
  c.action do |g,o,args|
73
82
  ## read in themes diretory
74
- themes_dir = "#{DrJekyll.root}/test/data"
75
- catalog = Catalog.new( "#{themes_dir}/themes.yml" )
83
+ catalog = fetch_catalog
76
84
 
77
85
  cmd = DownloadCommand.new( catalog, opts )
78
86
  cmd.run( args )
@@ -82,14 +90,13 @@ end # command download
82
90
 
83
91
 
84
92
  ## use install or unzip/unpack - why, why not??
85
- desc "Setup (unzip/unpack) theme; use archive in ~/.drjekyll/cache"
93
+ desc "(Debug) Step 2: Setup (unzip/unpack) theme; uses saved .zip archive in working folder (./)"
86
94
  arg_name 'NAME' # required theme name
87
95
  command [:unpack,:pk,:p,:setup,:s] do |c|
88
96
 
89
97
  c.action do |g,o,args|
90
98
  ## read in themes diretory
91
- themes_dir = "#{DrJekyll.root}/test/data"
92
- catalog = Catalog.new( "#{themes_dir}/themes.yml" )
99
+ catalog = fetch_catalog
93
100
 
94
101
  cmd = UnzipCommand.new( catalog, opts )
95
102
  cmd.run( args )
@@ -103,12 +110,11 @@ arg_name 'NAME' # required theme name
103
110
  command [:new,:n] do |c|
104
111
 
105
112
  c.action do |g,o,args|
113
+ ## read in themes diretory
114
+ catalog = fetch_catalog
106
115
 
107
- ## todo: required template name (defaults to starter for now)
108
- name = args[0] || 'starter'
109
-
110
- puts " download theme here"
111
- puts " unzip/unpack (setup) here"
116
+ cmd = NewCommand.new( catalog, opts )
117
+ cmd.run( args )
112
118
  puts 'Done.'
113
119
  end # action
114
120
  end # command setup
@@ -0,0 +1,35 @@
1
+ # encoding: utf-8
2
+
3
+
4
+ module DrJekyll
5
+
6
+ class NewCommand ## find a better name - why, why not ??
7
+
8
+ def initialize( catalog, opts )
9
+ @catalog = catalog
10
+ @opts = opts
11
+ end
12
+
13
+ def run( args )
14
+ ## note: required template name (defaults to starter for now)
15
+ key = args[0] || 'starter'
16
+
17
+ theme = @catalog.find( key )
18
+
19
+ if theme
20
+ download_and_unzip( key, theme )
21
+ else
22
+ ## todo: issue warning - why, why not??
23
+ puts "*** theme '#{key}' not found; sorry"
24
+ end
25
+ end
26
+
27
+ def download_and_unzip( key, theme )
28
+ pak = Package.new( key, theme )
29
+ pak.download
30
+ pak.unzip( "./#{key}" )
31
+ end
32
+
33
+ end ## class NewCommand
34
+
35
+ end # module DrJekyll
@@ -14,20 +14,21 @@ class UnzipCommand ## find a better name - why, why not ??
14
14
  ## note: required template name (defaults to starter for now)
15
15
  key = args[0] || 'starter'
16
16
 
17
- theme = @catalog.get( key )
18
-
17
+ theme = @catalog.find( key )
18
+
19
19
  if theme
20
- unzip( theme )
20
+ unzip( key, theme )
21
21
  else
22
22
  ## todo: issue warning - why, why not??
23
+ puts "*** theme '#{key}' not found; sorry"
23
24
  end
24
25
  end
25
26
 
26
- def unzip( theme )
27
- ## to be done
28
- pp theme
27
+ def unzip( key, theme )
28
+ pak = Package.new( key, theme )
29
+ pak.unzip( "./#{key}" )
29
30
  end
30
-
31
+
31
32
  end ## class UnzipCommand
32
33
 
33
34
  end # module DrJekyll
@@ -0,0 +1,87 @@
1
+ # encoding: utf-8
2
+
3
+ module DrJekyll
4
+
5
+ class Package
6
+
7
+ def initialize( key, hash ) ## note: for now pass in key as its own arg (not part/included in hash)
8
+ @key = key
9
+ @hash = hash
10
+
11
+ @download_url = @hash['download_url'] # as string
12
+ end
13
+
14
+ def remote_zip_url # remote zip url
15
+ @download_url # as string
16
+ end
17
+
18
+ def local_zip_name
19
+ @key # note: will NOT include/return .zip extension
20
+ end
21
+
22
+ def local_zip_dir
23
+ "." ## use ./tmp or ./dl or ~/.drjekyll/cache ??
24
+ end
25
+
26
+ def local_zip_path # local zip path
27
+ "#{local_zip_dir}/#{local_zip_name}.zip"
28
+ end
29
+
30
+
31
+
32
+ def download
33
+ src = remote_zip_url
34
+ dest_zip = local_zip_path
35
+
36
+ ## make sure dest folder exists
37
+ FileUtils.mkdir_p( local_zip_dir ) unless Dir.exists?( local_zip_dir )
38
+ fetch_theme( src, dest_zip )
39
+ end
40
+
41
+ def unzip( unzip_dir )
42
+ src = local_zip_path
43
+ dest_unzip = unzip_dir ## local_unzip_dir
44
+
45
+ ## check if folders exists? if not create folder in path
46
+ FileUtils.mkdir_p( dest_unzip ) unless Dir.exists?( dest_unzip )
47
+ unzip_theme( src, dest_unzip )
48
+ end
49
+
50
+ private
51
+ def fetch_theme( src, dest )
52
+ ## step 1 - fetch archive
53
+ worker = Fetcher::Worker.new
54
+ worker.copy( src, dest )
55
+ ### fix: add src.sha5
56
+ ### inside folder
57
+ ### lets us check if current HEAD version is in place across datafiles etc.
58
+ ## - try HTTP HEAD ?? to check?
59
+ end
60
+
61
+ def unzip_theme( src, dest, opts={} )
62
+ ### todo/fix: rename or remove root folder -- use opts { root: false or something??}
63
+ # e.g
64
+ # !/starter-gh-pages/_layouts/ becomes
65
+ # !/_layouts/ etc.
66
+ Zip::File.open( src ) do |zipfile|
67
+ zipfile.each do |file|
68
+ if file.directory?
69
+ puts " skip directory zip entry - #{file.name}"
70
+ else
71
+ ### fix: only cut-off if master or gh-pages ???
72
+ ## check if others include root folder?
73
+ name = file.name[ file.name.index('/')+1..-1] ## cut-off root/first path entry
74
+ path = File.join( dest, name)
75
+ puts " unzip file zip entry - #{file.name} to #{path}"
76
+ FileUtils.mkdir_p( File.dirname( path) )
77
+ zipfile.extract(file, path) unless File.exist?(path)
78
+ end
79
+ end
80
+ end
81
+ end # method unzip_theme
82
+
83
+
84
+ end # class Package
85
+
86
+ end # module DrJekyll
87
+
@@ -4,8 +4,8 @@
4
4
  module DrJekyll
5
5
 
6
6
  MAJOR = 0
7
- MINOR = 0
8
- PATCH = 1
7
+ MINOR = 1
8
+ PATCH = 0
9
9
  VERSION = [MAJOR,MINOR,PATCH].join('.')
10
10
 
11
11
  def self.version
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drjekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
@@ -10,6 +10,34 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2015-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: props
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: logutils
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.6.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.6.1
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: fetcher
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +52,34 @@ dependencies:
24
52
  - - ">="
25
53
  - !ruby/object:Gem::Version
26
54
  version: 0.4.5
55
+ - !ruby/object:Gem::Dependency
56
+ name: gli
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 2.12.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 2.12.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubyzip
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 1.1.7
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.1.7
27
83
  - !ruby/object:Gem::Dependency
28
84
  name: rdoc
29
85
  requirement: !ruby/object:Gem::Requirement
@@ -75,8 +131,10 @@ files:
75
131
  - lib/drjekyll/cli/download.rb
76
132
  - lib/drjekyll/cli/list.rb
77
133
  - lib/drjekyll/cli/main.rb
134
+ - lib/drjekyll/cli/new.rb
78
135
  - lib/drjekyll/cli/opts.rb
79
136
  - lib/drjekyll/cli/unzip.rb
137
+ - lib/drjekyll/package.rb
80
138
  - lib/drjekyll/version.rb
81
139
  - test/data/themes.yml
82
140
  homepage: https://github.com/drjekyllthemes/drjekyll