sweetsie 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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,7 @@
1
+ class <%= name.camelcase %> < ActiveRecord::Migration
2
+ def self.up
3
+ end
4
+
5
+ def self.sown
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ class <%= name.camelcase %> < ActiveRecord::Base
2
+
3
+ end
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + '/../test_helper.rb'
2
+
3
+ class Test<%= name.camelcase %> < Test::Unit::TestCase
4
+ # Testing code goes here
5
+ should "be true" do
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,11 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'fileutils'
4
+
5
+ require 'initialize'
6
+ require 'gigantron/tasks/test'
7
+ require 'gigantron/tasks/database'
8
+
9
+ task :environment do
10
+ Sweetsie.boot :development
11
+ end
@@ -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
+