dm-is-awesome_set 0.10.2
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 +2 -0
- data/LICENSE +23 -0
- data/README +16 -0
- data/Rakefile +33 -0
- data/TODO +4 -0
- data/VERSION +1 -0
- data/dm-is-awesome_set.gemspec +65 -0
- data/lib/dm-is-awesome_set.rb +5 -0
- data/lib/dm-is-awesome_set/is/awesome_set.rb +428 -0
- data/spec/dm-is-awesome_set_spec.rb +650 -0
- data/spec/spec_helper.rb +105 -0
- metadata +109 -0
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
$:.push File.join(File.dirname(__FILE__), '..', 'lib')
|
3
|
+
require 'dm-is-awesome_set'
|
4
|
+
|
5
|
+
# Needed for the discriminator
|
6
|
+
gem 'dm-types', '>=0.9.7'
|
7
|
+
require 'dm-types'
|
8
|
+
require 'dm-validations'
|
9
|
+
|
10
|
+
ENV["SQLITE3_SPEC_URI"] ||= 'sqlite3::memory:'
|
11
|
+
ENV["MYSQL_SPEC_URI"] ||= 'mysql://localhost/dm-is_awesome_set_test'
|
12
|
+
ENV["POSTGRES_SPEC_URI"] ||= 'postgres://postgres@localhost/dm-is_awesome_set_test'
|
13
|
+
|
14
|
+
|
15
|
+
def setup_adapter(name, default_uri = nil)
|
16
|
+
begin
|
17
|
+
DataMapper.setup(name, ENV["#{ENV['ADAPTER'].to_s.upcase}_SPEC_URI"] || default_uri)
|
18
|
+
Object.const_set('ADAPTER', ENV['ADAPTER'].to_sym) if name.to_s == ENV['ADAPTER']
|
19
|
+
true
|
20
|
+
rescue Exception => e
|
21
|
+
if name.to_s == ENV['ADAPTER']
|
22
|
+
Object.const_set('ADAPTER', nil)
|
23
|
+
warn "Could not load do_#{name}: #{e}"
|
24
|
+
end
|
25
|
+
false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
ENV['ADAPTER'] ||= 'sqlite3'
|
30
|
+
setup_adapter(:default)
|
31
|
+
|
32
|
+
|
33
|
+
# classes/vars for tests
|
34
|
+
class Category
|
35
|
+
include DataMapper::Resource
|
36
|
+
|
37
|
+
property :id, Serial
|
38
|
+
property :name, String
|
39
|
+
property :scope, Integer
|
40
|
+
property :scope_2, Integer
|
41
|
+
|
42
|
+
is :awesome_set, :scope => [:scope, :scope_2]
|
43
|
+
|
44
|
+
# convenience methods only for speccing.
|
45
|
+
def pos; [lft,rgt] end
|
46
|
+
def sco; {:scope => scope, :scope_2 => scope_2}; end
|
47
|
+
end
|
48
|
+
|
49
|
+
class Discrim1
|
50
|
+
include DataMapper::Resource
|
51
|
+
|
52
|
+
property :id, Serial
|
53
|
+
property :name, String
|
54
|
+
property :scope, Integer
|
55
|
+
property :scope_2, Integer
|
56
|
+
property :type, Discriminator
|
57
|
+
|
58
|
+
is :awesome_set, :scope => [:scope, :scope_2]
|
59
|
+
|
60
|
+
# convenience methods only for speccing.
|
61
|
+
def pos; [lft,rgt] end
|
62
|
+
def sco; {:scope => scope, :scope_2 => scope_2}; end
|
63
|
+
end
|
64
|
+
|
65
|
+
class CatD11 < Discrim1
|
66
|
+
end
|
67
|
+
|
68
|
+
class CatD12 < Discrim1
|
69
|
+
end
|
70
|
+
|
71
|
+
class Discrim2
|
72
|
+
include DataMapper::Resource
|
73
|
+
|
74
|
+
property :id, Serial
|
75
|
+
property :name, String
|
76
|
+
property :scope, Integer
|
77
|
+
property :scope_2, Integer
|
78
|
+
property :type, Discriminator
|
79
|
+
|
80
|
+
is :awesome_set, :scope => [:scope, :scope_2, :type]
|
81
|
+
|
82
|
+
# convenience methods only for speccing.
|
83
|
+
def pos; [lft,rgt] end
|
84
|
+
def sco; {:scope => scope, :scope_2 => scope_2}; end
|
85
|
+
end
|
86
|
+
|
87
|
+
class CatD21 < Discrim2
|
88
|
+
end
|
89
|
+
|
90
|
+
class CatD22 < Discrim2
|
91
|
+
end
|
92
|
+
|
93
|
+
# Quick hack for ruby 1.8.6 - really, it's a hack. Don't use this anywhere else.
|
94
|
+
|
95
|
+
class Hash
|
96
|
+
def eql?(obj)
|
97
|
+
if obj.is_a?(Hash)
|
98
|
+
each { |k,v| return false unless self[k].eql?(obj[k]) }
|
99
|
+
true
|
100
|
+
else
|
101
|
+
false
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
metadata
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dm-is-awesome_set
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.10.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jeremy Nicoll
|
8
|
+
- David Haslem
|
9
|
+
- Martin Gamsjaeger (snusnu)
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
|
14
|
+
date: 2010-02-19 00:00:00 -05:00
|
15
|
+
default_executable:
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: dm-core
|
19
|
+
type: :runtime
|
20
|
+
version_requirement:
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - ~>
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: "0.10"
|
26
|
+
version:
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: dm-adjust
|
29
|
+
type: :runtime
|
30
|
+
version_requirement:
|
31
|
+
version_requirements: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ~>
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: "0.10"
|
36
|
+
version:
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: dm-aggregates
|
39
|
+
type: :runtime
|
40
|
+
version_requirement:
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: "0.10"
|
46
|
+
version:
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rspec
|
49
|
+
type: :development
|
50
|
+
version_requirement:
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 1.2.9
|
56
|
+
version:
|
57
|
+
description: A library that lets any datamapper model act like a nested set
|
58
|
+
email: jnicoll@gnexp.com
|
59
|
+
executables: []
|
60
|
+
|
61
|
+
extensions: []
|
62
|
+
|
63
|
+
extra_rdoc_files:
|
64
|
+
- LICENSE
|
65
|
+
- README
|
66
|
+
- TODO
|
67
|
+
files:
|
68
|
+
- .gitignore
|
69
|
+
- LICENSE
|
70
|
+
- README
|
71
|
+
- Rakefile
|
72
|
+
- TODO
|
73
|
+
- VERSION
|
74
|
+
- dm-is-awesome_set.gemspec
|
75
|
+
- lib/dm-is-awesome_set.rb
|
76
|
+
- lib/dm-is-awesome_set/is/awesome_set.rb
|
77
|
+
- spec/dm-is-awesome_set_spec.rb
|
78
|
+
- spec/spec_helper.rb
|
79
|
+
has_rdoc: true
|
80
|
+
homepage: http://github.com/snusnu/dm-is-awesome_set
|
81
|
+
licenses: []
|
82
|
+
|
83
|
+
post_install_message:
|
84
|
+
rdoc_options:
|
85
|
+
- --charset=UTF-8
|
86
|
+
require_paths:
|
87
|
+
- lib
|
88
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: "0"
|
93
|
+
version:
|
94
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: "0"
|
99
|
+
version:
|
100
|
+
requirements: []
|
101
|
+
|
102
|
+
rubyforge_project:
|
103
|
+
rubygems_version: 1.3.5
|
104
|
+
signing_key:
|
105
|
+
specification_version: 3
|
106
|
+
summary: A nested set plugin for datamapper
|
107
|
+
test_files:
|
108
|
+
- spec/dm-is-awesome_set_spec.rb
|
109
|
+
- spec/spec_helper.rb
|