jekyll-compose 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: baa202b78cba83b212ea80b61da9f770e876f45a
4
- data.tar.gz: 5967746c3bf1127daad8a48cc3ebeae0dc9ce82c
3
+ metadata.gz: 3ec3f6f135a6ca3612a807ecbccde9010cc75be4
4
+ data.tar.gz: 7447bb8d544454e5fe58c8aae94f52519b243913
5
5
  SHA512:
6
- metadata.gz: 8a5b1798f7c09636759b3eaa0adf319fa8cf5ca77ba80220ce481a6cd17bfaf11b8c9be5156bd7cb982aa510e5bb312583061b4b0c1edef4566f62f1f5d8d6cb
7
- data.tar.gz: 71e73e36010c335112206e693814ffb419d55f5b7035298e6cf42496b6c201bae7e3b6c9823119e3721e57ce9cd87b2c88ed4dc687c60e4d59ac783357e091f7
6
+ metadata.gz: cc359f888d1593a05b749054487a0bef79fbfba21baa3d123f305df2a6b3e198804d822799dab2848346ea9a923e08c136c5e7718d619a51fbb5131b267911a6
7
+ data.tar.gz: 4515efc64935e0393b1b301854b52da673880e7aa4c301f4cd86ad6e3752ca153b975111deac466a3586729163feca733c4062fdf62e2a740c661da262740f15
@@ -1,8 +1,9 @@
1
1
  class Jekyll::Compose::ArgParser
2
- attr_reader :args, :options
2
+ attr_reader :args, :options, :config
3
3
  def initialize(args, options)
4
4
  @args = args
5
5
  @options = options
6
+ @config = Jekyll.configuration(options)
6
7
  end
7
8
 
8
9
  def validate!
@@ -10,11 +11,11 @@ class Jekyll::Compose::ArgParser
10
11
  end
11
12
 
12
13
  def type
13
- type = options["extension"] || Jekyll::Compose::DEFAULT_TYPE
14
+ options["extension"] || Jekyll::Compose::DEFAULT_TYPE
14
15
  end
15
16
 
16
17
  def layout
17
- layout = options["layout"] || Jekyll::Compose::DEFAULT_LAYOUT
18
+ options["layout"] || Jekyll::Compose::DEFAULT_LAYOUT
18
19
  end
19
20
 
20
21
  def title
@@ -24,4 +25,8 @@ class Jekyll::Compose::ArgParser
24
25
  def force?
25
26
  !!options["force"]
26
27
  end
