backbone_generator 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rspec +2 -0
- data/LICENSE.txt +1 -1
- data/README.md +10 -7
- data/backbone_generator.gemspec +9 -15
- data/bin/backbone_generator +6 -0
- data/lib/backbone_generator.rb +13 -1
- data/lib/backbone_generator/auxilliary.rb +44 -0
- data/lib/backbone_generator/cli.rb +79 -0
- data/lib/backbone_generator/generators/collections/collections_generator.rb +35 -0
- data/lib/backbone_generator/generators/collections/template/Collection.tt +29 -0
- data/lib/backbone_generator/generators/library/library_generator.rb +17 -0
- data/lib/backbone_generator/generators/models/models_generator.rb +35 -0
- data/lib/backbone_generator/generators/models/template/Model.tt +44 -0
- data/lib/backbone_generator/generators/new/new_generator.rb +89 -0
- data/lib/backbone_generator/generators/new/template/.gitignore +1 -0
- data/lib/backbone_generator/generators/new/template/README.tt +9 -0
- data/lib/backbone_generator/generators/new/template/css/main.css +43 -0
- data/lib/backbone_generator/generators/new/template/img/backbone.png +0 -0
- data/lib/backbone_generator/generators/new/template/index.html +15 -0
- data/lib/backbone_generator/generators/new/template/js/libs/backbone/backbone-1.1.0.js +1498 -0
- data/lib/backbone_generator/generators/new/template/js/libs/jquery/jquery-2.0.3.min.js +6 -0
- data/lib/backbone_generator/generators/new/template/js/libs/requirejs-text/text-2.0.10.js +332 -0
- data/lib/backbone_generator/generators/new/template/js/libs/requirejs/require-2.1.9.js +2019 -0
- data/lib/backbone_generator/generators/new/template/js/libs/underscore/underscore-1.5.2.js +1226 -0
- data/lib/backbone_generator/generators/new/template/js/views/Main.View.tt +39 -0
- data/lib/backbone_generator/generators/new/template/main.tt +45 -0
- data/lib/backbone_generator/generators/route/route_generator.rb +36 -0
- data/lib/backbone_generator/generators/route/template/Routes.tt +27 -0
- data/lib/backbone_generator/generators/templates/template/Template.tt +10 -0
- data/lib/backbone_generator/generators/templates/templates_generator.rb +35 -0
- data/lib/backbone_generator/generators/tests/template/mainview.js +48 -0
- data/lib/backbone_generator/generators/tests/tests_generator.rb +17 -0
- data/lib/backbone_generator/generators/utilities/template/Utility.tt +28 -0
- data/lib/backbone_generator/generators/utilities/utilities_generator.rb +35 -0
- data/lib/backbone_generator/generators/views/template/View.tt +50 -0
- data/lib/backbone_generator/generators/views/views_generator.rb +36 -0
- data/lib/backbone_generator/post_install_message.rb +21 -0
- data/lib/backbone_generator/version.rb +1 -1
- data/spec/backbone_generator/post_install_message.rb +20 -0
- data/spec/backbone_generator/version.rb +3 -0
- data/spec/backbone_generator_spec.rb +5 -0
- data/spec/cli_spec.rb +34 -0
- data/spec/post_install_message_spec.rb +6 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/version_spec.rb +5 -0
- metadata +105 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 111951a96d22aa5ccce24cddd282f237f20c6c7f
|
4
|
+
data.tar.gz: b5ddb1136118fbfa0dc559187c295716dd7a5d6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af6fa38ba1eda90668bc862d8e06fef0d57ccf6d3283d2fb3e530780796761417d59b298c7460e9f93aedbe8410bf56f77262699857dd29fa7986b7285266c7a
|
7
|
+
data.tar.gz: e2064fa585c0485126b2ecc48624d0d7726a43e203d2ac6c3f1aabe63f4deb13c85f499daf20e7196b024f749804f5b87286ab83023a7e8488f2ef465717e82c
|
data/.gitignore
CHANGED
data/.rspec
ADDED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -18,13 +18,13 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
`
|
22
|
-
`
|
23
|
-
`
|
24
|
-
`
|
25
|
-
`
|
26
|
-
`
|
27
|
-
`
|
21
|
+
`backbone_generator new app_name`
|
22
|
+
`backbone_generator model model_name`
|
23
|
+
`backbone_generator view view_name`
|
24
|
+
`backbone_generator route route_name`
|
25
|
+
`backbone_generator collection collection_name`
|
26
|
+
`backbone_generator utility utility_name`
|
27
|
+
`backbone_generator library library_name`
|
28
28
|
|
29
29
|
## Contributing
|
30
30
|
|
@@ -33,3 +33,6 @@ Or install it yourself as:
|
|
33
33
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
34
34
|
4. Push to the branch (`git push origin my-new-feature`)
|
35
35
|
5. Create new Pull Request
|
36
|
+
|
37
|
+
## Credit
|
38
|
+
Mhd Tahawi for code refactor
|
data/backbone_generator.gemspec
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
4
|
require 'backbone_generator/version'
|
5
|
+
require 'backbone_generator/post_install_message'
|
5
6
|
|
6
7
|
Gem::Specification.new do |spec|
|
7
8
|
spec.name = "backbone_generator"
|
@@ -9,8 +10,8 @@ Gem::Specification.new do |spec|
|
|
9
10
|
spec.authors = ["Tawheed Abdul-Raheem"]
|
10
11
|
spec.email = ["tawrahim@gmail.com"]
|
11
12
|
spec.description = %q{Backbone.js generator}
|
12
|
-
spec.summary = %q{
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.summary = %q{Yet another backbone js generator}
|
14
|
+
spec.homepage = "http://tawrahim.github.io/backbone_generator_web/"
|
14
15
|
spec.license = "MIT"
|
15
16
|
|
16
17
|
spec.files = `git ls-files`.split($/)
|
@@ -18,20 +19,13 @@ Gem::Specification.new do |spec|
|
|
18
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
20
|
spec.require_paths = ["lib"]
|
20
21
|
|
21
|
-
|
22
|
+
|
22
23
|
spec.add_development_dependency "rake"
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
25
|
+
spec.add_development_dependency "rspec", "~> 2.6"
|
23
26
|
|
24
|
-
spec.
|
25
|
-
|
26
|
-
==== Release notes for BackboneGenerator gem ====
|
27
|
-
|
28
|
-
This gem is NOT yet ready for prime time. PLEASE DO NOT
|
29
|
-
USE this gem yet. We are working hard to make dependecy
|
30
|
-
management and boiler plate code generation in your
|
31
|
-
backbone.js apps seameless.
|
32
|
-
|
33
|
-
Tawheed and Mhd
|
27
|
+
spec.add_dependency "thor"
|
28
|
+
spec.add_dependency "colorize", "~>0.6.0"
|
34
29
|
|
35
|
-
|
36
|
-
EOS
|
30
|
+
spec.post_install_message = BackboneGenerator.post_install_message
|
37
31
|
end
|
data/lib/backbone_generator.rb
CHANGED
@@ -1,6 +1,18 @@
|
|
1
|
+
require "thor"
|
2
|
+
require "webrick"
|
3
|
+
require "colorize"
|
1
4
|
require "backbone_generator/version"
|
5
|
+
require "backbone_generator/auxilliary"
|
6
|
+
require "backbone_generator/generators/collections/collections_generator.rb"
|
7
|
+
require "backbone_generator/generators/library/library_generator.rb"
|
8
|
+
require "backbone_generator/generators/models/models_generator.rb"
|
9
|
+
require "backbone_generator/generators/new/new_generator.rb"
|
10
|
+
require "backbone_generator/generators/route/route_generator.rb"
|
11
|
+
require "backbone_generator/generators/templates/templates_generator.rb"
|
12
|
+
require "backbone_generator/generators/tests/tests_generator.rb"
|
13
|
+
require "backbone_generator/generators/utilities/utilities_generator.rb"
|
14
|
+
require "backbone_generator/generators/views/views_generator.rb"
|
2
15
|
|
3
16
|
module BackboneGenerator
|
4
17
|
# Your code goes here...
|
5
|
-
puts "hello world"
|
6
18
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require "erb"
|
2
|
+
|
3
|
+
# Namespace for all the classess
|
4
|
+
# @since 0.0.3
|
5
|
+
module BackboneGenerator
|
6
|
+
|
7
|
+
class << self
|
8
|
+
|
9
|
+
# This app hold the details of the app
|
10
|
+
@@option_details = {}
|
11
|
+
|
12
|
+
# This code is dummed down version of template_method in the bundler
|
13
|
+
# gem. Original version can be found
|
14
|
+
# @see https://github.com/bundler/bundler/blob/master/lib/bundler/vendor/thor/actions/file_manipulation.rb
|
15
|
+
# God Bless all the great and awesome people who brought us open source
|
16
|
+
# God Bless all the ruby developers out there!
|
17
|
+
def compile_and_copy(source_file, *args)
|
18
|
+
config = args.last.is_a?(Hash) ? args.pop : {}
|
19
|
+
destination = args.first
|
20
|
+
context = instance_eval('binding')
|
21
|
+
content = ERB.new(::File.binread(source_file)).result(context)
|
22
|
+
open(destination, 'w') { |f| f << content }
|
23
|
+
end
|
24
|
+
|
25
|
+
# Function used to start server
|
26
|
+
def start_server(port)
|
27
|
+
root = Dir.getwd
|
28
|
+
server = WEBrick::HTTPServer.new :Port => port, :DocumentRoot => root
|
29
|
+
trap 'INT' do server.shutdown end
|
30
|
+
server.start
|
31
|
+
end
|
32
|
+
|
33
|
+
# Getter for the option_details hash
|
34
|
+
def option_details
|
35
|
+
@@option_details
|
36
|
+
end
|
37
|
+
|
38
|
+
# Setter for the option_details hash
|
39
|
+
def option_details=(value)
|
40
|
+
@@option_details = value
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# Namespace for all the classess
|
2
|
+
# @since 0.0.3
|
3
|
+
module BackboneGenerator
|
4
|
+
|
5
|
+
# Abstract base class for CLI utilities
|
6
|
+
#
|
7
|
+
# @author Tawheed Abdul-Raheem
|
8
|
+
# @abstract
|
9
|
+
# @since 0.0.3
|
10
|
+
class CLI < Thor
|
11
|
+
|
12
|
+
private
|
13
|
+
def isvalid?
|
14
|
+
if File.exists? ".BACKBONE_GENERATOR_APP"
|
15
|
+
return true
|
16
|
+
else
|
17
|
+
print "error ".red
|
18
|
+
puts "This command must be excuted in the root level of your app"
|
19
|
+
return false
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
public
|
24
|
+
desc "new app_name", "Create a new backbone.js application named app_name"
|
25
|
+
def new app_name
|
26
|
+
if File.exists? app_name
|
27
|
+
print "error ".red
|
28
|
+
puts "A folder with the name " + app_name + " already exists"
|
29
|
+
else
|
30
|
+
BackboneGenerator::NewGenerator.new app_name
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
desc "model model_name", "Create a new backbone.js model named model_name "
|
35
|
+
def model model_name
|
36
|
+
BackboneGenerator::ModelGenerator.create_model(model_name) unless !isvalid?
|
37
|
+
end
|
38
|
+
|
39
|
+
desc "view view_name", "Create a new backbone.js view named view_name"
|
40
|
+
def view view_name
|
41
|
+
BackboneGenerator::ViewGenerator.create_view(view_name) unless !isvalid?
|
42
|
+
end
|
43
|
+
|
44
|
+
desc "route route_name", "Create a new backbone.js route named route_name"
|
45
|
+
def route route_name
|
46
|
+
BackboneGenerator::RouteGenerator.create_route(route_name) unless !isvalid?
|
47
|
+
end
|
48
|
+
|
49
|
+
desc " collection collection_name", "Create a new backbone.js collection named collection_name"
|
50
|
+
def collection collection_name
|
51
|
+
BackboneGenerator::CollectionGenerator.create_collection(collection_name) unless !isvalid?
|
52
|
+
end
|
53
|
+
|
54
|
+
desc "utility utility_name", "Create a new backbone.js utility named utility_name"
|
55
|
+
def utility utility_name
|
56
|
+
BackboneGenerator::UtilityGenerator.create_utility(utility_name) unless !isvalid?
|
57
|
+
end
|
58
|
+
|
59
|
+
desc "template template_name", "Create a template associated with a view"
|
60
|
+
def template template_name
|
61
|
+
BackboneGenerator::TemplateGenerator.create_template(template_name) unless !isvalid?
|
62
|
+
end
|
63
|
+
|
64
|
+
desc "library library_name", "Create a new backbone.js library named library_name"
|
65
|
+
def library library_name
|
66
|
+
BackboneGenerator::LibraryGenerator.fetch_library(library_name) unless !isvalid?
|
67
|
+
end
|
68
|
+
|
69
|
+
desc "test test_name", "Create a new jasmine test"
|
70
|
+
def test test_name
|
71
|
+
BackboneGenerator::TestGenerator.create_test(test_name) unless !isvalid?
|
72
|
+
end
|
73
|
+
|
74
|
+
desc "server", "Start a server, it defaults to port 5000 or you can pass a second argumnent for the port"
|
75
|
+
def server(port=5000)
|
76
|
+
BackboneGenerator.start_server(port) unless !isvalid?
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Namespace for all the classess
|
2
|
+
# @since 0.0.3
|
3
|
+
module BackboneGenerator
|
4
|
+
|
5
|
+
# Abstract base class for generating
|
6
|
+
# collection A.K.A copying template
|
7
|
+
# @author Tawheed Abdul-Raheem
|
8
|
+
class CollectionGenerator
|
9
|
+
|
10
|
+
class << self
|
11
|
+
def create_collection collection_name
|
12
|
+
app_name = BackboneGenerator.option_details[:app_name] || File.basename(Dir.getwd).chomp("/")
|
13
|
+
if BackboneGenerator.option_details[:app_name]
|
14
|
+
dir_path = File.join(Dir.getwd, app_name)
|
15
|
+
else
|
16
|
+
dir_path = File.join(Dir.getwd)
|
17
|
+
end
|
18
|
+
template_path = File.expand_path(File.dirname(__FILE__)) + "/template/Collection.tt"
|
19
|
+
target_path = "/js/collections/" + collection_name.capitalize + ".Collection.js"
|
20
|
+
collection_hash = {
|
21
|
+
:app_name => app_name.slice(0,1).capitalize + app_name.slice(1..-1),
|
22
|
+
:collection_name => collection_name.slice(0,1).capitalize + collection_name.slice(1..-1),
|
23
|
+
}
|
24
|
+
if File.exist? dir_path + target_path
|
25
|
+
print "error ".red
|
26
|
+
puts "Collection with the name specified already exists"
|
27
|
+
else
|
28
|
+
BackboneGenerator.compile_and_copy(template_path, dir_path + target_path, collection_hash)
|
29
|
+
print "created ".green
|
30
|
+
puts collection_hash[:app_name] + target_path
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
/**
|
2
|
+
* TODO: add description of class
|
3
|
+
* @author:
|
4
|
+
* @class: <%= config[:collection_name] %>Collection
|
5
|
+
* */
|
6
|
+
|
7
|
+
/* global define */
|
8
|
+
var <%= config[:app_name] %> = <%= config[:app_name] %> || {};
|
9
|
+
|
10
|
+
(function() {
|
11
|
+
'use strict';
|
12
|
+
|
13
|
+
define([
|
14
|
+
'jquery',
|
15
|
+
'underscore',
|
16
|
+
'backbone',
|
17
|
+
], function($, _, Backbone) {
|
18
|
+
|
19
|
+
// Collection is a group of models that have custom methods
|
20
|
+
// that you create for them
|
21
|
+
<%= config[:app_name] %>.<%= config[:collection_name] %>Collection = Backbone.Collection.extend({
|
22
|
+
|
23
|
+
//TODO: Place your collection code here
|
24
|
+
|
25
|
+
});
|
26
|
+
|
27
|
+
return <%= config[:app_name] %>.<%= config[:collection_name] %>Collection;
|
28
|
+
});
|
29
|
+
}());
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Namespace for all the classess
|
2
|
+
# @since 0.0.3
|
3
|
+
module BackboneGenerator
|
4
|
+
|
5
|
+
# Abstract base class for fetching
|
6
|
+
# javascript libaries from the internet
|
7
|
+
# @author Tawheed Abdul-Raheem
|
8
|
+
class ModelGenerator
|
9
|
+
|
10
|
+
class << self
|
11
|
+
def fetch_library library_name
|
12
|
+
print "NOTICE ".yellow
|
13
|
+
puts "Will be implemented in the next Release"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Namespace for all the classess
|
2
|
+
# @since 0.0.3
|
3
|
+
module BackboneGenerator
|
4
|
+
|
5
|
+
# Abstract base class for generating
|
6
|
+
# models A.K.A copying template
|
7
|
+
# @author Tawheed Abdul-Raheem
|
8
|
+
class ModelGenerator
|
9
|
+
|
10
|
+
class << self
|
11
|
+
def create_model model_name
|
12
|
+
app_name = BackboneGenerator.option_details[:app_name] || File.basename(Dir.getwd).chomp("/")
|
13
|
+
if BackboneGenerator.option_details[:app_name]
|
14
|
+
dir_path = File.join(Dir.getwd, app_name)
|
15
|
+
else
|
16
|
+
dir_path = File.join(Dir.getwd)
|
17
|
+
end
|
18
|
+
template_path = File.expand_path(File.dirname(__FILE__)) + "/template/Model.tt"
|
19
|
+
target_path = "/js/models/" + model_name.capitalize + ".Model.js"
|
20
|
+
model_hash = {
|
21
|
+
:app_name => app_name.slice(0,1).capitalize + app_name.slice(1..-1),
|
22
|
+
:model_name => model_name.slice(0,1).capitalize + model_name.slice(1..-1),
|
23
|
+
}
|
24
|
+
if File.exist? dir_path + target_path
|
25
|
+
print "error ".red
|
26
|
+
puts "Model with the name specified already exists"
|
27
|
+
else
|
28
|
+
BackboneGenerator.compile_and_copy(template_path, dir_path + target_path, model_hash)
|
29
|
+
print "created ".green
|
30
|
+
puts model_hash[:app_name] + target_path
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
/**
|
2
|
+
* TODO: add description of class
|
3
|
+
* @author:
|
4
|
+
* @class: <%= config[:model_name] %>Model
|
5
|
+
* */
|
6
|
+
|
7
|
+
/* global define */
|
8
|
+
var <%= config[:app_name] %> = <%= config[:app_name] %> || {};
|
9
|
+
|
10
|
+
(function() {
|
11
|
+
'use strict';
|
12
|
+
|
13
|
+
define([
|
14
|
+
'jquery',
|
15
|
+
'underscore',
|
16
|
+
'backbone',
|
17
|
+
], function($, _, Backbone) {
|
18
|
+
|
19
|
+
<%= config[:app_name] %>.<%= config[:model_name] %>Model = Backbone.Model.extend({
|
20
|
+
|
21
|
+
//TODO: Add any default model object here
|
22
|
+
defaults: {
|
23
|
+
foo: "I am a data memeber"
|
24
|
+
},
|
25
|
+
|
26
|
+
//TODO: Add any initialization code here
|
27
|
+
initialize: function() {
|
28
|
+
console.log("Initializing main <%= config[:model_name] %> model");
|
29
|
+
},
|
30
|
+
|
31
|
+
//TODO: Getters and Setters for the model object
|
32
|
+
getfoo: function() {
|
33
|
+
return this.get('foo');
|
34
|
+
},
|
35
|
+
|
36
|
+
setfoo: function(value) {
|
37
|
+
this.set('foo', value);
|
38
|
+
},
|
39
|
+
|
40
|
+
});
|
41
|
+
|
42
|
+
return <%= config[:app_name] %>.<%= config[:model_name] %>Model;
|
43
|
+
});
|
44
|
+
}());
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# Namespace for all the classess
|
2
|
+
# @since 0.0.3
|
3
|
+
module BackboneGenerator
|
4
|
+
|
5
|
+
# Abstract base class for generating a project
|
6
|
+
#
|
7
|
+
# @author Tawheed Abdul-Raheem
|
8
|
+
# @abstract
|
9
|
+
# @since 0.0.3
|
10
|
+
class NewGenerator
|
11
|
+
|
12
|
+
def initialize app_name
|
13
|
+
@app_name = app_name.chomp("/")
|
14
|
+
@target_path = File.join(Dir.getwd, @app_name)
|
15
|
+
@template_path = File.expand_path(File.dirname(__FILE__)) + "/template"
|
16
|
+
Dir.mkdir (@target_path)
|
17
|
+
|
18
|
+
git_user_name = `git config user.name`.chomp
|
19
|
+
git_user_email = `git config user.email`.chomp
|
20
|
+
|
21
|
+
BackboneGenerator.option_details.merge!({
|
22
|
+
:app_name => @app_name.slice(0,1).capitalize + @app_name.slice(1..-1),
|
23
|
+
:app_path => @target_path,
|
24
|
+
:author => git_user_name.empty? ? "TODO: Write your name" : git_user_name,
|
25
|
+
:email => git_user_email.empty? ? "TODO: Write your email address" : git_user_email,
|
26
|
+
})
|
27
|
+
BackboneGenerator.option_details.freeze
|
28
|
+
copy_static_files
|
29
|
+
copy_compiled_files
|
30
|
+
puts "Initializing git repo in " + Dir.getwd + "/" + app_name
|
31
|
+
Dir.chdir(@target_path) { `git init`; `git add .` }
|
32
|
+
end
|
33
|
+
|
34
|
+
def copy_static_files
|
35
|
+
dot_files = ["/.gitignore", "/.BACKBONE_GENERATOR_APP", "/index.html"]
|
36
|
+
dot_files.each do |file|
|
37
|
+
FileUtils.cp(@template_path + file, @target_path)
|
38
|
+
print "created ".green
|
39
|
+
puts BackboneGenerator.option_details[:app_name] + file
|
40
|
+
end
|
41
|
+
|
42
|
+
js_files = ['/js/collections', '/js/models', '/js/views', '/js/templates', '/js/utilities', '/js/libs', '/js/routes']
|
43
|
+
js_files.each do |file|
|
44
|
+
FileUtils.mkdir_p @target_path + file
|
45
|
+
end
|
46
|
+
|
47
|
+
FileUtils.cp_r(Dir.glob(@template_path + '/js/libs/'), @target_path + '/js/')
|
48
|
+
|
49
|
+
css_img = ["/css", "/img"]
|
50
|
+
css_img.each do |file|
|
51
|
+
FileUtils.cp_r(Dir.glob(@template_path + file), @target_path)
|
52
|
+
end
|
53
|
+
|
54
|
+
# comments to display
|
55
|
+
print "created ".green
|
56
|
+
puts BackboneGenerator.option_details[:app_name] + "/css/main.css"
|
57
|
+
print "created ".green
|
58
|
+
puts BackboneGenerator.option_details[:app_name] + "/img/backbone.png"
|
59
|
+
end
|
60
|
+
|
61
|
+
def copy_compiled_files
|
62
|
+
templates_hash = {
|
63
|
+
"/README.tt" => "/README.md",
|
64
|
+
"/main.tt" => "/js/app.js",
|
65
|
+
"/js/views/Main.View.tt" => "/js/views/Main.View.js"
|
66
|
+
}
|
67
|
+
templates_hash.each do |key, value|
|
68
|
+
BackboneGenerator.compile_and_copy(@template_path + key, @target_path + value, BackboneGenerator.option_details)
|
69
|
+
print "created ".green
|
70
|
+
puts BackboneGenerator.option_details[:app_name] + value
|
71
|
+
end
|
72
|
+
|
73
|
+
BackboneGenerator::ViewGenerator.create_view("hello")
|
74
|
+
BackboneGenerator::ModelGenerator.create_model("hello")
|
75
|
+
BackboneGenerator::CollectionGenerator.create_collection("hello")
|
76
|
+
BackboneGenerator::RouteGenerator.create_route(BackboneGenerator.option_details[:app_name])
|
77
|
+
BackboneGenerator::UtilityGenerator.create_utility(BackboneGenerator.option_details[:app_name])
|
78
|
+
# This is some hacky stuff! Will remove in future release, Beacuse
|
79
|
+
# the initial template contains a special message from me, there got
|
80
|
+
# to be a way to replace the message so that it only appears the first time
|
81
|
+
# to resolve this problem, I am simply going to override the contents
|
82
|
+
# of the file with a standard default template
|
83
|
+
open(File.expand_path("..",File.dirname(__FILE__)) + "/templates/template/Template.tt", 'w') do |f|
|
84
|
+
f.puts '<p> I am the template for <%= config[:template_name] %> </p>'
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|