project_templater 0.2.1 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Project Templater
2
2
 
3
- __V0.2.0__
3
+ __V0.3.1__
4
4
 
5
5
  ## Installation
6
6
 
@@ -60,6 +60,16 @@ Similarly, there is a `pre_install` method which is run just before `run`. Again
60
60
 
61
61
  ## Changelog
62
62
 
63
+ __0.3.1__
64
+ - No nasty exception if the generator doesn't exist.
65
+
66
+ __0.3.0__
67
+ - Remove all references to `nodefetch`
68
+ - Fix Sinatra generator. Makes views directory in right place and now sets up layout.erb properly.
69
+
70
+ __0.2.1__
71
+ - release date within gemspec was incorrect.
72
+
63
73
  __0.2.0__
64
74
  - added `jekyll_basic` generator
65
75
  - add `pre_install` method for generators
@@ -6,5 +6,14 @@ require "project_templater"
6
6
  template = ARGV[0]
7
7
  base_dir = ARGV[1]
8
8
 
9
- pt = ProjectTemplater.new(template)
10
- pt.run(base_dir)
9
+ if template.nil?
10
+ puts "Available Templates"
11
+ # TODO: programmatically get this list
12
+ %w{html_proto jekyll_basic js_project ruby_project sinatra_basic}.each do |t|
13
+ puts "-> #{t}"
14
+ end
15
+
16
+ else
17
+ pt = ProjectTemplater.new(template)
18
+ pt.run(base_dir) if pt.valid?
19
+ end
@@ -6,7 +6,7 @@ class HtmlProto < Generator
6
6
  %Q|<!DOCTYPE html>
7
7
  <html>
8
8
  <head>
9
- <title>JS Regex</title>
9
+ <title></title>
10
10
  <link rel="stylesheet" href="css/style.css">
11
11
  <script src="js/jquery.min.js"></script>
12
12
  <script src="js/app.js"></script>
@@ -23,9 +23,4 @@ class HtmlProto < Generator
23
23
  make_file("js/app.js")
24
24
  make_file("css/style.css")
25
25
  end
26
-
27
- def post_install
28
- `cd #{@base}js && nodefetch jquery`
29
- end
30
-
31
26
  end
@@ -7,7 +7,6 @@ class JsProject < Generator
7
7
  make_dir("test")
8
8
  make_dir("src")
9
9
  make_dir("demo")
10
-
11
10
  end
12
11
 
13
12
  def post_install
@@ -6,8 +6,15 @@ class SinatraBasic < Generator
6
6
  "source 'http://rubygems.org'\ngem 'sinatra'"
7
7
  }
8
8
  make_file("app.rb") {
9
- "require 'sinatra'"
9
+ %Q|
10
+ require 'sinatra'
11
+
12
+ get '/' do
13
+ erb :index
14
+ end
15
+ |
10
16
  }
17
+
11
18
  make_file("config.ru") {
12
19
  "require './app'\nrun Sinatra::Application"
13
20
  }
@@ -16,14 +23,24 @@ class SinatraBasic < Generator
16
23
  make_dir("public")
17
24
  make_dir("public/css")
18
25
  make_dir("public/js")
19
- make_dir("public/views")
26
+ make_dir("views")
27
+ make_file("views/layout.erb") {
28
+ %Q|<!DOCTYPE html>
29
+ <html>
30
+ <head>
31
+ <title></title>
32
+ <link rel="stylesheet" href="/css/style.css">
33
+ </head>
34
+ <body>
35
+ <%= yield %>
36
+ </body>
37
+ </html> |
38
+ }
39
+ make_file("views/index.erb") { "Hello World" }
20
40
  make_file("public/css/style.css")
21
- make_file("public/js/app.js")
22
- make_file("public/views/layout.erb")
23
41
  end
24
42
 
25
43
  def post_install
26
- `cd #{@base} && git init && bundle`
27
- `cd #{@base}/public/js && nodefetch jquery`
44
+ puts `cd #{@base} && git init && bundle`
28
45
  end
29
46
  end
@@ -12,7 +12,11 @@ class ProjectTemplater
12
12
  def initialize(template)
13
13
  @template = template
14
14
  # load in the right generator
15
- require "generators/#{@template}.rb"
15
+ puts "That generator doesn't exist." unless generator_exists?
16
+ end
17
+
18
+ def valid?
19
+ generator_exists?
16
20
  end
17
21
 
18
22
  def run(base_dir)
@@ -23,5 +27,16 @@ class ProjectTemplater
23
27
  instance.run
24
28
  instance.post_install
25
29
  end
30
+
31
+ private
32
+
33
+ def generator_exists?
34
+ begin
35
+ require "generators/#{@template}.rb"
36
+ true
37
+ rescue Exception
38
+ false
39
+ end
40
+ end
26
41
  end
27
42
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: project_templater
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-24 00:00:00.000000000 Z
12
+ date: 2013-07-14 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: A gem for creating file and folder structures.
15
15
  email: jack@jackfranklin.net