dm-is-awesome_set 0.10.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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