context_aware_scope 0.1.0 → 0.1.1

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{context_aware_scope}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Simplificator", "Fabio Kuhn"]
12
- s.date = %q{2010-08-16}
12
+ s.date = %q{2010-08-27}
13
13
  s.description = %q{Allows to add a context to a named_scope that will be passed through the whole scope chain}
14
14
  s.email = %q{info@simplificator.com}
15
15
  s.extra_rdoc_files = [
@@ -18,7 +18,7 @@ module ContextAwareScope
18
18
  recursive_context
19
19
  else
20
20
  # add default scope context if on active_record
21
- default_scoping.inject(@context){|context, scope| context.keep_merge(scope[:find][:context])}
21
+ default_scoping.inject(@context){|context, scope| context.keep_merge(scope[:find][:context] || {})}
22
22
  end
23
23
  end
24
24
 
data/test/models.rb CHANGED
@@ -21,6 +21,8 @@ class City < ActiveRecord::Base
21
21
  end
22
22
 
23
23
  class Product < ActiveRecord::Base
24
+ default_scope :order => 'product.id ASC'
25
+
24
26
  named_scope :luxurious, :conditions => ['price > ?', 100], :context => {:price => 'luxurious'}
25
27
  named_scope :recent, :conditions => ['created_at > ?', 1.week.ago], :context => {:created_at => 'brand new'}
26
28
  end
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class DefaultScopeTest < Test::Unit::TestCase
4
- context 'cities' do
4
+ context 'a model' do
5
5
  setup do
6
6
  seed_models
7
7
  end
@@ -37,5 +37,21 @@ class DefaultScopeTest < Test::Unit::TestCase
37
37
  assert_equal ({:order => 'name asc', :name => 'Basel'}), @cities.context
38
38
  end
39
39
  end
40
+
41
+ context 'with a default scope without context' do
42
+ setup do
43
+ @products = Product.scoped({})
44
+ end
45
+
46
+ should 'should have results' do
47
+ assert_equal 2, @products.count
48
+ end
49
+
50
+ should 'have context on list' do
51
+ assert_equal ActiveRecord::NamedScope::Scope, @products.class
52
+ assert_equal Hash, @products.context.class
53
+ assert_equal ({}), @products.context
54
+ end
55
+ end
40
56
  end
41
57
  end
@@ -10,7 +10,7 @@ class ReadmeSampleTest < Test::Unit::TestCase
10
10
  should 'should have results' do
11
11
  assert_equal 1, @products.count
12
12
  assert_equal ({:price => 'luxurious', :created_at => 'brand new'}), @products.context
13
- assert_equal "You are looking at brand new and luxurious products", "You are looking at #{@products.context.values.to_sentence} products"
13
+ assert_equal "You are looking at brand new and luxurious products", "You are looking at #{@products.context.values.sort.to_sentence} products"
14
14
  end
15
15
  end
16
16
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: context_aware_scope
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Simplificator
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-08-16 00:00:00 +02:00
19
+ date: 2010-08-27 00:00:00 +02:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency