dummier 0.1.0.rc1 → 0.1.0

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/.gitignore CHANGED
@@ -3,4 +3,4 @@
3
3
  .DS_Store
4
4
  Gemfile.lock
5
5
  pkg/*
6
- test/dummy
6
+ test/dummy_gem/test/dummy
data/README.md CHANGED
@@ -1,23 +1,62 @@
1
1
  Dummier
2
2
  =======
3
3
 
4
- **Under construction**
4
+ A smart gem with a dumb name; Dummier is a rails generator for automating the creation of rails testing applications.
5
5
 
6
- A smart gem with a dumb name; Dummier is a rails generator for automating the creation of rails testing applications. These applications usually live in test/dummy, and we see them alot.
6
+ Dummier was inspired by [José Valim](https://github.com/josevalim)'s [enginex](https://github.com/josevalim/enginex) which creates a standard gem structure for you. Enginex creates a `test/dummy` app for you, but what if we want to re-create it? Or leave it out of git?
7
7
 
8
- It's just not cool having so many empty, un-loved rails apps hiding away in the /test directory of all these fun gems. Let's give them some more attention by using dummier to make it exciting to generate these apps!
8
+ The idea behind Dummier is that we don't check `test/dummy` into git, but rather generate it on the fly for the gems we're developing. It just seems [DRY](http://en.wikipedia.org/wiki/Don't_repeat_yourself)'er that way.
9
9
 
10
- Once dummier is ready for action, you'll cd into your existing gem and run `bundle exec dummier`.
10
+ Dummier is simple; just run the binary from your gem's root directory and it will generate a stripped-down & gem-dev-ready rails app in `test/dummy`. While it's doing it's thing, Dummer triggers a few hooks along the way for easy customization.
11
11
 
12
- You can create custom hooks that fire along the way by placing the appropriately named files in `your_gem/lib/dummy_hooks/hook_name.rb`.
13
-
14
- That's all for now.
12
+ To catch the hooks, just create appropriatly named files in `lib/dummy_hooks` inside your gem. See [Hooks](#readme-hooks) below for more info.
15
13
 
16
14
 
17
15
  Installation
18
16
  ------------
19
17
 
20
- Don't do that quite yet.
18
+ To install from RubyGems:
19
+
20
+ gem install dummier
21
+
22
+
23
+ To package for development in your gemspec:
24
+
25
+ s.add_development_dependency('dummier', '>= 0.1.0')
26
+
27
+
28
+ Usage
29
+ -----
30
+
31
+ After you've installed Dummier, just cd into the gem your developing and run:
32
+
33
+ bundle exec dummier
34
+
35
+
36
+ <h2 id="readme-hooks">Hooks</h2>
37
+
38
+ Dummier calls the follow hooks along the way:
39
+
40
+ before_delete
41
+ before_app_generator
42
+ after_app_generator
43
+ before_migrate
44
+ after_migrate
45
+
46
+ Place appropriatly named files in `lib/dummy_hooks` and dummier will find and execute them automatically!
47
+
48
+ You can use [Rails::Generators::Actions](http://api.rubyonrails.org/classes/Rails/Generators/Actions.html) as well as [Thor::Actions](http://textmate.rubyforge.org/thor/Thor/Actions.html) in your hooks. Also, since hooks are just `eval`'d into the Dummer::AppGenerator, you have access to all of [those methods](http://rubydoc.info/gems/dummier/0.1.0/Dummier/AppGenerator) as well.
49
+
50
+
51
+ ### Example:
52
+
53
+ Here's a `before_migrate.rb` hook that will install [Spree Commerce](https://github.com/spree/spree) by running some rake commands before migrating the `test/dummy` database.
54
+
55
+ # lib/dummy_hooks/before_migrate.rb
56
+ say_status "installing", "spree_core, spree_auth and spree_sample"
57
+ rake "spree_core:install spree_auth:install spree_sample:install"
58
+
59
+
21
60
 
22
61
 
23
62
  Testing
@@ -30,33 +69,22 @@ To get setup for testing, clone this repo, bundle up and run rake.
30
69
  bundle install
31
70
  rake
32
71
 
33
- Or do this if you want to spork:
34
-
35
- git clone git://github.com/citrus/dummier.git
36
- cd dummier
37
- bundle install
38
- bundle exec spork
39
-
40
- # in another window
41
- cd back/to/dummier
42
- testdrb test/**/*_test.rb
43
-
44
72
  Enjoy!
