kasket 0.7.4 → 0.7.5

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/kasket.rb CHANGED
@@ -15,7 +15,7 @@ module Kasket
15
15
  class Version
16
16
  MAJOR = 0
17
17
  MINOR = 7
18
- PATCH = 4
18
+ PATCH = 5
19
19
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
20
20
  end
21
21
 
@@ -9,7 +9,7 @@ module Kasket
9
9
  module ConfigurationMixin
10
10
 
11
11
  def without_kasket(&block)
12
- old_value = @use_kasket || true
12
+ old_value = @use_kasket
13
13
  @use_kasket = false
14
14
  yield
15
15
  ensure
@@ -17,7 +17,7 @@ module Kasket
17
17
  end
18
18
 
19
19
  def use_kasket?
20
- @use_kasket != false
20
+ @use_kasket == true
21
21
  end
22
22
 
23
23
  def kasket_parser
@@ -69,6 +69,7 @@ module Kasket
69
69
  end
70
70
 
71
71
  def has_kasket_on(*args)
72
+ @use_kasket = true
72
73
  attributes = args.sort! { |x, y| x.to_s <=> y.to_s }
73
74
  if attributes != [:id] && !kasket_indices.include?([:id])
74
75
  has_kasket_on(:id)
@@ -12,6 +12,12 @@ module Kasket
12
12
  remove_from_kasket(args[0])
13
13
  update_counters_without_kasket_clearing(*args)
14
14
  end
15
+
16
+ def transaction_with_kasket_disabled(*args)
17
+ without_kasket do
18
+ transaction_without_kasket_disabled(*args) { yield }
19
+ end
20
+ end
15
21
  end
16
22
 
17
23
  module InstanceMethods
@@ -66,8 +72,10 @@ module Kasket
66
72
  model_class.after_destroy :clear_kasket_indices
67
73
 
68
74
  model_class.alias_method_chain :reload, :kasket_clearing
75
+
69
76
 
70
77
  class << model_class
78
+ alias_method_chain :transaction, :kasket_disabled
71
79
  alias_method_chain :update_counters, :kasket_clearing
72
80
  end
73
81
  end
@@ -0,0 +1,27 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+
3
+ class TransactionTest < ActiveSupport::TestCase
4
+ context "Transactions" do
5
+ should "have kasket disabled" do
6
+ assert_equal true, Post.use_kasket?
7
+ Post.transaction do
8
+ assert_equal false, Post.use_kasket?
9
+ end
10
+ assert_equal true, Post.use_kasket?
11
+ end
12
+ end
13
+
14
+ context "Nested transactions" do
15
+ setup { Comment.has_kasket }
16
+ should "disable kasket" do
17
+ Post.transaction do
18
+ assert_equal true, Comment.use_kasket?
19
+ assert_equal false, Post.use_kasket?
20
+ Comment.transaction do
21
+ assert_equal false, Post.use_kasket?
22
+ assert_equal false, Comment.use_kasket?
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kasket
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mick Staugaard
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-01-27 00:00:00 -08:00
13
+ date: 2010-02-02 00:00:00 -08:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -99,6 +99,7 @@ files:
99
99
  - test/parser_test.rb
100
100
  - test/read_mixin_test.rb
101
101
  - test/test_models.rb
102
+ - test/transaction_test.rb
102
103
  has_rdoc: true
103
104
  homepage: http://github.com/staugaard/kasket
104
105
  licenses: []
@@ -137,3 +138,4 @@ test_files:
137
138
  - test/parser_test.rb
138
139
  - test/read_mixin_test.rb
139
140
  - test/test_models.rb
141
+ - test/transaction_test.rb