Skip to content

Commit

Permalink
Removed rubigen; using main instead. Refactored generator code
Browse files Browse the repository at this point in the history
  • Loading branch information
fnando committed Dec 25, 2008
1 parent ca88536 commit db14b86
Show file tree
Hide file tree
Showing 48 changed files with 187 additions and 3,579 deletions.
67 changes: 0 additions & 67 deletions History.txt

This file was deleted.

20 changes: 0 additions & 20 deletions License.txt

This file was deleted.

90 changes: 55 additions & 35 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
require 'rake'

PKG_FILES = %w( Rakefile kitabu.gemspec History.txt License.txt README.markdown TODO.txt ) + Dir["{app_generators,bin,lib,themes}/**/*"]
PKG_FILES = %w(Rakefile kitabu.gemspec README.markdown) + Dir["{bin,lib,templates}/**/*"]

spec = Gem::Specification.new do |s|
s.name = "kitabu"
s.version = "0.2.1"
s.version = "0.3.0"
s.summary = "A framework for creating e-books from Markdown/Textile text markup using Ruby."
s.authors = ["Nando Vieira"]
s.email = ["fnando.vieira@gmail.com"]
Expand All @@ -16,53 +16,73 @@ spec = Gem::Specification.new do |s|
s.executables = "kitabu"

# Dependencies
s.add_dependency "rubigen"
s.add_dependency "discount"
s.add_dependency "hpricot"
s.add_dependency "unicode"
s.add_dependency "main"

# Requirements
s.requirements << "Install the Oniguruma RE library and ultraviolet gem to get Syntax Highlighting (only for TextMate users)"
end

namespace :gem do
# Thanks to the Merb project for this code.
desc "Update Github Gemspec"
task :update_gemspec do
skip_fields = %w(new_platform original_platform specification_version loaded required_ruby_version rubygems_version platform )
task :update_gemspec do
skip_fields = %w(new_platform original_platform specification_version loaded required_ruby_version rubygems_version platform )

result = "# WARNING : RAKE AUTO-GENERATED FILE. DO NOT MANUALLY EDIT!\n"
result << "# RUN : 'rake gem:update_gemspec'\n\n"
result << "Gem::Specification.new do |s|\n"

spec.instance_variables.each do |ivar|
value = spec.instance_variable_get(ivar)
name = ivar.split("@").last
value = Time.now if name == "date"

result = "# WARNING : RAKE AUTO-GENERATED FILE. DO NOT MANUALLY EDIT!\n"
result << "# RUN : 'rake gem:update_gemspec'\n\n"
result << "Gem::Specification.new do |s|\n"
if name == 'version'
base_file = File.join(File.dirname(__FILE__), 'lib/kitabu/base.rb')
contents = File.read(base_file)
contents.gsub!(/VERSION = "[\d\.]+"/sim, %(VERSION = "#{value}"))
File.open(base_file, 'w+') do |f|
f << contents
end
end

spec.instance_variables.each do |ivar|
value = spec.instance_variable_get(ivar)
name = ivar.split("@").last
value = Time.now if name == "date"

next if skip_fields.include?(name) || value.nil? || value == "" || (value.respond_to?(:empty?) && value.empty?)
if name == "dependencies"
value.each do |d|
dep, *ver = d.to_s.split(" ")
result << " s.add_dependency #{dep.inspect}, #{ver.join(" ").inspect.gsub(/[()]/, "").gsub(", runtime", "")}\n"
end
next if skip_fields.include?(name) || value.nil? || value == "" || (value.respond_to?(:empty?) && value.empty?)
if name == "dependencies"
value.each do |d|
dep, *ver = d.to_s.split(" ")
result << " s.add_dependency #{dep.inspect}, #{ver.join(" ").inspect.gsub(/[()]/, "").gsub(", runtime", "")}\n"
end
else
case value
when Array
value = name != "files" ? value.inspect : value.inspect.split(",").join(",\n")
when FalseClass
when TrueClass
when Fixnum
when String
value = value.inspect
else
case value
when Array
value = name != "files" ? value.inspect : value.inspect.split(",").join(",\n")
when FalseClass
when TrueClass
when Fixnum
when String
value = value.inspect
else
value = value.to_s.inspect
end
result << " s.#{name} = #{value}\n"
value = value.to_s.inspect
end
result << " s.#{name} = #{value}\n"
end

result << "end"
File.open(File.join(File.dirname(__FILE__), "#{spec.name}.gemspec"), "w"){|f| f << result}
end


result << "end"
File.open(File.join(File.dirname(__FILE__), "#{spec.name}.gemspec"), "w"){|f| f << result}
end

desc "Build gem"
task :build => :update_gemspec do
system "rm *.gem"
system "gem build #{spec.instance_variable_get('@name')}.gemspec"
end

desc "Install gem"
task :install => :build do
system "sudo gem install #{spec.instance_variable_get('@name')}"
end
end
2 changes: 0 additions & 2 deletions TODO.txt

This file was deleted.

5 changes: 0 additions & 5 deletions app_generators/kitabu/USAGE

This file was deleted.

68 changes: 0 additions & 68 deletions app_generators/kitabu/kitabu_generator.rb

This file was deleted.

Empty file.
55 changes: 42 additions & 13 deletions bin/kitabu
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,17 +1,46 @@
#!/usr/bin/env ruby

require 'rubygems'
require 'rubigen'
require 'kitabu'
require 'kitabu/templates'
require 'main'

if %w(-v --version).include? ARGV.first
require 'kitabu/version'
puts "#{File.basename($0)} #{Kitabu::VERSION::STRING}"
exit(0)
end

require 'rubigen/scripts/generate'
source = RubiGen::PathSource.new(:application,
File.join(File.dirname(__FILE__), "../app_generators"))
RubiGen::Base.reset_sources
RubiGen::Base.append_sources source
RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'kitabu')
Main {
description <<-TXT
The 'kitabu' command creates a new book with a default
directory structure at the path you specify.
VERSION: #{Kitabu::VERSION}
USAGE: kitabu path [parameters]
TXT

argument(:path) {
description "The output path."
required
validate {|path| !File.exists?(path) }
attr
}

option(:l, :layout){
description "Specify which layout to use. Available: #{Kitabu::Base.layouts.join(', ')}"
cast :string
defaults "boom"
argument :optional
validate {|layout| Kitabu::Base.layout?(layout) }
attr
}

option(:t, :theme){
description "Specify which syntax highlight theme to use. Available: #{Kitabu::Base.themes.join(', ')}"
cast :string
defaults "eiffel"
argument :optional
validate {|theme| Kitabu::Base.theme?(theme) }
attr
}

def run
Kitabu::Templates.process!(:layout => layout, :theme => theme, :path => path)
end
}
Loading

0 comments on commit db14b86

Please sign in to comment.