dm-is-tree 1.1.0 → 1.2.0.rc1

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