45
73
 
46
74
 
47
75
 
48
- To Do
49
- -----
50
-
51
- * testing..
52
- * get migrate task to work
53
-
54
-
55
76
  Change Log
56
77
  ----------
57
78
 
79
+ **2011/5/20**
80
+
81
+ * released 0.1.0 to rubygems
82
+ * removed spork and wrote a basic hook test
83
+ * improved documentation
84
+
58
85
  **2011/5/11**
59
86
 
87
+ * released 0.1.0.rc1 to rubygems
60
88
  * added spork and some tests
61
89
 
62
90
  **2011/5/10**
@@ -22,7 +22,6 @@ Gem::Specification.new do |s|
22
22
  s.add_dependency('rails', '>= 3.0.0')
23
23
 
24
24
  s.add_development_dependency('shoulda', '>= 2.11.3')
25
- s.add_development_dependency('spork', '>= 0.9.0.rc7')
26
- s.add_development_dependency('spork-testunit', '>= 0.0.5')
25
+ s.add_development_dependency('sqlite3', '>= 1.3.3')
27
26
 
28
27
  end
@@ -2,4 +2,6 @@ require 'dummier/app_generator'
2
2
 
3
3
  module Dummier
4
4
 
5
+ # just a generator!
6
+
5
7
  end
@@ -2,7 +2,6 @@ require "fileutils"
2
2
  require "rails/generators"
3
3
  require "rails/generators/rails/app/app_generator"
4
4
 
5
-
6
5
  # Much of this generator came from enginex by José Valim
7
6
  # https://github.com/josevalim/enginex/blob/master/lib/enginex.rb
8
7
 
@@ -1,3 +1,3 @@
1
1
  module Dummier
2
- VERSION = "0.1.0.rc1"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,2 @@
1
+ source "http://rubygems.org"
2
+ gemspec
@@ -0,0 +1,7 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ Gem::Specification.new do |s|
4
+ s.name = "dummy_gem"
5
+ s.version = "0.1.0"
6
+ s.platform = Gem::Platform::RUBY
7
+ end
@@ -0,0 +1,3 @@
1
+ module DummyGem
2
+ # empty!
3
+ end
@@ -0,0 +1 @@
1
+ HookTestHelper.register :after_app_generator
@@ -0,0 +1 @@
1
+ HookTestHelper.register :after_migrate
@@ -0,0 +1 @@
1
+ HookTestHelper.register :before_app_generator
@@ -0,0 +1 @@
1
+ HookTestHelper.register :before_delete
@@ -0,0 +1 @@
1
+ HookTestHelper.register :before_migrate
@@ -1,16 +1,4 @@
1
- require 'fileutils'
2
- require 'spork'
3
-
4
- Spork.prefork do
5
-
6
- require 'bundler/setup'
7
- Bundler.require(:default, :test)
8
- require 'shoulda'
9
-
10
- end
11
-
12
- Spork.each_run do
13
-
14
- #Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
15
-
16
- end
1
+ require 'bundler/setup'
2
+ Bundler.require(:default, :test)
3
+ require 'shoulda'
4
+ require 'fileutils'
@@ -1,9 +1,23 @@
1
1
  require_relative '../test_helper'
2
2
 
3
+ module HookTestHelper
4
+ extend self
5
+
6
+ def register(hook)
7
+ hooks << hook
8
+ end
9
+
10
+ def hooks
11
+ @hooks ||= []
12
+ end
13
+
14
+ end
15
+
16
+
3
17
  class DummierTest < Test::Unit::TestCase
4
18
 
5
19
  def setup
6
- @root = File.expand_path("../../../", __FILE__)
20
+ @root = File.expand_path("../../dummy_gem", __FILE__)
7
21
  @dummy = File.join(@root, "test/dummy")
8
22
  end
9
23
 
@@ -36,7 +50,7 @@ class DummierTest < Test::Unit::TestCase
36
50
 
37
51
  # make sure application template is applied
38
52
  rb = read_file('config/application.rb')
39
- [ "require File.expand_path('../boot', __FILE__)", /require "dummier"/, /module Dummy/ ].each do |regex|
53
+ [ "require File.expand_path('../boot', __FILE__)", /require "dummy_gem"/, /module Dummy/ ].each do |regex|
40
54
  assert_match regex, rb
41
55
  end
42
56
 
