jekyll_and_hyde 0.0.1 → 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.
- data/.gitignore +4 -1
- data/.rspec +1 -0
- data/bin/jh +5 -0
- data/features/presenter_creates_a_skeletal_installation.feature +12 -0
- data/features/presenter_creates_slides.feature +6 -0
- data/features/step_definitions/jekyll_and_hyde_steps.rb +42 -0
- data/features/support/env.rb +4 -0
- data/jekyll_and_hyde.gemspec +5 -2
- data/lib/jekyll_and_hyde/actions.rb +20 -0
- data/lib/jekyll_and_hyde/core_ext/string.rb +5 -0
- data/lib/jekyll_and_hyde/error.rb +3 -0
- data/lib/jekyll_and_hyde/group.rb +7 -0
- data/lib/jekyll_and_hyde/namespace.rb +16 -0
- data/lib/jekyll_and_hyde/runner.rb +81 -0
- data/lib/jekyll_and_hyde/tasks/generate.rb +26 -0
- data/lib/jekyll_and_hyde/tasks/new.rb +68 -0
- data/lib/jekyll_and_hyde/thor_ext.rb +13 -0
- data/lib/jekyll_and_hyde/util.rb +13 -0
- data/lib/jekyll_and_hyde/version.rb +1 -1
- data/lib/jekyll_and_hyde.rb +17 -3
- data/spec/jekyll_and_hyde/core_ext/string_spec.rb +11 -0
- data/spec/jekyll_and_hyde/namespace_spec.rb +19 -0
- data/spec/jekyll_and_hyde/tasks/generate_spec.rb +22 -0
- data/spec/jekyll_and_hyde/tasks/new_spec.rb +25 -0
- data/spec/jekyll_and_hyde/util_spec.rb +13 -0
- data/spec/spec_helper.rb +7 -0
- metadata +67 -10
data/.gitignore
CHANGED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour --format documentation
|
data/bin/jh
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
Feature: presenter creates a skeletal installation
|
2
|
+
|
3
|
+
Scenario: creates a skeletal installation
|
4
|
+
Given the jekyll_and_hyde gem installed
|
5
|
+
When I run the "jh new test" command inside folder "/"
|
6
|
+
Then I should have a folder named "test" created
|
7
|
+
And I should have template files/folders "_config.yml, _includes, _layouts, index.html, stylesheets, .git, .gitmodules, slippy" inside folder "test"
|
8
|
+
|
9
|
+
Scenario: creates a skeletal installation with GitHub project page branch setup
|
10
|
+
Given the jekyll_and_hyde gem installed
|
11
|
+
When I run the "jh new test --github" command inside folder "/"
|
12
|
+
Then I should have a git branch named "gh-pages" created in folder "test"
|
@@ -0,0 +1,6 @@
|
|
1
|
+
Feature: presenter creates slides
|
2
|
+
|
3
|
+
Scenario: creates a slide
|
4
|
+
Given I run the "jh new test" command inside folder "/"
|
5
|
+
When I run the "jh generate test-slide" command inside folder "test"
|
6
|
+
Then I should have a file named "test-slide.markdown" prefixed with timestamp created in posts folder "test/_posts"
|
@@ -0,0 +1,42 @@
|
|
1
|
+
Before do
|
2
|
+
FileUtils.mkdir_p(DESTINATION_ROOT)
|
3
|
+
end
|
4
|
+
|
5
|
+
After do
|
6
|
+
FileUtils.rm_rf(DESTINATION_ROOT)
|
7
|
+
end
|
8
|
+
|
9
|
+
Given /^the jekyll_and_hyde gem installed$/ do
|
10
|
+
end
|
11
|
+
|
12
|
+
When /^I run the "jh ([^"]*)" command inside folder "([^"]*)"$/ do |parameters, folder|
|
13
|
+
parameters = parameters.split.map(&:strip)
|
14
|
+
task = parameters.shift
|
15
|
+
args, opts = Thor::Options.split(parameters)
|
16
|
+
|
17
|
+
@task = JekyllAndHyde::Util.find_task_class(task).new(args, opts)
|
18
|
+
@task.destination_root = File.join(DESTINATION_ROOT, folder)
|
19
|
+
@task.invoke(JekyllAndHyde.to_namespace(task))
|
20
|
+
end
|
21
|
+
|
22
|
+
Then /^I should have a folder named "([^"]*)" created$/ do |folder_name|
|
23
|
+
File.should be_directory(File.join(DESTINATION_ROOT, folder_name))
|
24
|
+
end
|
25
|
+
|
26
|
+
And /^I should have template files\/folders "([^"]*)" inside folder "([^"]*)"$/ do |template_files, folder_name|
|
27
|
+
template_files.split(',').map(&:strip).each do |template_file|
|
28
|
+
File.should be_exist(File.join(DESTINATION_ROOT, folder_name, template_file))
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
Then /^I should have a git branch named "([^"]*)" created in folder "([^"]*)"$/ do |branch_name, folder_name|
|
33
|
+
output = IO.popen("cd #{File.join(DESTINATION_ROOT, folder_name)} && git branch")
|
34
|
+
output.readlines.first.include?(branch_name)
|
35
|
+
end
|
36
|
+
|
37
|
+
Then /^I should have a file named "([^"]*)" prefixed with timestamp created in posts folder "([^"]*)"$/ do |file_name, folder_name|
|
38
|
+
posts_folder = Dir[File.join(DESTINATION_ROOT, folder_name, "**", "*.*")]
|
39
|
+
posts_folder.should have(1).file
|
40
|
+
post_file_name = posts_folder.first.scan(/\d\d\d\d-\d\d-\d\d-\d\d-\d\d-\d\d-(.*)/).flatten.first
|
41
|
+
post_file_name.should == file_name
|
42
|
+
end
|
data/jekyll_and_hyde.gemspec
CHANGED
@@ -13,10 +13,13 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.description = %q{jekyll_and_hyde is a simple HTML presentation generator based on jekyll(https://github.com/mojombo/jekyll) and slippy(https://github.com/Seldaek/slippy).}
|
14
14
|
|
15
15
|
s.rubyforge_project = "jekyll_and_hyde"
|
16
|
-
|
16
|
+
|
17
|
+
s.add_dependency('thor')
|
18
|
+
|
17
19
|
s.add_development_dependency('rspec')
|
18
20
|
s.add_development_dependency('cucumber')
|
19
|
-
|
21
|
+
s.add_development_dependency('fakefs')
|
22
|
+
|
20
23
|
s.files = `git ls-files`.split("\n")
|
21
24
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
22
25
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module JekyllAndHyde
|
2
|
+
module Actions
|
3
|
+
def inside_app_path(config = {}, &block)
|
4
|
+
inside app_path, config, &block
|
5
|
+
end
|
6
|
+
|
7
|
+
def run_command(command, config={})
|
8
|
+
result = run(command, config)
|
9
|
+
raise Error, "Errors occured when running command \"#{command}\"." unless result
|
10
|
+
end
|
11
|
+
|
12
|
+
def say_status(status, message, log_status=true)
|
13
|
+
self.shell.say_status(status, message, log_status)
|
14
|
+
end
|
15
|
+
|
16
|
+
def set_color(string, color, bold=false)
|
17
|
+
self.shell.set_color(string, color, bold)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module JekyllAndHyde
|
2
|
+
class << self
|
3
|
+
def namespace
|
4
|
+
Thor::Util.namespace_from_thor_class(self)
|
5
|
+
end
|
6
|
+
|
7
|
+
def to_namespace(str)
|
8
|
+
str = "#{namespace}:#{str}" unless str.include?(':')
|
9
|
+
str
|
10
|
+
end
|
11
|
+
|
12
|
+
def trim_namespace(str)
|
13
|
+
str.gsub("#{namespace}:", "")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
$thor_runner = true
|
2
|
+
|
3
|
+
class JekyllAndHyde::Runner < Thor
|
4
|
+
def help(meth = nil)
|
5
|
+
if meth && !self.respond_to?(meth)
|
6
|
+
klass, task = JekyllAndHyde::Util.find_class_and_task_by_namespace(meth)
|
7
|
+
start_task(klass, task, ["-h", task].compact)
|
8
|
+
else
|
9
|
+
super
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "list [SEARCH]", "List the available jekyll_and_hyde tasks by an optional [SEARCH] string."
|
14
|
+
|
15
|
+
def list(search="")
|
16
|
+
search = /^.*#{JekyllAndHyde.to_namespace(search)}.*/i
|
17
|
+
klasses = Thor::Base.subclasses.select do |k|
|
18
|
+
k.namespace =~ search
|
19
|
+
end
|
20
|
+
|
21
|
+
display_klasses(klasses)
|
22
|
+
end
|
23
|
+
|
24
|
+
desc "version", "Show jekyll_and_hyde version"
|
25
|
+
|
26
|
+
def version
|
27
|
+
say "JekyllAndHyde #{JekyllAndHyde::VERSION}"
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def method_missing(meth, *args)
|
33
|
+
klass, task = JekyllAndHyde::Util.find_class_and_task_by_namespace(meth.to_s)
|
34
|
+
args.unshift(task) if task
|
35
|
+
start_task(klass, task, args)
|
36
|
+
end
|
37
|
+
|
38
|
+
def start_task(klass, task, args)
|
39
|
+
if klass.nil?
|
40
|
+
say "Don't know how to build task '#{JekyllAndHyde.trim_namespace(task)}'."
|
41
|
+
else
|
42
|
+
klass.start(args, :shell => self.shell)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.banner(task, all = false, subcommand = false)
|
47
|
+
"#{basename} #{task.formatted_usage(self, all, subcommand)}"
|
48
|
+
end
|
49
|
+
|
50
|
+
# Display information about the given klasses. If with_module is given,
|
51
|
+
# it shows a table with information extracted from the yaml file.
|
52
|
+
def display_klasses(klasses=Thor::Base.subclasses)
|
53
|
+
klasses -= JekyllAndHyde::Group.ancestors
|
54
|
+
raise Error, "No JekyllAndHyde tasks available" if klasses.empty?
|
55
|
+
|
56
|
+
list = Hash.new { |h, k| h[k] = [] }
|
57
|
+
groups = klasses.select { |k| k.ancestors.include?(Thor::Group) }
|
58
|
+
|
59
|
+
# Get classes which inherit from Thor
|
60
|
+
(klasses - groups).each { |k| list[k.namespace.split(":").first] += k.printable_tasks(false) }
|
61
|
+
|
62
|
+
# Get classes which inherit from Thor::Base
|
63
|
+
groups.map! { |k| k.printable_tasks(false).first }
|
64
|
+
|
65
|
+
list["root"] = groups
|
66
|
+
|
67
|
+
# Order namespaces with default coming first
|
68
|
+
list = list.sort { |a, b| a[0].sub(/^default/, '') <=> b[0].sub(/^default/, '') }
|
69
|
+
list.each { |n, tasks| display_tasks(n, tasks) unless tasks.empty? }
|
70
|
+
end
|
71
|
+
|
72
|
+
def display_tasks(namespace, list) #:nodoc:
|
73
|
+
list.sort! { |a, b| a[0] <=> b[0] }
|
74
|
+
|
75
|
+
say shell.set_color(namespace, :blue, true)
|
76
|
+
say "-" * namespace.size
|
77
|
+
|
78
|
+
print_table(list, :truncate => true)
|
79
|
+
say
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module JekyllAndHyde
|
2
|
+
class Generate < JekyllAndHyde::Group
|
3
|
+
argument :title, :type => :string, :required => true, :desc => "The title of the slide."
|
4
|
+
class_option :format, :type => :string, :default => 'markdown', :desc => 'The format of the slide. It supports markdown and textile.'
|
5
|
+
desc "Generate a slide using the defined template."
|
6
|
+
|
7
|
+
SUPPORT_FORMATS = %W{markdown md textile}
|
8
|
+
|
9
|
+
def validate_current_folder
|
10
|
+
self.class.source_root(destination_root)
|
11
|
+
find_in_source_paths("_config.yml")
|
12
|
+
end
|
13
|
+
|
14
|
+
def create_slide
|
15
|
+
format = options[:format]
|
16
|
+
raise Error, "Unsupport format #{format}, --format=#{SUPPORT_FORMATS.join(",")}." unless SUPPORT_FORMATS.include?(format)
|
17
|
+
create_file File.join("_posts", "#{timestamp}-#{title}.#{format}")
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def timestamp
|
23
|
+
Time.now.strftime("%Y-%m-%d-%H-%M-%S")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module JekyllAndHyde
|
2
|
+
class New < JekyllAndHyde::Group
|
3
|
+
JEKYLL_AND_HYDE_TEMPLATE_GIT_REPO = 'git://github.com/jingweno/jekyll_and_hyde_template.git'
|
4
|
+
SLIPPY_GIT_REPO = 'git://github.com/jingweno/slippy.git'
|
5
|
+
|
6
|
+
argument :app_path, :type => :string, :required => true, :desc => "The app path to generate the skeletal installation"
|
7
|
+
class_option :github, :type => :boolean, :desc => "Create branching information for GitHub Project Pages, details in http://pages.github.com/."
|
8
|
+
desc "Generate a skeletal jekyll_and_hyde installation in [APP_PATH]."
|
9
|
+
|
10
|
+
def make_app_path_dir
|
11
|
+
empty_directory app_path
|
12
|
+
end
|
13
|
+
|
14
|
+
# TODO: pass in the url as parameter
|
15
|
+
def git_clone_template
|
16
|
+
inside_app_path do
|
17
|
+
run_command "git clone #{JEKYLL_AND_HYDE_TEMPLATE_GIT_REPO} ."
|
18
|
+
remove_file('.git')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def git_init
|
23
|
+
inside_app_path do
|
24
|
+
run_command "git init"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def add_slippy_git_submodule
|
29
|
+
inside_app_path do
|
30
|
+
run_command "git submodule add #{SLIPPY_GIT_REPO}"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def git_add_all
|
35
|
+
inside_app_path do
|
36
|
+
run_command "git add ."
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def create_git_hub_page
|
41
|
+
if options.github?
|
42
|
+
inside_app_path do
|
43
|
+
create_github_page_branch()
|
44
|
+
say
|
45
|
+
print_next_steps()
|
46
|
+
say
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def create_github_page_branch
|
54
|
+
run_command 'git commit -am "Template files generated by jekyll_and_hyde."'
|
55
|
+
run_command 'git checkout -b gh-pages'
|
56
|
+
run_command 'git branch -d master'
|
57
|
+
say_status :create, 'branch "gh-pages" for GitHub project page, details in http://pages.github.com/.'
|
58
|
+
end
|
59
|
+
|
60
|
+
def print_next_steps
|
61
|
+
next_step_string = "Next steps:"
|
62
|
+
say set_color(next_step_string, :blue, true)
|
63
|
+
say "-" * next_step_string.size
|
64
|
+
say 'git remote add origin git@github.com:your_github_username/your_git_repo.git'
|
65
|
+
say 'git push origin gh-pages'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module JekyllAndHyde
|
2
|
+
module ThorExt
|
3
|
+
def self.included(base)
|
4
|
+
base.extend JekyllAndHyde::ThorExt::ClassMethods
|
5
|
+
end
|
6
|
+
|
7
|
+
module ClassMethods
|
8
|
+
def self_task
|
9
|
+
Thor::DynamicTask.new(self.namespace.split(':').last, class_options)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module JekyllAndHyde
|
2
|
+
module Util
|
3
|
+
class << self
|
4
|
+
def find_task_class(task_name)
|
5
|
+
find_class_and_task_by_namespace(task_name).first
|
6
|
+
end
|
7
|
+
|
8
|
+
def find_class_and_task_by_namespace(task_name)
|
9
|
+
Thor::Util.find_class_and_task_by_namespace(JekyllAndHyde.to_namespace(task_name))
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/jekyll_and_hyde.rb
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require 'rubygems'
|
2
|
+
require 'thor'
|
3
|
+
require 'thor/group'
|
4
|
+
require 'thor/runner'
|
5
|
+
|
6
|
+
require 'jekyll_and_hyde/core_ext/string'
|
7
|
+
|
8
|
+
require 'jekyll_and_hyde/version'
|
9
|
+
require 'jekyll_and_hyde/namespace'
|
10
|
+
require 'jekyll_and_hyde/thor_ext'
|
11
|
+
require 'jekyll_and_hyde/actions'
|
12
|
+
require 'jekyll_and_hyde/error'
|
13
|
+
require 'jekyll_and_hyde/util'
|
14
|
+
require 'jekyll_and_hyde/group'
|
15
|
+
require 'jekyll_and_hyde/tasks/new'
|
16
|
+
require 'jekyll_and_hyde/tasks/generate'
|
17
|
+
require 'jekyll_and_hyde/runner'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe JekyllAndHyde do
|
4
|
+
describe "#namespace" do
|
5
|
+
it "should return namespace separated by ':'" do
|
6
|
+
JekyllAndHyde.namespace.should == "jekyll_and_hyde"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "#to_namespace" do
|
11
|
+
it "should append to namespace when string doesn't contain a colon" do
|
12
|
+
JekyllAndHyde.to_namespace("str").should == "jekyll_and_hyde:str"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "shouldn't append to namespace when string constains a colon" do
|
16
|
+
JekyllAndHyde.to_namespace("test:str").should == "test:str"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module JekyllAndHyde
|
4
|
+
describe Generate do
|
5
|
+
before(:each) do
|
6
|
+
@generate_task = JekyllAndHyde::Generate.new(["test_slide"], {}, {})
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#timestamp" do
|
10
|
+
it "should return timestamp separated by '-'" do
|
11
|
+
@generate_task.send(:timestamp).to_s.scan(/\d\d\d\d-\d\d-\d\d-\d\d-\d\d-\d\d/).should_not be_empty
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#create_slide" do
|
16
|
+
it "should create a file" do
|
17
|
+
@generate_task.should_receive(:create_file)
|
18
|
+
@generate_task.create_slide
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module JekyllAndHyde
|
4
|
+
describe New do
|
5
|
+
before(:each) do
|
6
|
+
@new_task = JekyllAndHyde::New.new(["app_path"], {}, {})
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#make_app_path_dir" do
|
10
|
+
it "should create the given directory" do
|
11
|
+
@new_task.should_receive(:empty_directory).with("app_path")
|
12
|
+
@new_task.make_app_path_dir
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#inside_app_path" do
|
17
|
+
it "should have all other operations execute inside app path" do
|
18
|
+
%W{git_clone_template git_init add_slippy_git_submodule git_add_all}.each do |method|
|
19
|
+
@new_task.should_receive(:inside_app_path)
|
20
|
+
@new_task.send(method)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module JekyllAndHyde
|
4
|
+
describe Util do
|
5
|
+
describe "#find_task_class" do
|
6
|
+
it "should return result for existing task" do
|
7
|
+
class JekyllAndHyde::TestTask < Thor; end
|
8
|
+
|
9
|
+
JekyllAndHyde::Util.find_task_class("test_task").should be
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -3,10 +3,10 @@ name: jekyll_and_hyde
|
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
|
+
- 1
|
6
7
|
- 0
|
7
8
|
- 0
|
8
|
-
|
9
|
-
version: 0.0.1
|
9
|
+
version: 1.0.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jingwen Owen Ou
|
@@ -14,11 +14,11 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-01-
|
17
|
+
date: 2011-01-26 00:00:00 -08:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
21
|
+
name: thor
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
24
|
none: false
|
@@ -28,10 +28,10 @@ dependencies:
|
|
28
28
|
segments:
|
29
29
|
- 0
|
30
30
|
version: "0"
|
31
|
-
type: :
|
31
|
+
type: :runtime
|
32
32
|
version_requirements: *id001
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: rspec
|
35
35
|
prerelease: false
|
36
36
|
requirement: &id002 !ruby/object:Gem::Requirement
|
37
37
|
none: false
|
@@ -43,22 +43,70 @@ dependencies:
|
|
43
43
|
version: "0"
|
44
44
|
type: :development
|
45
45
|
version_requirements: *id002
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: cucumber
|
48
|
+
prerelease: false
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
segments:
|
55
|
+
- 0
|
56
|
+
version: "0"
|
57
|
+
type: :development
|
58
|
+
version_requirements: *id003
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: fakefs
|
61
|
+
prerelease: false
|
62
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
segments:
|
68
|
+
- 0
|
69
|
+
version: "0"
|
70
|
+
type: :development
|
71
|
+
version_requirements: *id004
|
46
72
|
description: jekyll_and_hyde is a simple HTML presentation generator based on jekyll(https://github.com/mojombo/jekyll) and slippy(https://github.com/Seldaek/slippy).
|
47
73
|
email:
|
48
74
|
- owen@owenou.com
|
49
|
-
executables:
|
50
|
-
|
75
|
+
executables:
|
76
|
+
- jh
|
51
77
|
extensions: []
|
52
78
|
|
53
79
|
extra_rdoc_files: []
|
54
80
|
|
55
81
|
files:
|
56
82
|
- .gitignore
|
83
|
+
- .rspec
|
57
84
|
- Gemfile
|
58
85
|
- Rakefile
|
86
|
+
- bin/jh
|
87
|
+
- features/presenter_creates_a_skeletal_installation.feature
|
88
|
+
- features/presenter_creates_slides.feature
|
89
|
+
- features/step_definitions/jekyll_and_hyde_steps.rb
|
90
|
+
- features/support/env.rb
|
59
91
|
- jekyll_and_hyde.gemspec
|
60
92
|
- lib/jekyll_and_hyde.rb
|
93
|
+
- lib/jekyll_and_hyde/actions.rb
|
94
|
+
- lib/jekyll_and_hyde/core_ext/string.rb
|
95
|
+
- lib/jekyll_and_hyde/error.rb
|
96
|
+
- lib/jekyll_and_hyde/group.rb
|
97
|
+
- lib/jekyll_and_hyde/namespace.rb
|
98
|
+
- lib/jekyll_and_hyde/runner.rb
|
99
|
+
- lib/jekyll_and_hyde/tasks/generate.rb
|
100
|
+
- lib/jekyll_and_hyde/tasks/new.rb
|
101
|
+
- lib/jekyll_and_hyde/thor_ext.rb
|
102
|
+
- lib/jekyll_and_hyde/util.rb
|
61
103
|
- lib/jekyll_and_hyde/version.rb
|
104
|
+
- spec/jekyll_and_hyde/core_ext/string_spec.rb
|
105
|
+
- spec/jekyll_and_hyde/namespace_spec.rb
|
106
|
+
- spec/jekyll_and_hyde/tasks/generate_spec.rb
|
107
|
+
- spec/jekyll_and_hyde/tasks/new_spec.rb
|
108
|
+
- spec/jekyll_and_hyde/util_spec.rb
|
109
|
+
- spec/spec_helper.rb
|
62
110
|
has_rdoc: true
|
63
111
|
homepage: http://github.com/jingweno/jekyll_and_hyde
|
64
112
|
licenses: []
|
@@ -91,5 +139,14 @@ rubygems_version: 1.3.7
|
|
91
139
|
signing_key:
|
92
140
|
specification_version: 3
|
93
141
|
summary: A simple HTML presentation generator based on jekyll and slippy.
|
94
|
-
test_files:
|
95
|
-
|
142
|
+
test_files:
|
143
|
+
- features/presenter_creates_a_skeletal_installation.feature
|
144
|
+
- features/presenter_creates_slides.feature
|
145
|
+
- features/step_definitions/jekyll_and_hyde_steps.rb
|
146
|
+
- features/support/env.rb
|
147
|
+
- spec/jekyll_and_hyde/core_ext/string_spec.rb
|
148
|
+
- spec/jekyll_and_hyde/namespace_spec.rb
|
149
|
+
- spec/jekyll_and_hyde/tasks/generate_spec.rb
|
150
|
+
- spec/jekyll_and_hyde/tasks/new_spec.rb
|
151
|
+
- spec/jekyll_and_hyde/util_spec.rb
|
152
|
+
- spec/spec_helper.rb
|