sweetsie 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +0 -0
- data/Rakefile +24 -0
- data/VERSION +1 -0
- data/bin/sweetsie +16 -0
- data/lib/sweetsie/generators/helper.rb +27 -0
- data/lib/sweetsie/generators/migration_generator.rb +13 -0
- data/lib/sweetsie/generators/model_generator.rb +23 -0
- data/lib/sweetsie/generators/new_project_generator.rb +28 -0
- data/lib/sweetsie/tasks/database.rb +17 -0
- data/lib/sweetsie.rb +0 -0
- data/sweetsie.gemspec +63 -0
- data/templates/migration/db/migrate/migration.rb +7 -0
- data/templates/model/models/model.rb +3 -0
- data/templates/model/test/models/test_model.rb +8 -0
- data/templates/project/Rakefile +11 -0
- data/templates/project/config/database.yml +27 -0
- data/templates/project/initialize.rb +30 -0
- data/templates/project/script/generate +17 -0
- data/templates/project/test/test_helper.rb +26 -0
- metadata +104 -0
data/README.rdoc
ADDED
File without changes
|
data/Rakefile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gemspec|
|
7
|
+
gemspec.name = "sweetsie"
|
8
|
+
gemspec.summary = "Quick framework for when you need to scratch something out!"
|
9
|
+
gemspec.description = "Quick framework for when you need to scratch something out!"
|
10
|
+
gemspec.email = "jacob.atkins@projectadrienne.com"
|
11
|
+
gemspec.homepage = "http://github.com/jatkins/sweetsie"
|
12
|
+
gemspec.description = "Quick framework for when you need to scratch something out!"
|
13
|
+
gemspec.authors = ["Jacob Atkins"]
|
14
|
+
|
15
|
+
gemspec.add_dependency('templater', '>= 0.5.0')
|
16
|
+
gemspec.add_dependency('rake', '>=0.9.0')
|
17
|
+
gemspec.add_dependency('activerecord', '>=3.0.3')
|
18
|
+
end
|
19
|
+
Jeweler::GemcutterTasks.new
|
20
|
+
rescue LoadError
|
21
|
+
puts "Jeweler not available. Install it with: sudo gem install jeweler"
|
22
|
+
end
|
23
|
+
|
24
|
+
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.1
|
data/bin/sweetsie
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'templater'
|
5
|
+
|
6
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
7
|
+
|
8
|
+
require 'sweetsie/generators/helper'
|
9
|
+
require 'sweetsie/generators/new_project_generator'
|
10
|
+
|
11
|
+
module SweetsieGenerators
|
12
|
+
extend Templater::Manifold
|
13
|
+
add :project, NewProjectGenerator
|
14
|
+
end
|
15
|
+
|
16
|
+
SweetsieGenerators.run_cli Dir.pwd, 'sweetsie', '0.0.1', ['project',ARGV].flatten
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class String
|
2
|
+
def camelcase
|
3
|
+
self.split('_').map{|e| e.capitalize}.join
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
7
|
+
class Templater::Generator
|
8
|
+
def camelcase
|
9
|
+
self.name.split('_').map{|e| e.capitalize}.join
|
10
|
+
end
|
11
|
+
|
12
|
+
def underscore
|
13
|
+
self.name.gsub(/::/, '/').
|
14
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
15
|
+
gsub(/([a-z\d])([A-Z])/, '\1_\2').
|
16
|
+
tr("-","_").
|
17
|
+
downcase
|
18
|
+
end
|
19
|
+
|
20
|
+
def migration_name
|
21
|
+
"create_#{self.name}s"
|
22
|
+
end
|
23
|
+
|
24
|
+
def migration_time
|
25
|
+
Time.now.strftime("%Y%m%d%H%M%S")
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class MigrationGenerator < Templater::Generator
|
2
|
+
def self.source_root
|
3
|
+
File.join %W| #{File.dirname(__FILE__)} .. .. .. templates migration |
|
4
|
+
end
|
5
|
+
|
6
|
+
first_argument :name, :require => true
|
7
|
+
|
8
|
+
directory :migrations, File.join(%w|db migrate|)
|
9
|
+
template :migration do |t|
|
10
|
+
t.source = File.join(%w|db migrate migration.rb|)
|
11
|
+
t.destination = File.join(%w|db migrate %migration_time%_%underscore%.rb|)
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class ModelGenerator < Templater::Generator
|
2
|
+
def self.source_root
|
3
|
+
File.join %W| #{File.dirname(__FILE__)} .. .. .. templates model |
|
4
|
+
end
|
5
|
+
|
6
|
+
first_argument :name, :require => true
|
7
|
+
|
8
|
+
empty_directory :models, 'models'
|
9
|
+
template :model do |t|
|
10
|
+
t.source = File.join %W| models model.rb|
|
11
|
+
t.destination = File.join %W| models %underscore%.rb|
|
12
|
+
end
|
13
|
+
|
14
|
+
empty_directory :tests, File.join('test','models')
|
15
|
+
template :test do |t|
|
16
|
+
t.source = File.join %W| test models test_model.rb |
|
17
|
+
t.destination = File.join %W| test models test_%underscore%.rb |
|
18
|
+
end
|
19
|
+
|
20
|
+
invoke :migration do |generator|
|
21
|
+
generator.new(destination_root, options.merge(:name => true), migration_name)
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class NewProjectGenerator < Templater::Generator
|
2
|
+
def self.source_root
|
3
|
+
File.join %W| #{File.dirname(__FILE__)} .. .. .. templates project |
|
4
|
+
end
|
5
|
+
|
6
|
+
first_argument :root, :required => true
|
7
|
+
|
8
|
+
empty_directory :root, '%root%'
|
9
|
+
empty_directory :log, File.join('%root%', 'log')
|
10
|
+
empty_directory :db, File.join('%root%', 'db')
|
11
|
+
empty_directory :config, File.join('%root%', 'config')
|
12
|
+
empty_directory :test, File.join('%root%', 'test')
|
13
|
+
empty_directory :script, File.join('%root%', 'script') # TODO Add chmod callback
|
14
|
+
empty_directory :'test/models', File.join('%root%', 'test', 'models')
|
15
|
+
empty_directory :'test/tasks', File.join('%root%', 'test', 'tasks')
|
16
|
+
|
17
|
+
files = [
|
18
|
+
['Rakefile'],
|
19
|
+
['initialize.rb'],
|
20
|
+
['config' ,'database.yml' ],
|
21
|
+
['script' ,'generate' ],
|
22
|
+
['test' ,'test_helper.rb' ],
|
23
|
+
]
|
24
|
+
|
25
|
+
files.each do |file_array|
|
26
|
+
file file_array.last.to_sym, File.join(*file_array), File.join('%root%',*file_array)
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
namespace :db do
|
2
|
+
|
3
|
+
desc "Drops all database tables"
|
4
|
+
task :drop => :environmane do
|
5
|
+
Sweetsie.down!
|
6
|
+
end
|
7
|
+
|
8
|
+
desc "Migrates database"
|
9
|
+
task :migrate => :environment do
|
10
|
+
version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
|
11
|
+
Sweetsie.up! version
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Drops and remigrates the database"
|
15
|
+
task :reset => ['drop', 'migrate']
|
16
|
+
# TODO Add safty code to provent this task from running in any ENV higher than testing
|
17
|
+
end
|
data/lib/sweetsie.rb
ADDED
File without changes
|
data/sweetsie.gemspec
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{sweetsie}
|
8
|
+
s.version = "0.0.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = [%q{Jacob Atkins}]
|
12
|
+
s.date = %q{2011-05-22}
|
13
|
+
s.description = %q{Quick framework for when you need to scratch something out!}
|
14
|
+
s.email = %q{jacob.atkins@projectadrienne.com}
|
15
|
+
s.executables = [%q{sweetsie}]
|
16
|
+
s.extra_rdoc_files = [
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
"README.rdoc",
|
21
|
+
"Rakefile",
|
22
|
+
"VERSION",
|
23
|
+
"bin/sweetsie",
|
24
|
+
"lib/sweetsie.rb",
|
25
|
+
"lib/sweetsie/generators/helper.rb",
|
26
|
+
"lib/sweetsie/generators/migration_generator.rb",
|
27
|
+
"lib/sweetsie/generators/model_generator.rb",
|
28
|
+
"lib/sweetsie/generators/new_project_generator.rb",
|
29
|
+
"lib/sweetsie/tasks/database.rb",
|
30
|
+
"sweetsie.gemspec",
|
31
|
+
"templates/migration/db/migrate/migration.rb",
|
32
|
+
"templates/model/models/model.rb",
|
33
|
+
"templates/model/test/models/test_model.rb",
|
34
|
+
"templates/project/Rakefile",
|
35
|
+
"templates/project/config/database.yml",
|
36
|
+
"templates/project/initialize.rb",
|
37
|
+
"templates/project/script/generate",
|
38
|
+
"templates/project/test/test_helper.rb"
|
39
|
+
]
|
40
|
+
s.homepage = %q{http://github.com/jatkins/sweetsie}
|
41
|
+
s.require_paths = [%q{lib}]
|
42
|
+
s.rubygems_version = %q{1.8.3}
|
43
|
+
s.summary = %q{Quick framework for when you need to scratch something out!}
|
44
|
+
|
45
|
+
if s.respond_to? :specification_version then
|
46
|
+
s.specification_version = 3
|
47
|
+
|
48
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
|
+
s.add_runtime_dependency(%q<templater>, [">= 0.5.0"])
|
50
|
+
s.add_runtime_dependency(%q<rake>, [">= 0.9.0"])
|
51
|
+
s.add_runtime_dependency(%q<activerecord>, [">= 3.0.3"])
|
52
|
+
else
|
53
|
+
s.add_dependency(%q<templater>, [">= 0.5.0"])
|
54
|
+
s.add_dependency(%q<rake>, [">= 0.9.0"])
|
55
|
+
s.add_dependency(%q<activerecord>, [">= 3.0.3"])
|
56
|
+
end
|
57
|
+
else
|
58
|
+
s.add_dependency(%q<templater>, [">= 0.5.0"])
|
59
|
+
s.add_dependency(%q<rake>, [">= 0.9.0"])
|
60
|
+
s.add_dependency(%q<activerecord>, [">= 3.0.3"])
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
:development:
|
2
|
+
:adapter: mysql
|
3
|
+
:database:
|
4
|
+
:host:
|
5
|
+
:user:
|
6
|
+
:password:
|
7
|
+
|
8
|
+
:testing:
|
9
|
+
:adapter: mysql
|
10
|
+
:database:
|
11
|
+
:host:
|
12
|
+
:user:
|
13
|
+
:password:
|
14
|
+
|
15
|
+
:staging:
|
16
|
+
:adapter: mysql
|
17
|
+
:database:
|
18
|
+
:host:
|
19
|
+
:user:
|
20
|
+
:password:
|
21
|
+
|
22
|
+
:production:
|
23
|
+
:adapter: mysql
|
24
|
+
:database:
|
25
|
+
:host:
|
26
|
+
:user:
|
27
|
+
:password:
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'activerecord'
|
3
|
+
|
4
|
+
module Sweeetsie
|
5
|
+
class << self
|
6
|
+
def boot(enviornment)
|
7
|
+
ActiveRecord::Base.establish_connection(db[environment])
|
8
|
+
|
9
|
+
ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), 'log', "#{environment}.log"))
|
10
|
+
|
11
|
+
Dir[File.join(%W|#{File.dirname(__FILE__)} models ** *.rb |)].each {|r| load r}
|
12
|
+
end
|
13
|
+
|
14
|
+
def migrations
|
15
|
+
File.join(File.dirname(__FILE__), 'db', 'migrate')
|
16
|
+
end
|
17
|
+
|
18
|
+
def db
|
19
|
+
YAML::load(File.read(File.join(File.dirname(__FILE__), 'database.yml')))
|
20
|
+
end
|
21
|
+
|
22
|
+
def up!(version=nil)
|
23
|
+
ActiveRecord::Migration.migrate migrations, version
|
24
|
+
end
|
25
|
+
|
26
|
+
def down!
|
27
|
+
up!
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'templater'
|
5
|
+
|
6
|
+
require 'sweetsie/generators/helper'
|
7
|
+
require 'sweetsie/generators/migration_generator'
|
8
|
+
require 'sweetsie/generators/model_generator'
|
9
|
+
|
10
|
+
module SweetsieGenerators
|
11
|
+
extend Templater::Manifold
|
12
|
+
|
13
|
+
add :model, ModelGenerator
|
14
|
+
add :migration, MigrationGenerator
|
15
|
+
end
|
16
|
+
|
17
|
+
SweetsieGenerators.run_cli(Dir.pwd, 'sweetsie', '0.0.1', ARGV)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
$:.unshift("..")
|
2
|
+
|
3
|
+
# Loading gems
|
4
|
+
require 'rubygems'
|
5
|
+
require 'rake'
|
6
|
+
require 'test/unit'
|
7
|
+
require 'shoulda'
|
8
|
+
|
9
|
+
# Loading our code
|
10
|
+
require 'initialize'
|
11
|
+
|
12
|
+
ActiveRecord::Migration.verbose = false
|
13
|
+
|
14
|
+
Sweetsie.boot :testing
|
15
|
+
Sweetsie.down!
|
16
|
+
Sweetsie.up!
|
17
|
+
|
18
|
+
def rake_up
|
19
|
+
Rake.application = Rake::Application.new
|
20
|
+
Rake::Task.define_task :environment
|
21
|
+
Rake.application
|
22
|
+
end
|
23
|
+
|
24
|
+
def rake_down
|
25
|
+
Rake.application = nil
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sweetsie
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jacob Atkins
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-05-22 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: templater
|
17
|
+
prerelease: false
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.5.0
|
24
|
+
type: :runtime
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: rake
|
28
|
+
prerelease: false
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.9.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: activerecord
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.0.3
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id003
|
48
|
+
description: Quick framework for when you need to scratch something out!
|
49
|
+
email: jacob.atkins@projectadrienne.com
|
50
|
+
executables:
|
51
|
+
- sweetsie
|
52
|
+
extensions: []
|
53
|
+
|
54
|
+
extra_rdoc_files:
|
55
|
+
- README.rdoc
|
56
|
+
files:
|
57
|
+
- README.rdoc
|
58
|
+
- Rakefile
|
59
|
+
- VERSION
|
60
|
+
- bin/sweetsie
|
61
|
+
- lib/sweetsie.rb
|
62
|
+
- lib/sweetsie/generators/helper.rb
|
63
|
+
- lib/sweetsie/generators/migration_generator.rb
|
64
|
+
- lib/sweetsie/generators/model_generator.rb
|
65
|
+
- lib/sweetsie/generators/new_project_generator.rb
|
66
|
+
- lib/sweetsie/tasks/database.rb
|
67
|
+
- sweetsie.gemspec
|
68
|
+
- templates/migration/db/migrate/migration.rb
|
69
|
+
- templates/model/models/model.rb
|
70
|
+
- templates/model/test/models/test_model.rb
|
71
|
+
- templates/project/Rakefile
|
72
|
+
- templates/project/config/database.yml
|
73
|
+
- templates/project/initialize.rb
|
74
|
+
- templates/project/script/generate
|
75
|
+
- templates/project/test/test_helper.rb
|
76
|
+
homepage: http://github.com/jatkins/sweetsie
|
77
|
+
licenses: []
|
78
|
+
|
79
|
+
post_install_message:
|
80
|
+
rdoc_options: []
|
81
|
+
|
82
|
+
require_paths:
|
83
|
+
- lib
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: "0"
|
90
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: "0"
|
96
|
+
requirements: []
|
97
|
+
|
98
|
+
rubyforge_project:
|
99
|
+
rubygems_version: 1.8.3
|
100
|
+
signing_key:
|
101
|
+
specification_version: 3
|
102
|
+
summary: Quick framework for when you need to scratch something out!
|
103
|
+
test_files: []
|
104
|
+
|