dm-is-tree 1.1.0 → 1.2.0.rc1

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/Gemfile CHANGED
@@ -5,26 +5,26 @@ source 'http://rubygems.org'
5
5
  SOURCE = ENV.fetch('SOURCE', :git).to_sym
6
6
  REPO_POSTFIX = SOURCE == :path ? '' : '.git'
7
7
  DATAMAPPER = SOURCE == :path ? Pathname(__FILE__).dirname.parent : 'http://github.com/datamapper'
8
- DM_VERSION = '~> 1.1.0'
9
- DO_VERSION = '~> 0.10.2'
8
+ DM_VERSION = '~> 1.2.0.rc1'
9
+ DO_VERSION = '~> 0.10.6'
10
10
  DM_DO_ADAPTERS = %w[ sqlite postgres mysql oracle sqlserver ]
11
11
 
12
12
  gem 'dm-core', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-core#{REPO_POSTFIX}"
13
13
 
14
14
  group :development do
15
15
 
16
- gem 'jeweler', '~> 1.5.2'
17
- gem 'rake', '~> 0.8.7'
18
- gem 'rspec', '~> 1.3.1'
16
+ gem 'jeweler', '~> 1.6.4'
17
+ gem 'rake', '~> 0.9.2'
18
+ gem 'rspec', '~> 1.3.2'
19
19
 
20
20
  end
21
21
 
22
22
  platforms :mri_18 do
23
23
  group :quality do
24
24
 
25
- gem 'rcov', '~> 0.9.9'
26
- gem 'yard', '~> 0.6'
27
- gem 'yardstick', '~> 0.2'
25
+ gem 'rcov', '~> 0.9.10'
26
+ gem 'yard', '~> 0.7.2'
27
+ gem 'yardstick', '~> 0.4'
28
28
 
29
29
  end
30
30
  end
data/README.rdoc CHANGED
@@ -173,7 +173,7 @@ To add a child you can use either of these syntaxes:
173
173
  child = the_parent.children.create(:name => "child")
174
174
 
175
175
  grandchild1 = Category.create(:name => "grandchild1")
176
- child.children < grandchild1
176
+ child.children << grandchild1
177
177
 
178
178
  grandchild2 = child.children.create(:name => "grandchild2")
179
179
 
@@ -260,7 +260,12 @@ The <tt>#roots</tt> class method returns an Array of the roots declared in the m
260
260
  child = parent.children.create(:name => "child")
261
261
 
262
262
  grandchild1 = child.children.create(:name => "grandchild1")
263
- grandchild2 = child.children.create(:name => "grandchild2")
263
+
264
+ grandchild2 = Category.create(:name => "grandchild2")
265
+ child.children << grandchild2
266
+
267
+ grandchild3 = Category.create(:name => "grandchild2")
268
+ grandchild3.parent = child
264
269
 
265
270
  parent.parent # => nil
266
271
  child.parent # => parent
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
 
4
4
  begin
5
- gem 'jeweler', '~> 1.5.2'
5
+ gem 'jeweler', '~> 1.6.4'
6
6
  require 'jeweler'
7
7
 
8
8
  Jeweler::Tasks.new do |gem|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.0.rc1
data/dm-is-tree.gemspec CHANGED
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{dm-is-tree}
8
- s.version = "1.1.0"
7
+ s.name = "dm-is-tree"
8
+ s.version = "1.2.0.rc1"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Timothy Bennett"]
12
- s.date = %q{2011-03-16}
13
- s.description = %q{DataMapper plugin allowing the creation of tree structures from data models}
14
- s.email = %q{leapord729 [a] comcast.net}
12
+ s.date = "2011-09-09"
13
+ s.description = "DataMapper plugin allowing the creation of tree structures from data models"
14
+ s.email = "leapord729 [a] comcast.net"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
17
  "README.rdoc"
@@ -34,36 +34,31 @@ Gem::Specification.new do |s|
34
34
  "tasks/yard.rake",
35
35
  "tasks/yardstick.rake"
36
36
  ]