28
+
29
+ def source
30
+ config['source'].gsub(/^#{Regexp.quote(Dir.pwd)}/, '')
31
+ end
27
32
  end
@@ -1,10 +1,11 @@
1
1
  module Jekyll
2
2
  module Compose
3
3
  class FileCreator
4
- attr_reader :file, :force
5
- def initialize(fileInfo, force = false)
4
+ attr_reader :file, :force, :root
5
+ def initialize(fileInfo, force = false, root = nil)
6
6
  @file = fileInfo
7
7
  @force = force
8
+ @root = root
8
9
  end
9
10
 
10
11
  def create!
@@ -16,20 +17,25 @@ module Jekyll
16
17
  private
17
18
 
18
19
  def validate_should_write!
19
- raise ArgumentError.new("A #{file.resource_type} already exists at #{file.path}") if File.exist?(file.path) and !force
20
+ raise ArgumentError.new("A #{file.resource_type} already exists at #{file_path}") if File.exist?(file_path) and !force
20
21
  end
21
22
 
22
23
  def ensure_directory_exists
23
- dir = File.dirname file.path
24
+ dir = File.dirname file_path
24
25
  Dir.mkdir(dir) unless Dir.exist?(dir)
25
26
  end
26
27
 
27
28
  def write_file
28
- File.open(file.path, "w") do |f|
29
+ File.open(file_path, "w") do |f|
29
30
  f.puts(file.content)
30
31
  end
31
32
 
32
- puts "New #{file.resource_type} created at #{file.path}."
33
+ puts "New #{file.resource_type} created at #{file_path}."
34
+ end
35
+
36
+ def file_path
37
+ return file.path if root.nil? or root.empty?
38
+ return File.join(root, file.path)
33
39
  end
34
40
  end
35
41
  end
@@ -10,11 +10,11 @@ class Jekyll::Compose::FileInfo
10
10
  end
11
11
 
12
12
  def content
13
- <<-CONTENT.gsub /^\s+/, ''
14
- ---
15
- layout: #{params.layout}
16
- title: #{params.title}
17
- ---
18
- CONTENT
13
+ front_matter = YAML.dump({
14
+ 'layout' => params.layout,
15
+ 'title' => params.title,
16
+ })
17
+
18
+ front_matter + "---\n"
19
19
  end
20
20
  end
@@ -1,9 +1,10 @@
1
1
  module Jekyll
2
2
  module Compose
3
3
  class FileMover
4
- attr_reader :movement
5
- def initialize(movement)
4
+ attr_reader :movement, :root
5
+ def initialize(movement, root = nil)
6
6
  @movement = movement
7
+ @root = root
7
8
  end
8
9
 
9
10
  def resource_type
@@ -17,17 +18,31 @@ module Jekyll
17
18
  end
18
19
 
19
20
  def validate_source
20
- raise ArgumentError.new("There was no #{resource_type} found at '#{movement.from}'.") unless File.exist? movement.from
21
+ raise ArgumentError.new("There was no #{resource_type} found at '#{from}'.") unless File.exist? from
21
22
  end
22
23
 
23
24
  def ensure_directory_exists
24
- dir = File.dirname movement.to
25
+ dir = File.dirname to
25
26
  Dir.mkdir(dir) unless Dir.exist?(dir)
26
27
  end
27
28
 
28
29
  def move_file
29
- FileUtils.mv(movement.from, movement.to)
30
- puts "#{resource_type.capitalize} #{movement.from} was moved to #{movement.to}"
30
+ FileUtils.mv(from, to)
31
+ puts "#{resource_type.capitalize} #{from} was moved to #{to}"
32
+ end
33
+
34
+ private
35
+ def from
36
+ movement.from
37
+ end
38
+
39
+ def to
40
+ file_path(movement.to)
41
+ end
42
+
43
+ def file_path(path)
44
+ return path if root.nil? or root.empty?
45
+ return File.join(root, path)
31
46
  end
32
47
  end
33
48
  end
@@ -1,10 +1,11 @@
1
1
  module Jekyll
2
2
  module Compose
3
3
  class MovementArgParser
4
- attr_reader :args, :options
4
+ attr_reader :args, :options, :config
5
5
  def initialize(args, options)
6
6
  @args = args
7
7
  @options = options
8
+ @config = Jekyll.configuration(options)
8
9
  end
9
10
 
10
11
  def validate!
@@ -14,6 +15,10 @@ module Jekyll
14
15
  def path
15
16
  args.join ' '
16
17
  end
18
+
19
+ def source
20
+ source = config['source'].gsub(/^#{Regexp.quote(Dir.pwd)}/, '')
21
+ end
17
22
  end
18
23
  end
19
24
  end
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Compose
3
- VERSION = "0.4.1"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
@@ -16,7 +16,9 @@ module Jekyll
16
16
  [
17
17
  ['extension', '-x EXTENSION', '--extension EXTENSION', 'Specify the file extension'],
18
18
  ['layout', '-l LAYOUT', '--layout LAYOUT', "Specify the draft layout"],
19
- ['force', '-f', '--force', 'Overwrite a draft if it already exists']
19
+ ['force', '-f', '--force', 'Overwrite a draft if it already exists'],
20
+ ['config', '--config CONFIG_FILE[,CONFIG_FILE2,...]', Array, 'Custom configuration file'],
21
+ ['source', '-s', '--source SOURCE', 'Custom source directory'],
20
22
  ]
21
23
  end
22
24
 
@@ -27,7 +29,7 @@ module Jekyll
27
29
 
28
30
  draft = DraftFileInfo.new params
29
31
 
30
- Compose::FileCreator.new(draft, params.force?).create!
32
+ Compose::FileCreator.new(draft, params.force?, params.source).create!
31
33
  end
32
34
 
33
35
  class DraftFileInfo < Compose::FileInfo
@@ -16,7 +16,9 @@ module Jekyll
16
16
  [
17
17
  ['extension', '-x EXTENSION', '--extension EXTENSION', 'Specify the file extension'],
18
18
  ['layout', '-l LAYOUT', '--layout LAYOUT', "Specify the page layout"],
19
- ['force', '-f', '--force', 'Overwrite a page if it already exists']
19
+ ['force', '-f', '--force', 'Overwrite a page if it already exists'],
20
+ ['config', '--config CONFIG_FILE[,CONFIG_FILE2,...]', Array, 'Custom configuration file'],
21
+ ['source', '-s', '--source SOURCE', 'Custom source directory'],
20
22
  ]
21
23
  end
22
24
 
@@ -26,7 +28,7 @@ module Jekyll
26
28
 
27
29
  page = PageFileInfo.new params
28
30
 
29
- Compose::FileCreator.new(page, params.force?).create!
31
+ Compose::FileCreator.new(page, params.force?, params.source).create!
30
32
  end
31
33
 
32
34
  class PageArgParser < Compose::ArgParser
@@ -17,7 +17,9 @@ module Jekyll
17
17
  ['extension', '-x EXTENSION', '--extension EXTENSION', 'Specify the file extension'],
18
18
  ['layout', '-l LAYOUT', '--layout LAYOUT', "Specify the post layout"],
19
19
  ['force', '-f', '--force', 'Overwrite a post if it already exists'],
20
- ['date', '-d DATE', '--date DATE', 'Specify the post date']
20
+ ['date', '-d DATE', '--date DATE', 'Specify the post date'],
21
+ ['config', '--config CONFIG_FILE[,CONFIG_FILE2,...]', Array, 'Custom configuration file'],
22
+ ['source', '-s', '--source SOURCE', 'Custom source directory'],
21
23
  ]
22
24
  end
23
25
 
@@ -27,7 +29,7 @@ module Jekyll
27
29
 
28
30
  post = PostFileInfo.new params
29
31
 
30
- Compose::FileCreator.new(post, params.force?).create!
32
+ Compose::FileCreator.new(post, params.force?, params.source).create!
31
33
  end
32
34
 
33
35
 
@@ -7,6 +7,8 @@ module Jekyll
7
7
  c.description 'Moves a draft into the _posts directory and sets the date'
8
8
 
9
9
  c.option 'date', '-d DATE', '--date DATE', 'Specify the post date'
10
+ c.option 'config', '--config CONFIG_FILE[,CONFIG_FILE2,...]', Array, 'Custom configuration file'
11
+ c.option 'source', '-s', '--source SOURCE', 'Custom source directory'
10
12
 
11
13
  c.action do |args, options|
12
14
  Jekyll::Commands::Publish.process(args, options)
@@ -20,7 +22,7 @@ module Jekyll
20
22
 
21
23
  movement = DraftMovementInfo.new params
22
24
 
23
- mover = DraftMover.new movement
25
+ mover = DraftMover.new movement, params.source
24
26
  mover.move
25
27
  end
26
28
 
@@ -6,6 +6,9 @@ module Jekyll
6
6
  c.syntax 'unpublish POST_PATH'
7
7
  c.description 'Moves a post back into the _drafts directory'
8
8
 
9
+ c.option 'config', '--config CONFIG_FILE[,CONFIG_FILE2,...]', Array, 'Custom configuration file'
10
+ c.option 'source', '-s', '--source SOURCE', 'Custom source directory'
11
+
9
12
  c.action do |args, options|
10
13
  process(args, options)
11
14
  end
@@ -18,7 +21,7 @@ module Jekyll
18
21
 
19
22
  movement = PostMovementInfo.new params
20
23
 
21
- mover = PostMover.new movement
24
+ mover = PostMover.new movement, params.source
22
25
  mover.move
23
26
  end
24
27
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-compose
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Parker Moore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-30 00:00:00.000000000 Z
11
+ date: 2016-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 2.5.0
19
+ version: 3.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 2.5.0
26
+ version: 3.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  version: '0'
106
106
  requirements: []
107
107
  rubyforge_project:
108
- rubygems_version: 2.2.5
108
+ rubygems_version: 2.5.1
109
109
  signing_key:
110
110
  specification_version: 4
111
111
  summary: Streamline your writing in Jekyll with these commands.