skeletal 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # AppBones
1
+ # Skeletal
2
2
 
3
3
  Simple application structure generator
4
4
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.0
1
+ 0.0.1
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.join(File.expand_path(File.dirname(__FILE__)),'..', 'lib', 'skeletal')
4
+ require 'optparse'
5
+
6
+ options = {
7
+ :classic => true,
8
+ :rspec => false,
9
+ :cucumber => false
10
+ }
11
+ OptionParser.new do |opts|
12
+ opts.banner = "Usage: skeletal [OPTIONS] app_name"
13
+ opts.on("-c", "--classic", "Specify to use classic style of sinatra app (currently not the default)") do |dir|
14
+ options[:classic] = true
15
+ end
16
+ opts.on("-r", "--rspec", "Generate the bare rspec structure") do |dir|
17
+ options[:rspec] = true
18
+ end
19
+ opts.on("-u", "--cucumber", "Generate the bare cucumber structure") do |dir|
20
+ options[:cucumber] = true
21
+ end
22
+ end.parse!
23
+
24
+ raise "You must specify an app name" if ARGV.empty? || ARGV.first.strip.empty?
25
+
26
+ Skeletal.create! ARGV.first.strip, options
@@ -0,0 +1,57 @@
1
+ require 'fileutils'
2
+
3
+ class Skeletal
4
+ def self.create! app_name
5
+ # Create the initial directory
6
+ # FileUtils.mkpath(File.expand_path(directory))
7
+
8
+ @app_dir = File.expand_path(app_name)
9
+ puts "Generating application #{app_name}..."
10
+
11
+ # Create the basic folder structure
12
+
13
+ folders = %w( app/models app/helpers app/views app/views/layouts lib logs config tasks db/migrations public/images public/js public/css )
14
+ unless options[:classic]
15
+ folders << 'app/routes'
16
+ end
17
+ if options[:rspec]
18
+ folders << 'spec'
19
+ end
20
+ if options[:cucumber]
21
+ folders << %w( features/step_definitions features/support )
22
+ end
23
+
24
+ folders.flatten.each do |dir|
25
+ puts '> '+dir
26
+ FileUtils.mkpath(File.join(@app_dir, dir))
27
+ end
28
+
29
+ # Create the application file
30
+ @app_file = File.join(File.expand_path(app_name), 'app', "#{app_name}.rb")
31
+ @class_name = app_name.downcase.gsub(/[-_\s]+/, ' ').split(' ').map{|word| word.capitalize }.join
32
+ puts '> '+@app_file
33
+ File.open(@app_file, 'w') do |file|
34
+ file.write(%Q{
35
+ require 'rubygems'
36
+ require 'sinatra'
37
+
38
+ class #{@class_name} < Sinatra::Application
39
+
40
+ configure do
41
+ # Configuration here
42
+ end
43
+
44
+ end
45
+ })
46
+ end
47
+
48
+ # Add a few files
49
+ ['Gemfile', '.gitignore', 'spec/spec_helper.rb', "spec/#{app_name}_spec.rb" ].each do |file|
50
+ puts '> '+file
51
+ FileUtils.touch(File.join(@app_dir, file))
52
+ end
53
+
54
+ # Add everything to git
55
+ `cd #{@app_dir} && git init && git add . && git commit -m "Initial Commit"`
56
+ end
57
+ end
@@ -1,8 +1,8 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
- require 'appbones'
2
+ require 'skeletal'
3
3
 
4
- describe AppBones do
4
+ describe Skeletal do
5
5
  it 'should respond to creating an app bone structure' do
6
- AppBones.respond_to? :create!
6
+ Skeletal.respond_to? :create!
7
7
  end
8
8
  end
@@ -1,6 +1,6 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
- require 'appbones'
3
+ require 'skeletal'
4
4
  require 'rspec'
5
5
  require 'rspec/autorun'
6
6
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 0
9
- version: 0.0.0
8
+ - 1
9
+ version: 0.0.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - BJ Neilsen
@@ -14,8 +14,8 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-08-04 00:00:00 -06:00
18
- default_executable: appbones
17
+ date: 2010-08-05 00:00:00 -06:00
18
+ default_executable: skeletal
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rake
@@ -115,27 +115,20 @@ dependencies:
115
115
  description: A gem to handle generating application structures for non-rails applications. Currently supports only Sinatra.
116
116
  email: bj.neilsen@gmail.com
117
117
  executables:
118
- - appbones
118
+ - skeletal
119
119
  extensions: []
120
120
 
121
121
  extra_rdoc_files:
122
122
  - LICENSE
123
123
  - README.md
124
124
  files:
125
- - .document
126
- - .gitignore
127
125
  - LICENSE
128
126
  - README.md
129
- - Rakefile
130
127
  - VERSION
131
- - bin/appbones
132
- - features/appbones.feature
133
- - features/step_definitions/appbones_steps.rb
134
- - features/support/env.rb
135
- - lib/appbones.rb
136
- - lib/templates/app.erb
137
- - spec/appbones_spec.rb
128
+ - lib/skeletal.rb
129
+ - spec/skeletal_spec.rb
138
130
  - spec/spec_helper.rb