@@ -46,10 +60,9 @@ class DummierTest < Test::Unit::TestCase
46
60
  assert_match regex, rb
47
61
  end
48
62
 
49
- end
50
-
51
- context "with some hooks" do
52
- # todo
63
+ # make sure hooks are all registered and in proper order
64
+ assert_equal [:before_delete, :before_app_generator, :after_app_generator, :before_migrate, :after_migrate], HookTestHelper.hooks
65
+
53
66
  end
54
67
 
55
68
  end
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dummier
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: 6
5
- version: 0.1.0.rc1
4
+ prerelease:
5
+ version: 0.1.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Spencer Steffen
@@ -10,7 +10,8 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-11 00:00:00 Z
13
+ date: 2011-05-20 00:00:00 -07:00
14
+ default_executable:
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: rails
@@ -35,27 +36,16 @@ dependencies:
35
36
  type: :development
36
37
  version_requirements: *id002
37
38
  - !ruby/object:Gem::Dependency
38
- name: spork
39
+ name: sqlite3
39
40
  prerelease: false
40
41
  requirement: &id003 !ruby/object:Gem::Requirement
41
42
  none: false
42
43
  requirements:
43
44
  - - ">="
44
45
  - !ruby/object:Gem::Version
45
- version: 0.9.0.rc7
46
+ version: 1.3.3
46
47
  type: :development
47
48
  version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: spork-testunit
50
- prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 0.0.5
57
- type: :development
58
- version_requirements: *id004
59
49
  description: Dummier is a rails generator for automating the creation of rails testing applications.
60
50
  email:
61
51
  - spencer@citrusme.com
@@ -75,12 +65,20 @@ files:
75
65
  - dummier.gemspec
76
66
  - lib/dummier.rb
77
67
  - lib/dummier/app_generator.rb
78
- - lib/dummier/tasks/builder.rb
79
68
  - lib/dummier/version.rb
80
69
  - lib/templates/rails/application.rb
81
70
  - lib/templates/rails/boot.rb
71
+ - test/dummy_gem/Gemfile
72
+ - test/dummy_gem/dummy_gem.gemspec
73
+ - test/dummy_gem/lib/dummy_gem.rb
74
+ - test/dummy_gem/lib/dummy_hooks/after_app_generator.rb
75
+ - test/dummy_gem/lib/dummy_hooks/after_migrate.rb
76
+ - test/dummy_gem/lib/dummy_hooks/before_app_generator.rb
77
+ - test/dummy_gem/lib/dummy_hooks/before_delete.rb
78
+ - test/dummy_gem/lib/dummy_hooks/before_migrate.rb
82
79
  - test/test_helper.rb
83
80
  - test/unit/dummier_test.rb
81
+ has_rdoc: true
84
82
  homepage: https://github.com/citrus/dummier
85
83
  licenses: []
86
84
 
@@ -98,16 +96,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
96
  required_rubygems_version: !ruby/object:Gem::Requirement
99
97
  none: false
100
98
  requirements:
101
- - - ">"
99
+ - - ">="
102
100
  - !ruby/object:Gem::Version
103
- version: 1.3.1
101
+ version: "0"
104
102
  requirements: []
105
103
 
106
104
  rubyforge_project: dummier
107
- rubygems_version: 1.8.1
105
+ rubygems_version: 1.6.2
108
106
  signing_key:
109
107
  specification_version: 3
110
108
  summary: Dummier generates a minimal rails testing application.
111
109
  test_files:
110
+ - test/dummy_gem/Gemfile
111
+ - test/dummy_gem/dummy_gem.gemspec
112
+ - test/dummy_gem/lib/dummy_gem.rb
113
+ - test/dummy_gem/lib/dummy_hooks/after_app_generator.rb
114
+ - test/dummy_gem/lib/dummy_hooks/after_migrate.rb
115
+ - test/dummy_gem/lib/dummy_hooks/before_app_generator.rb
116
+ - test/dummy_gem/lib/dummy_hooks/before_delete.rb
117
+ - test/dummy_gem/lib/dummy_hooks/before_migrate.rb
112
118
  - test/test_helper.rb
113
119
  - test/unit/dummier_test.rb
@@ -1,7 +0,0 @@
1
- desc "preps the testing environment"
2
- task :build_dummy do
3
- require 'dummier'
4
- dir = `pwd`.strip
5
- puts dir.inspect
6
- Dummier::AppGenerator.new(dir).run!
7
- end