machinist_callbacks 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 ADDED
@@ -0,0 +1,5 @@
1
+ doc
2
+ pkg
3
+ *.gem
4
+ .idea
5
+
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Henning Koch
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,50 @@
1
+ = machinist_callbacks
2
+
3
+ Some record construction rules cannot be expressed with a {machinist}[http://github.com/notahat/machinist] blueprint, for instance:
4
+
5
+ * Creating a record with a has_many association already filled in.
6
+ * Creating a record with interdependencies between associated object, such as having to belong to the same container.
7
+ * Needing to process a {delayed_job}[http://github.com/tobi/delayed_job] queue after record construction.
8
+
9
+ This gem provides <tt>before_make</tt> and <tt>after_make</tt> callbacks for machinist blueprints,
10
+ enabling more freedom in your construction rules.
11
+
12
+ == Example
13
+
14
+ Movie.blueprint do
15
+ title
16
+ year 2001
17
+ before_make do
18
+ self.producer = Producer.make(:name => director.name)
19
+ end
20
+ end
21
+
22
+ Director.blueprint do
23
+ name
24
+ after_make do
25
+ movies << Movie.make
26
+ end
27
+ end
28
+
29
+ == Does it work with make_unsaved?
30
+
31
+ Yes. Machinist is built in a way that every <tt>make</tt> in your callback implicitely becomes a <tt>make_unsaved</tt>
32
+ when an object graph is created with <tt>make_unsaved</tt>. Just do not <tt>save</tt> records manually in your callbacks
33
+ because that would be crazy.
34
+
35
+ == Installation
36
+
37
+ Install the gem:
38
+ sudo gem install machinist_callbacks
39
+
40
+ Require the gem after requiring machinist in your <tt>environment.rb</tt>:
41
+ config.gem 'machinist'
42
+ config.gem 'machinist_callbacks'
43
+
44
+ === Credits
45
+
46
+ Henning Koch
47
+
48
+ {gem-session.com}[http://gem-session.com/]
49
+
50
+ {www.makandra.de}[http://www.makandra.de/]
data/Rakefile ADDED
@@ -0,0 +1,37 @@
1
+ require 'rake'
2
+ # require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+ require 'spec/rake/spectask'
5
+
6
+ desc 'Default: Run all specs.'
7
+ task :default => :spec
8
+
9
+ desc "Run all specs"
10
+ Spec::Rake::SpecTask.new() do |t|
11
+ t.spec_opts = ['--options', "\"spec/support/spec.opts\""]
12
+ t.spec_files = FileList['spec/**/*_spec.rb']
13
+ end
14
+
15
+ desc 'Generate documentation for the machinist_callbacks plugin.'
16
+ Rake::RDocTask.new(:rdoc) do |rdoc|
17
+ rdoc.rdoc_dir = 'rdoc'
18
+ rdoc.title = 'machinist_callbacks'
19
+ rdoc.options << '--line-numbers' << '--inline-source'
20
+ rdoc.rdoc_files.include('README')
21
+ rdoc.rdoc_files.include('lib/**/*.rb')
22
+ end
23
+
24
+ begin
25
+ require 'jeweler'
26
+ Jeweler::Tasks.new do |gemspec|
27
+ gemspec.name = "machinist_callbacks"
28
+ gemspec.summary = "Callback hooks for machinist blueprints"
29
+ gemspec.email = "github@makandra.de"
30
+ gemspec.homepage = "http://github.com/makandra/machinist_callbacks"
31
+ gemspec.description = "Callback hooks for machinist blueprints"
32
+ gemspec.authors = ["Henning Koch"]
33
+ end
34
+ rescue LoadError
35
+ puts "Jeweler not available. Install it with: sudo gem install jeweler"
36
+ end
37
+
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,49 @@
1
+ require 'machinist'
2
+ require 'machinist/active_record'
3
+
4
+
5
+ module Machinist
6
+ class Lathe
7
+
8
+ attr_reader :before_make_callback, :after_make_callback
9
+
10
+ def before_make(&callback)
11
+ object.instance_variable_set(:@before_make_callback, callback)
12
+ end
13
+
14
+ def after_make(&callback)
15
+ object.instance_variable_set(:@after_make_callback, callback)
16
+ end
17
+
18
+ class << self
19
+
20
+ def run_with_before_make(*args)
21
+ lathe = run_without_before_make(*args)
22
+ if callback = lathe.object.instance_variable_get(:@before_make_callback)
23
+ lathe.object.instance_eval(&callback)
24
+ end
25
+ lathe
26
+ end
27
+
28
+ alias_method_chain :run, :before_make
29
+
30
+ end
31
+
32
+ end
33
+ end
34
+
35
+
36
+ makers = []
37
+ makers << ActiveRecord::Associations::HasManyAssociation
38
+ makers << ActiveRecord::Base.send(ActiveRecord::Base.respond_to?(:metaclass) ? :metaclass : :singleton_class)
39
+
40
+ makers.each do |maker|
41
+ maker.send :define_method, :make_with_after_make do |*args|
42
+ object = make_without_after_make(*args)
43
+ if callback = object.instance_variable_get(:@after_make_callback)
44
+ object.instance_eval(&callback)
45
+ end
46
+ object
47
+ end
48
+ maker.alias_method_chain :make, :after_make
49
+ end
@@ -0,0 +1,87 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
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{machinist_callbacks}
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Henning Koch"]
12
+ s.date = %q{2010-06-20}
13
+ s.description = %q{Callback hooks for machinist blueprints}
14
+ s.email = %q{github@makandra.de}
15
+ s.extra_rdoc_files = [
16
+ "README.rdoc"
17
+ ]
18
+ s.files = [
19
+ ".gitignore",
20
+ "MIT-LICENSE",
21
+ "README.rdoc",
22
+ "Rakefile",
23
+ "VERSION",
24
+ "lib/machinist_callbacks.rb",
25
+ "machinist_callbacks.gemspec",
26
+ "spec/app_root/app/controllers/application_controller.rb",
27
+ "spec/app_root/app/models/director.rb",
28
+ "spec/app_root/app/models/movie.rb",
29
+ "spec/app_root/app/models/producer.rb",
30
+ "spec/app_root/config/boot.rb",
31
+ "spec/app_root/config/database.yml",
32
+ "spec/app_root/config/environment.rb",
33
+ "spec/app_root/config/environments/in_memory.rb",
34
+ "spec/app_root/config/environments/mysql.rb",
35
+ "spec/app_root/config/environments/postgresql.rb",
36
+ "spec/app_root/config/environments/sqlite.rb",
37
+ "spec/app_root/config/environments/sqlite3.rb",
38
+ "spec/app_root/config/routes.rb",
39
+ "spec/app_root/db/migrate/001_create_movies.rb",
40
+ "spec/app_root/db/migrate/002_create_directors.rb",
41
+ "spec/app_root/db/migrate/003_create_producers.rb",
42
+ "spec/app_root/lib/console_with_fixtures.rb",
43
+ "spec/app_root/log/.gitignore",
44
+ "spec/app_root/script/console",
45
+ "spec/callbacks_spec.rb",
46
+ "spec/spec_helper.rb",
47
+ "spec/support/blueprints.rb",
48
+ "spec/support/rcov.opts",
49
+ "spec/support/spec.opts"
50
+ ]
51
+ s.homepage = %q{http://github.com/makandra/machinist_callbacks}
52
+ s.rdoc_options = ["--charset=UTF-8"]
53
+ s.require_paths = ["lib"]
54
+ s.rubygems_version = %q{1.3.6}
55
+ s.summary = %q{Callback hooks for machinist blueprints}
56
+ s.test_files = [
57
+ "spec/support/blueprints.rb",
58
+ "spec/app_root/db/migrate/001_create_movies.rb",
59
+ "spec/app_root/db/migrate/002_create_directors.rb",
60
+ "spec/app_root/db/migrate/003_create_producers.rb",
61
+ "spec/app_root/config/boot.rb",
62
+ "spec/app_root/config/environment.rb",
63
+ "spec/app_root/config/routes.rb",
64
+ "spec/app_root/config/environments/in_memory.rb",
65
+ "spec/app_root/config/environments/mysql.rb",
66
+ "spec/app_root/config/environments/postgresql.rb",
67
+ "spec/app_root/config/environments/sqlite.rb",
68
+ "spec/app_root/config/environments/sqlite3.rb",
69
+ "spec/app_root/lib/console_with_fixtures.rb",
70
+ "spec/app_root/app/controllers/application_controller.rb",
71
+ "spec/app_root/app/models/movie.rb",
72
+ "spec/app_root/app/models/director.rb",
73
+ "spec/app_root/app/models/producer.rb",
74
+ "spec/callbacks_spec.rb",
75
+ "spec/spec_helper.rb"
76
+ ]
77
+
78
+ if s.respond_to? :specification_version then
79
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
80
+ s.specification_version = 3
81
+
82
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
83
+ else
84
+ end
85
+ else
86
+ end
87
+ end
@@ -0,0 +1,2 @@
1
+ class ApplicationController < ActionController::Base
2
+ end
@@ -0,0 +1,7 @@
1
+ class Director < ActiveRecord::Base
2
+
3
+ validates_presence_of :name
4
+
5
+ has_many :movies
6
+
7
+ end
@@ -0,0 +1,9 @@
1
+ class Movie < ActiveRecord::Base
2
+
3
+ belongs_to :director
4
+ belongs_to :producer
5
+ belongs_to :prequel, :class_name => 'Movie'
6
+
7
+ validates_presence_of :title, :year
8
+
9
+ end
@@ -0,0 +1,5 @@
1
+ class Producer < ActiveRecord::Base
2
+
3
+ validates_presence_of :name
4
+
5
+ end
@@ -0,0 +1,114 @@
1
+ # Allow customization of the rails framework path
2
+ RAILS_FRAMEWORK_ROOT = (ENV['RAILS_FRAMEWORK_ROOT'] || "#{File.dirname(__FILE__)}/../../../../../../vendor/rails") unless defined?(RAILS_FRAMEWORK_ROOT)
3
+
4
+ # Don't change this file!
5
+ # Configure your app in config/environment.rb and config/environments/*.rb
6
+
7
+ RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
8
+
9
+ module Rails
10
+ class << self
11
+ def boot!
12
+ unless booted?
13
+ preinitialize
14
+ pick_boot.run
15
+ end
16
+ end
17
+
18
+ def booted?
19
+ defined? Rails::Initializer
20
+ end
21
+
22
+ def pick_boot
23
+ (vendor_rails? ? VendorBoot : GemBoot).new
24
+ end
25
+
26
+ def vendor_rails?
27
+ File.exist?(RAILS_FRAMEWORK_ROOT)
28
+ end
29
+
30
+ def preinitialize
31
+ load(preinitializer_path) if File.exist?(preinitializer_path)
32
+ end
33
+
34
+ def preinitializer_path
35
+ "#{RAILS_ROOT}/config/preinitializer.rb"
36
+ end
37
+ end
38
+
39
+ class Boot
40
+ def run
41
+ load_initializer
42
+ Rails::Initializer.run(:set_load_path)
43
+ end
44
+ end
45
+
46
+ class VendorBoot < Boot
47
+ def load_initializer
48
+ require "#{RAILS_FRAMEWORK_ROOT}/railties/lib/initializer"
49
+ Rails::Initializer.run(:install_gem_spec_stubs)
50
+ end
51
+ end
52
+
53
+ class GemBoot < Boot
54
+ def load_initializer
55
+ self.class.load_rubygems
56
+ load_rails_gem
57
+ require 'initializer'
58
+ end
59
+
60
+ def load_rails_gem
61
+ if version = self.class.gem_version
62
+ gem 'rails', version
63
+ else
64
+ gem 'rails'
65
+ end
66
+ rescue Gem::LoadError => load_error
67
+ $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
68
+ exit 1
69
+ end
70
+
71
+ class << self
72
+ def rubygems_version
73
+ Gem::RubyGemsVersion rescue nil
74
+ end
75
+
76
+ def gem_version
77
+ if defined? RAILS_GEM_VERSION
78
+ RAILS_GEM_VERSION
79
+ elsif ENV.include?('RAILS_GEM_VERSION')
80
+ ENV['RAILS_GEM_VERSION']
81
+ else
82
+ parse_gem_version(read_environment_rb)
83
+ end
84
+ end
85
+
86
+ def load_rubygems
87
+ require 'rubygems'
88
+ min_version = '1.1.1'
89
+ unless rubygems_version >= min_version
90
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
91
+ exit 1
92
+ end
93
+
94
+ rescue LoadError
95
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
96
+ exit 1
97
+ end
98
+
99
+ def parse_gem_version(text)
100
+ $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
101
+ end
102
+
103
+ private
104
+ def read_environment_rb
105
+ environment_rb = "#{RAILS_ROOT}/config/environment.rb"
106
+ environment_rb = "#{HELPER_RAILS_ROOT}/config/environment.rb" unless File.exists?(environment_rb)
107
+ File.read(environment_rb)
108
+ end
109
+ end
110
+ end
111
+ end
112
+
113
+ # All that for this:
114
+ Rails.boot!
@@ -0,0 +1,21 @@
1
+ in_memory:
2
+ adapter: sqlite3
3
+ database: ":memory:"
4
+ verbosity: quiet
5
+ sqlite:
6
+ adapter: sqlite
7
+ dbfile: plugin_test.sqlite.db
8
+ sqlite3:
9
+ adapter: sqlite3
10
+ dbfile: plugin_test.sqlite3.db
11
+ postgresql:
12
+ adapter: postgresql
13
+ username: postgres
14
+ password: postgres
15
+ database: plugin_test
16
+ mysql:
17
+ adapter: mysql
18
+ host: localhost
19
+ username: root
20
+ password:
21
+ database: plugin_test
@@ -0,0 +1,14 @@
1
+ require File.join(File.dirname(__FILE__), 'boot')
2
+
3
+ Rails::Initializer.run do |config|
4
+ config.cache_classes = false
5
+ config.whiny_nils = true
6
+ config.action_controller.session = { :key => "_myapp_session", :secret => "gwirofjweroijger8924rt2zfwehfuiwehb1378rifowenfoqwphf23" }
7
+ config.plugin_locators.unshift(
8
+ Class.new(Rails::Plugin::Locator) do
9
+ def plugins
10
+ [Rails::Plugin.new(File.expand_path('.'))]
11
+ end
12
+ end
13
+ ) unless defined?(PluginTestHelper::PluginLocator)
14
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+ map.connect ':controller/:action/:id'
3
+ map.connect ':controller/:action/:id.:format'
4
+ end
@@ -0,0 +1,17 @@
1
+ class CreateMovies < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table :movies do |t|
5
+ t.string :title
6
+ t.integer :year
7
+ t.integer :prequel_id
8
+ t.integer :director_id
9
+ t.integer :producer_id
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ drop_table :movies
15
+ end
16
+
17
+ end
@@ -0,0 +1,13 @@
1
+ class CreateDirectors < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table :directors do |t|
5
+ t.string :name
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ drop_table :directors
11
+ end
12
+
13
+ end
@@ -0,0 +1,13 @@
1
+ class CreateProducers < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table :producers do |t|
5
+ t.string :name
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ drop_table :producers
11
+ end
12
+
13
+ end
@@ -0,0 +1,4 @@
1
+ # Loads fixtures into the database when running the test app via the console
2
+ (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(Rails.root, '../fixtures/*.{yml,csv}'))).each do |fixture_file|
3
+ Fixtures.create_fixtures(File.join(Rails.root, '../fixtures'), File.basename(fixture_file, '.*'))
4
+ end
@@ -0,0 +1 @@
1
+ *.log
@@ -0,0 +1,7 @@
1
+ irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
2
+ libs = " -r irb/completion"
3
+ libs << " -r test/test_helper"
4
+ libs << " -r console_app"
5
+ libs << " -r console_with_helpers"
6
+ libs << " -r console_with_fixtures"
7
+ exec "#{irb} #{libs} --simple-prompt"
@@ -0,0 +1,113 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+ require 'machinist/active_record'
3
+ require 'ostruct'
4
+ require 'sham'
5
+ require 'faker'
6
+
7
+ describe 'machinist blueprints' do
8
+
9
+ before :all do
10
+ Sham.name { Faker::Name.name }
11
+ Sham.title { Faker::Lorem.sentence }
12
+ end
13
+
14
+ describe 'without callbacks' do
15
+
16
+ it "should not obstruct standard machinist behavior" do
17
+
18
+ Movie.blueprint do
19
+ title
20
+ year 2001
21
+ director
22
+ end
23
+
24
+ Director.blueprint do
25
+ name
26
+ end
27
+
28
+ movie = Movie.make
29
+ movie.title.should be_a(String)
30
+ movie.year.should == 2001
31
+ movie.director.should be_a(Director)
32
+ movie.director.name.should be_a(String)
33
+
34
+ end
35
+
36
+ end
37
+
38
+ describe "before_make" do
39
+
40
+ before :each do
41
+
42
+ Movie.blueprint do
43
+ title
44
+ year 2001
45
+ before_make do
46
+ if director
47
+ self.producer = Producer.make(:name => director.name)
48
+ end
49
+ end
50
+ end
51
+
52
+ Director.blueprint do
53
+ name
54
+ end
55
+
56
+ Producer.blueprint do
57
+ name
58
+ end
59
+
60
+ end
61
+
62
+ it "should allow to configure a freshly made record" do
63
+ movie = Movie.make(:director => Director.make(:name => "director name"))
64
+ movie.producer.name.should == 'director name'
65
+ end
66
+
67
+ it "should work with make_unsaved" do
68
+ movie = Movie.make_unsaved(:director => Director.make_unsaved(:name => "director name"))
69
+ movie.should be_new_record
70
+ movie.producer.name.should == 'director name'
71
+ movie.producer.should be_new_record
72
+ end
73
+
74
+ end
75
+
76
+ describe "after_make" do
77
+
78
+ before :each do
79
+
80
+ Movie.blueprint do
81
+ title
82
+ year 2001
83
+ end
84
+
85
+ Director.blueprint do
86
+ name
87
+ after_make do
88
+ movies << Movie.make(:director => self)
89
+ end
90
+ end
91
+
92
+ end
93
+
94
+ it "should run the callback after saving" do
95
+ director = Director.make
96
+ director.should_not be_new_record
97
+ director.movies.size.should == 1
98
+ director.movies[0].director.should == director
99
+ director.movies[0].should_not be_new_record
100
+ end
101
+
102
+ it "should work with make_unsaved" do
103
+ director = Director.make_unsaved
104
+ director.should be_new_record
105
+ director.movies.size.should == 1
106
+ director.movies[0].director.should == director
107
+ director.movies[0].should be_new_record
108
+ end
109
+
110
+ end
111
+
112
+ end
113
+
@@ -0,0 +1,24 @@
1
+ $: << File.join(File.dirname(__FILE__), "/../lib" )
2
+
3
+ # Set the default environment to sqlite3's in_memory database
4
+ ENV['RAILS_ENV'] ||= 'in_memory'
5
+
6
+
7
+ # Load the Rails environment and testing framework
8
+ require "#{File.dirname(__FILE__)}/app_root/config/environment"
9
+ require 'rubygems'
10
+ require 'machinist'
11
+ require 'spec/rails'
12
+ require "#{File.dirname(__FILE__)}/../lib/machinist_callbacks"
13
+
14
+ # Undo changes to RAILS_ENV
15
+ silence_warnings {RAILS_ENV = ENV['RAILS_ENV']}
16
+
17
+ # Run the migrations
18
+ ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate")
19
+
20
+ Spec::Runner.configure do |config|
21
+ config.use_transactional_fixtures = true
22
+ config.use_instantiated_fixtures = false
23
+ end
24
+
@@ -0,0 +1,3 @@
1
+ require 'machinist/active_record'
2
+ require 'sham'
3
+
@@ -0,0 +1,2 @@
1
+ --exclude "spec/*,gems/*"
2
+ --rails
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: machinist_callbacks
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - Henning Koch
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-06-20 00:00:00 +02:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: Callback hooks for machinist blueprints
22
+ email: github@makandra.de
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files:
28
+ - README.rdoc
29
+ files:
30
+ - .gitignore
31
+ - MIT-LICENSE
32
+ - README.rdoc
33
+ - Rakefile
34
+ - VERSION
35
+ - lib/machinist_callbacks.rb
36
+ - machinist_callbacks.gemspec
37
+ - spec/app_root/app/controllers/application_controller.rb
38
+ - spec/app_root/app/models/director.rb
39
+ - spec/app_root/app/models/movie.rb
40
+ - spec/app_root/app/models/producer.rb
41
+ - spec/app_root/config/boot.rb
42
+ - spec/app_root/config/database.yml
43
+ - spec/app_root/config/environment.rb
44
+ - spec/app_root/config/environments/in_memory.rb
45
+ - spec/app_root/config/environments/mysql.rb
46
+ - spec/app_root/config/environments/postgresql.rb
47
+ - spec/app_root/config/environments/sqlite.rb
48
+ - spec/app_root/config/environments/sqlite3.rb
49
+ - spec/app_root/config/routes.rb
50
+ - spec/app_root/db/migrate/001_create_movies.rb
51
+ - spec/app_root/db/migrate/002_create_directors.rb
52
+ - spec/app_root/db/migrate/003_create_producers.rb
53
+ - spec/app_root/lib/console_with_fixtures.rb
54
+ - spec/app_root/log/.gitignore
55
+ - spec/app_root/script/console
56
+ - spec/callbacks_spec.rb
57
+ - spec/spec_helper.rb
58
+ - spec/support/blueprints.rb
59
+ - spec/support/rcov.opts
60
+ - spec/support/spec.opts
61
+ has_rdoc: true
62
+ homepage: http://github.com/makandra/machinist_callbacks
63
+ licenses: []
64
+
65
+ post_install_message:
66
+ rdoc_options:
67
+ - --charset=UTF-8
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ segments:
82
+ - 0
83
+ version: "0"
84
+ requirements: []
85
+
86
+ rubyforge_project:
87
+ rubygems_version: 1.3.6
88
+ signing_key:
89
+ specification_version: 3
90
+ summary: Callback hooks for machinist blueprints
91
+ test_files:
92
+ - spec/support/blueprints.rb
93
+ - spec/app_root/db/migrate/001_create_movies.rb
94
+ - spec/app_root/db/migrate/002_create_directors.rb
95
+ - spec/app_root/db/migrate/003_create_producers.rb
96
+ - spec/app_root/config/boot.rb
97
+ - spec/app_root/config/environment.rb
98
+ - spec/app_root/config/routes.rb
99
+ - spec/app_root/config/environments/in_memory.rb
100
+ - spec/app_root/config/environments/mysql.rb
101
+ - spec/app_root/config/environments/postgresql.rb
102
+ - spec/app_root/config/environments/sqlite.rb
103
+ - spec/app_root/config/environments/sqlite3.rb
104
+ - spec/app_root/lib/console_with_fixtures.rb
105
+ - spec/app_root/app/controllers/application_controller.rb
106
+ - spec/app_root/app/models/movie.rb
107
+ - spec/app_root/app/models/director.rb
108
+ - spec/app_root/app/models/producer.rb
109
+ - spec/callbacks_spec.rb
110
+ - spec/spec_helper.rb