131
+ - bin/skeletal
139
132
  has_rdoc: true
140
133
  homepage: http://github.com/localshred/skeletal
141
134
  licenses: []
@@ -169,5 +162,5 @@ signing_key:
169
162
  specification_version: 3
170
163
  summary: Application structure generator
171
164
  test_files:
172
- - spec/appbones_spec.rb
165
+ - spec/skeletal_spec.rb
173
166
  - spec/spec_helper.rb
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
data/Rakefile DELETED
@@ -1,57 +0,0 @@
1
- require 'rubygems'
2
- require 'rake'
3
- require 'bundler'
4
-
5
- begin
6
- require 'jeweler'
7
- Jeweler::Tasks.new do |gem|
8
- gem.name = 'skeletal'
9
- gem.summary = %Q{Application structure generator}
10
- gem.description = %Q{A gem to handle generating application structures for non-rails applications. Currently supports only Sinatra.}
11
- gem.email = 'bj.neilsen@gmail.com'
12
- gem.homepage = 'http://github.com/localshred/skeletal'
13
- gem.authors = ['BJ Neilsen']
14
- gem.add_bundler_dependencies
15
- end
16
- Jeweler::GemcutterTasks.new
17
- rescue LoadError
18
- puts 'Jeweler (or a dependency) not available. Install it with: gem install jeweler'
19
- end
20
-
21
- require 'rspec/core/rake_task'
22
- RSpec::Core::RakeTask.new(:spec) do |spec|
23
- # spec.libs << 'lib' << 'spec'
24
- # spec.spec_files = FileList['spec/**/*_spec.rb']
25
- spec.pattern = 'spec/**/*_spec.rb'
26
- end
27
-
28
- RSpec::Core::RakeTask.new(:rcov) do |spec|
29
- # spec.libs << 'lib' << 'spec'
30
- spec.pattern = 'spec/**/*_spec.rb'
31
- spec.rcov = true
32
- end
33
-
34
- task :spec => :check_dependencies
35
-
36
- begin
37
- require 'cucumber/rake/task'
38
- Cucumber::Rake::Task.new(:features)
39
-
40
- task :features => :check_dependencies
41
- rescue LoadError
42
- task :features do
43
- abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
44
- end
45
- end
46
-
47
- task :default => :spec
48
-
49
- require 'rake/rdoctask'
50
- Rake::RDocTask.new do |rdoc|
51
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
52
-
53
- rdoc.rdoc_dir = 'rdoc'
54
- rdoc.title = "appbones #{version}"
55
- rdoc.rdoc_files.include('README*')
56
- rdoc.rdoc_files.include('lib/**/*.rb')
57
- end
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require File.join(File.expand_path(File.dirname(__FILE__)),'..', 'lib', 'appbones')
4
- require 'optparse'
5
-
6
- # options = {}
7
- # OptionParser.new do |opts|
8
- # opts.banner = "Usage: appbones [OPTIONS] app_name"
9
- # opts.on("-d", "--directory", "Specify the base application directory") do |dir|
10
- # options[:directory] = dir
11
- # end
12
- # end.parse!
13
-
14
- raise "You must specify an app name" if ARGV.empty? || ARGV.first.strip.empty?
15
-
16
- AppBones.create! ARGV.first.strip
@@ -1,9 +0,0 @@
1
- Feature: something something
2
- In order to something something
3
- A user something something
4
- something something something
5
-
6
- Scenario: something something
7
- Given inspiration
8
- When I create a sweet new gem
9
- Then everyone should see how awesome I am
@@ -1,4 +0,0 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
2
- require 'appbones'
3
-
4
- require 'spec/expectations'
@@ -1,27 +0,0 @@
1
- require 'erb'
2
- require 'fileutils'
3
-
4
- class AppBones
5
- def self.create! app_name
6
- # Create the initial directory
7
- # FileUtils.mkpath(File.expand_path(directory))
8
-
9
- @app_dir = File.expand_path(app_name)
10
- puts @app_dir
11
-
12
- # Create the basic folder structure
13
- %w( app app/models app/helpers app/views app/views/layouts app/routes lib spec features features/step_definitions features/support config tmp tasks db db/migrations ).each do |dir|
14
- puts dir
15
- FileUtils.mkpath(File.join(@app_dir, dir))
16
- end
17
-
18
- # Create the application file
19
- @app_file = File.join(File.expand_path(app_name), 'app', "#{name}.rb")
20
- File.open(@app_file, 'w') do |file|
21
- template = ERB.new 'templates/app.erb'
22
- file.write(template.run(binding))
23
- end
24
-
25
- # Add everything to git
26
- end
27
- end
@@ -1,19 +0,0 @@
1
- require 'rubygems'
2
- require 'sinatra'
3
-
4
- class <%= @name %> < Sinatra::Application
5
-
6
- configure do
7
- # Configuration here
8
- end
9
-
10
- helpers do
11
- # Helper methods here
12
- end
13
-
14
- # Routes Here
15
- get '/hi' do
16
- "Hello World!"
17
- end
18
-
19
- end