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.
@@ -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