mack-orm 0.7.1.1 → 0.8.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/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