backbone-generators 0.01

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.
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
4
+
5
+ require 'fileutils'
6
+ require 'generators'
7
+
8
+ Backbone.root = File.expand_path(__FILE__+"/../..")
9
+ Backbone::Generators.new(ARGV)
@@ -0,0 +1,88 @@
1
+ require 'active_support/inflector'
2
+
3
+ module Backbone
4
+
5
+ class << self
6
+ @root
7
+
8
+ def root=(val)
9
+ @root = val
10
+ end
11
+
12
+ def root
13
+ @root
14
+ end
15
+ end
16
+
17
+ class Generators
18
+
19
+ def initialize(*args)
20
+
21
+ if args[0][0] == 'init'
22
+ copy_core_js
23
+ create_mvc_dirs
24
+ elsif args[0][0] == 'generate' || args[0][0] == 'g'
25
+ parse_backbone_string(args[0][1], args[0][2])
26
+ else
27
+ puts "Usage:"
28
+ puts "\tbackbone init"
29
+ puts "\tbackbone g controller my_controller"
30
+ end
31
+ end
32
+
33
+ def parse_backbone_string(_folder, _file)
34
+ folder = _folder.pluralize
35
+ file = _file+("_#{folder.singularize}")
36
+
37
+ file.concat('.coffee') unless file =~ /.coffee$/
38
+ create_file("app/coffeescripts/#{folder}/#{file}", true)
39
+ end
40
+
41
+ def copy_core_js
42
+
43
+ copy_file_and_log([['assets/javascripts/backbone.js', 'public/javascripts/'],
44
+ ['assets/javascripts/underscore.js', 'public/javascripts/'],
45
+ ['assets/javascripts/json2.js', 'public/javascripts/']])
46
+ end
47
+
48
+ def create_mvc_dirs
49
+ create_dir([
50
+ "public/javascripts/controllers",
51
+ "public/javascripts/models",
52
+ "public/javascripts/views",
53
+ "public/javascripts/collections"], true)
54
+ end
55
+
56
+ protected
57
+
58
+ def copy_file_and_log(file, dest=nil)
59
+ if file.is_a?(Array)
60
+ file.each {|val| copy_file_and_log(val[0], val[1])}
61
+ else
62
+ FileUtils.cp(File.join(Backbone.root, file), dest)
63
+ puts "\t copied file #{file} to #{dest}"
64
+ end
65
+ end
66
+
67
+ def create_file(file, log)
68
+ if file.is_a?(Array)
69
+ file.each {|val|create_file(file, log)}
70
+ else
71
+ create_dir(File.dirname(file), false)
72
+ FileUtils.touch(file)
73
+ puts "\t created file #{file}" if !!log
74
+ end
75
+ end
76
+
77
+ def create_dir(url, log)
78
+ if url.is_a?(Array)
79
+ url.each {|val| create_dir(val)}
80
+ else
81
+ FileUtils.mkdir_p(url)
82
+ puts "\t created directory #{url}" if !!log
83
+ end
84
+ end
85
+
86
+
87
+ end
88
+ end
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: backbone-generators
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: "0.01"
6
+ platform: ruby
7
+ authors:
8
+ - Hamish Evans
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-05-25 00:00:00 +12:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: jammit
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ description: A collection of handy generators for backbone js. Currently the generators only support the rails file system.
28
+ email: hamish@gizbo.net
29
+ executables:
30
+ - backbone
31
+ extensions: []
32
+
33
+ extra_rdoc_files: []
34
+
35
+ files:
36
+ - lib/generators.rb
37
+ - assets/javascripts/backbone.js
38
+ - assets/javascripts/json2.js
39
+ - assets/javascripts/underscore.js
40
+ - bin/backbone
41
+ has_rdoc: true
42
+ homepage: https://github.com/ruby-fu-ninja/backbone-generators
43
+ licenses: []
44
+
45
+ post_install_message:
46
+ rdoc_options: []
47
+
48
+ require_paths:
49
+ - lib
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: "0"
62
+ requirements: []
63
+
64
+ rubyforge_project:
65
+ rubygems_version: 1.5.2
66
+ signing_key:
67
+ specification_version: 3
68
+ summary: A collection of handy generators for backbone js. Currently the generators only support the rails file system.
69
+ test_files: []
70
+