37
- s.homepage = %q{http://github.com/datamapper/dm-is-tree}
37
+ s.homepage = "http://github.com/datamapper/dm-is-tree"
38
38
  s.require_paths = ["lib"]
39
- s.rubyforge_project = %q{datamapper}
40
- s.rubygems_version = %q{1.6.2}
41
- s.summary = %q{DataMapper plugin allowing the creation of tree structures from data models}
42
- s.test_files = [
43
- "spec/integration/tree_spec.rb",
44
- "spec/spec_helper.rb",
45
- "spec/unit/tree_spec.rb"
46
- ]
39
+ s.rubyforge_project = "datamapper"
40
+ s.rubygems_version = "1.8.10"
41
+ s.summary = "DataMapper plugin allowing the creation of tree structures from data models"
47
42
 
48
43
  if s.respond_to? :specification_version then
49
44
  s.specification_version = 3
50
45
 
51
46
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
52
- s.add_runtime_dependency(%q<dm-core>, ["~> 1.1.0"])
53
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
54
- s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
55
- s.add_development_dependency(%q<rspec>, ["~> 1.3.1"])
47
+ s.add_runtime_dependency(%q<dm-core>, ["~> 1.2.0.rc1"])
48
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
49
+ s.add_development_dependency(%q<rake>, ["~> 0.9.2"])
50
+ s.add_development_dependency(%q<rspec>, ["~> 1.3.2"])
56
51
  else
57
- s.add_dependency(%q<dm-core>, ["~> 1.1.0"])
58
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
59
- s.add_dependency(%q<rake>, ["~> 0.8.7"])
60
- s.add_dependency(%q<rspec>, ["~> 1.3.1"])
52
+ s.add_dependency(%q<dm-core>, ["~> 1.2.0.rc1"])
53
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
54
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
55
+ s.add_dependency(%q<rspec>, ["~> 1.3.2"])
61
56
  end
62
57
  else
63
- s.add_dependency(%q<dm-core>, ["~> 1.1.0"])
64
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
65
- s.add_dependency(%q<rake>, ["~> 0.8.7"])
66
- s.add_dependency(%q<rspec>, ["~> 1.3.1"])
58
+ s.add_dependency(%q<dm-core>, ["~> 1.2.0.rc1"])
59
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
60
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
61
+ s.add_dependency(%q<rspec>, ["~> 1.3.2"])
67
62
  end
68
63
  end
69
64
 
@@ -60,6 +60,7 @@ module DataMapper
60
60
  # Configuration options are:
61
61
  #
62
62
  # * <tt>child_key</tt> - specifies the column name to use for tracking of the tree (default: +parent_id+)
63
+ # * <tt>constraint</tt> - allows a constraint option to be set on the `has n` association. Only valid when dm-constraints is used.
63
64
  def is_tree(options = {})
64
65
 
65
66
  if options[:class_name]
@@ -75,6 +76,7 @@ module DataMapper
75
76
 
76
77
  assc_options = { :model => options[:model], :child_key => Array(options[:child_key]) }
77
78
  has_n_options = options[:order] ? { :order => Array(options[:order]) }.merge(assc_options) : assc_options
79
+ has_n_options.merge!(:constraint => options[:constraint]) if options[:constraint]
78
80
 
79
81
  belongs_to :parent, assc_options.merge(:required => false)
80
82
  has n, :children, has_n_options
@@ -83,6 +83,11 @@ describe DataMapper::Is::Tree do
83
83
  Category.relationships[:parent].options.should_not have_key(:order)
84
84
  end
85
85
 
86
+ it 'should allow a constraint option to be specified' do
87
+ Category.is :tree, :constraint => :destroy
88
+ Category.relationships[:parent].options.should have_key(:constraint)
89
+ end
90
+
86
91
  end
87
92
 
88
93
  describe "children relationship" do
metadata CHANGED
@@ -1,8 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-is-tree
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.1.0
4
+ hash: 15424023
5
+ prerelease: 6
6
+ segments:
7
+ - 1
8
+ - 2
9
+ - 0
10
+ - rc
11
+ - 1
12
+ version: 1.2.0.rc1
6
13
  platform: ruby
7
14
  authors:
8
15
  - Timothy Bennett
@@ -10,53 +17,74 @@ autorequire:
10
17
  bindir: bin
11
18
  cert_chain: []
12
19
 
13
- date: 2011-03-16 00:00:00 -07:00
14
- default_executable:
20
+ date: 2011-09-09 00:00:00 Z
15
21
  dependencies:
16
22
  - !ruby/object:Gem::Dependency
17
- name: dm-core
18
- requirement: &id001 !ruby/object:Gem::Requirement
23
+ type: :runtime
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
19
25
  none: false
20
26
  requirements:
21
27
  - - ~>
22
28
  - !ruby/object:Gem::Version
23
- version: 1.1.0
24
- type: :runtime
29
+ hash: 15424023
30
+ segments:
31
+ - 1
32
+ - 2
33
+ - 0
34
+ - rc
35
+ - 1
36
+ version: 1.2.0.rc1
25
37
  prerelease: false
26
- version_requirements: *id001
38
+ requirement: *id001
39
+ name: dm-core
27
40
  - !ruby/object:Gem::Dependency
28
- name: jeweler
29
- requirement: &id002 !ruby/object:Gem::Requirement
41
+ type: :development
42
+ version_requirements: &id002 !ruby/object:Gem::Requirement
30
43
  none: false
31
44
  requirements:
32
45
  - - ~>
33
46
  - !ruby/object:Gem::Version
34
- version: 1.5.2
35
- type: :development
47
+ hash: 7
48
+ segments:
49
+ - 1
50
+ - 6
51
+ - 4
52
+ version: 1.6.4
36
53
  prerelease: false
37
- version_requirements: *id002
54
+ requirement: *id002
55
+ name: jeweler
38
56
  - !ruby/object:Gem::Dependency
39
- name: rake
40
- requirement: &id003 !ruby/object:Gem::Requirement
57
+ type: :development
58
+ version_requirements: &id003 !ruby/object:Gem::Requirement
41
59
  none: false
42
60
  requirements:
43
61
  - - ~>
44
62
  - !ruby/object:Gem::Version
45
- version: 0.8.7
46
- type: :development
63
+ hash: 63
64
+ segments:
65
+ - 0
66
+ - 9
67
+ - 2
68
+ version: 0.9.2
47
69
  prerelease: false
48
- version_requirements: *id003
70
+ requirement: *id003
71
+ name: rake
49
72
  - !ruby/object:Gem::Dependency
50
- name: rspec
51
- requirement: &id004 !ruby/object:Gem::Requirement
73
+ type: :development
74
+ version_requirements: &id004 !ruby/object:Gem::Requirement
52
75
  none: false
53
76
  requirements:
54
77
  - - ~>
55
78
  - !ruby/object:Gem::Version
56
- version: 1.3.1
57
- type: :development
79
+ hash: 31
80
+ segments:
81
+ - 1
82
+ - 3
83
+ - 2
84
+ version: 1.3.2
58
85
  prerelease: false
59
- version_requirements: *id004
86
+ requirement: *id004
87
+ name: rspec
60
88
  description: DataMapper plugin allowing the creation of tree structures from data models
61
89
  email: leapord729 [a] comcast.net
62
90
  executables: []
@@ -83,7 +111,6 @@ files:
83
111
  - tasks/spec.rake
84
112
  - tasks/yard.rake
85
113
  - tasks/yardstick.rake
86
- has_rdoc: true
87
114
  homepage: http://github.com/datamapper/dm-is-tree
88
115
  licenses: []
89
116
 
@@ -97,21 +124,27 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
124
  requirements:
98
125
  - - ">="
99
126
  - !ruby/object:Gem::Version
127
+ hash: 3
128
+ segments:
129
+ - 0
100
130
  version: "0"
101
131
  required_rubygems_version: !ruby/object:Gem::Requirement
102
132
  none: false
103
133
  requirements:
104
- - - ">="
134
+ - - ">"
105
135
  - !ruby/object:Gem::Version
106
- version: "0"
136
+ hash: 25
137
+ segments:
138
+ - 1
139
+ - 3
140
+ - 1
141
+ version: 1.3.1
107
142
  requirements: []
108
143
 
109
144
  rubyforge_project: datamapper
110
- rubygems_version: 1.6.2
145
+ rubygems_version: 1.8.10
111
146
  signing_key:
112
147
  specification_version: 3
113
148
  summary: DataMapper plugin allowing the creation of tree structures from data models
114
- test_files:
115
- - spec/integration/tree_spec.rb
116
- - spec/spec_helper.rb
117
- - spec/unit/tree_spec.rb
149
+ test_files: []
150
+