sweetsie 0.0.1

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.
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
+