mack-orm 0.7.1.1 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/mack-orm.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  require 'rubygems'
2
2
  require 'genosaurus'
3
+ require 'configatron'
4
+
5
+ configatron.mack.set_default(:disable_transactional_tests, false)
3
6
 
4
7
  base = File.join(File.dirname(__FILE__), "mack-orm")
5
8
  require File.join(base, "database")
@@ -7,6 +10,7 @@ require File.join(base, "database_migrations")
7
10
  require File.join(base, "generators")
8
11
  require File.join(base, "genosaurus_helpers")
9
12
  require File.join(base, "model_column")
13
+ require File.join(base, "test_extensions")
10
14
  require File.join(base, "scaffold_generator", "scaffold_generator")
11
15
 
12
16
  Mack::Environment.after_class_method(:load) do
@@ -18,12 +18,12 @@ show_template:
18
18
  type: file
19
19
  template_path: <%= File.join(templates_directory_path, "app", "views", "show.html.erb.template") %>
20
20
  output_path: <%= File.join("app", "views", @name_plural, "show.html.erb") %>
21
- <% if app_config.mack.testing_framework == "test_case" -%>
21
+ <% if configatron.mack.testing_framework.to_s == "test_case" -%>
22
22
  functional_test_template:
23
23
  type: file
24
24
  template_path: <%= File.join(templates_directory_path, "test", "controllers", "test_case.rb.template") %>
25
25
  output_path: <%= File.join("test", "controllers", "#{@name_plural}_controller_test.rb") %>
26
- <% elsif app_config.mack.testing_framework == "rspec" -%>
26
+ <% elsif configatron.mack.testing_framework.to_s == "rspec" -%>
27
27
  functional_test_template:
28
28
  type: file
29
29
  template_path: <%= File.join(templates_directory_path, "test", "controllers", "rspec.rb.template") %>
@@ -11,7 +11,7 @@ class ScaffoldGenerator < Genosaurus
11
11
  @name_plural = param(:name).plural.underscore
12
12
  @name_singular_camel = @name_singular.camelcase
13
13
  @name_plural_camel = @name_plural.camelcase
14
- @test_framework = app_config.mack.testing_framework
14
+ @test_framework = configatron.mack.testing_framework
15
15
  end
16
16
 
17
17
  def after_generate # :nodoc:
@@ -0,0 +1,80 @@
1
+ require "test/unit"
2
+ require 'spec'
3
+
4
+ if Mack.env == "test"
5
+ module Mack
6
+ module Testing # :nodoc:
7
+ end
8
+ end
9
+
10
+ # Wrap it so we don't accidentally alias the run method n times and run out of db connections!
11
+ unless Mack::Testing.const_defined?("LOADED")
12
+
13
+ LOADED = true
14
+ module Mack
15
+ module Testing
16
+
17
+ # Implement this method to give transactional test support
18
+ # to both RSpec and Test::Unit::TestCase for your ORM.
19
+ def rollback_transaction
20
+ yield
21
+ end # rollback_transaction
22
+
23
+ end # Testing
24
+ end # Mack
25
+
26
+
27
+ module Spec # :nodoc:
28
+ module Example # :nodoc:
29
+ module ExampleMethods # :nodoc:
30
+ include Mack::Testing
31
+
32
+ alias_instance_method :execute, :mack_spec_execute
33
+
34
+ def before_spec_extension
35
+ end
36
+
37
+ def after_spec_extension
38
+ end
39
+
40
+ def execute(options, instance_variables)
41
+ before_spec_extension
42
+ unless configatron.mack.disable_transactional_tests
43
+ rollback_transaction do
44
+ @__res = mack_spec_execute(options, instance_variables)
45
+ end
46
+ else
47
+ @__res = mack_spec_execute(options, instance_variables)
48
+ end
49
+ after_spec_extension
50
+ return @__res
51
+ end
52
+
53
+ end # ExampleGroup
54
+ end # Example
55
+ end # Spec
56
+
57
+ module Test # :nodoc:
58
+ module Unit # :nodoc:
59
+ class TestCase # :nodoc:
60
+ include Mack::Testing
61
+
62
+ # Let's alias the run method in the class above us so we can create a new one here
63
+ # but still reference it.
64
+ alias_instance_method :run, :mack_test_case_run # :nodoc:
65
+
66
+ # We need to wrap the run method so we can do things like
67
+ # run a cleanup method if it exists
68
+ def run(result, &progress_block) # :nodoc:
69
+ rollback_transaction do
70
+ mack_test_case_run(result, &progress_block)
71
+ end
72
+ end
73
+
74
+ end # TestCase
75
+ end # Unit
76
+ end # Test
77
+
78
+ end
79
+
80
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mack-orm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1.1
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - markbates
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-09-14 00:00:00 -04:00
12
+ date: 2008-10-06 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -39,6 +39,7 @@ files:
39
39
  - lib/mack-orm/tasks/db_create_drop_tasks.rake
40
40
  - lib/mack-orm/tasks/db_migration_tasks.rake
41
41
  - lib/mack-orm/tasks/test_tasks.rake
42
+ - lib/mack-orm/test_extensions.rb
42
43
  - lib/mack-orm.rb
43
44
  - lib/mack-orm_tasks.rb
44
45
  - README
@@ -65,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
65
66
  requirements: []
66
67
 
67
68
  rubyforge_project: magrathea
68
- rubygems_version: 1.2.0
69
+ rubygems_version: 1.3.0
69
70
  signing_key:
70
71
  specification_version: 2
71
72
  summary: Common ORM support for Mack