xamplr 1.9.13 → 1.9.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -40,21 +40,32 @@ module Xampl
40
40
  def invalid
41
41
  return kind_of?(InvalidXampl)
42
42
  end
43
+ alias invalid? invalid
43
44
 
44
45
  def changes_accepted
45
46
  ResetIsChanged.new.start(self)
46
47
  end
47
48
 
48
49
  def changed
49
- unless Xampl.persister then
50
- raise UnmanagedChange.new(self)
51
- end
50
+ raise UnmanagedChange.new(self) unless Xampl.persister
52
51
  unless @is_changed then
53
52
  @is_changed = true
54
- @parents.each{ | parent | parent.changed } if nil != @parents
53
+ if nil != @parents
54
+ @parents.each do |parent|
55
+ parent.changed
56
+ end
57
+ end
55
58
  end
56
59
  end
57
60
 
61
+ # def changed?
62
+ # @is_changed
63
+ # end
64
+
65
+ def dirty?
66
+ @is_changed
67
+ end
68
+
58
69
  def accessed
59
70
  raise XamplIsInvalid.new(self) if invalid
60
71
  end
@@ -134,7 +145,11 @@ module Xampl
134
145
  def to_s
135
146
  if self.persisted? then
136
147
  persister_name = self.persister ? "#{ self.persister.name }/" : ''
137
- "<<#{ self.class.name } #{ self.object_id } [#{ self.persister ? self.persister.name : 'no-persister' }/#{ self.get_the_index }]#{ @is_changed ? ' DIRTY' : ''}>>"
148
+ if @load_needed then
149
+ "<<#{ self.class.name } #{ self.object_id } [#{ self.persister ? self.persister.name : 'no-persister' }/#{ self.get_the_index }] NOT LOADED>>"
150
+ else
151
+ "<<#{ self.class.name } #{ self.object_id } [#{ self.persister ? self.persister.name : 'no-persister' }/#{ self.get_the_index }]#{ @is_changed ? ' DIRTY' : ''}>>"
152
+ end
138
153
  elsif self.indexed_by then
139
154
  "<<#{ self.class.name } #{ self.object_id } [#{ self.get_the_index }]>>"
140
155
  else
@@ -12,54 +12,16 @@ module Xampl
12
12
  end
13
13
 
14
14
  def accessed
15
- raise XamplIsInvalid.new(self) if invalid
16
- # TODO -- why do I need to get rid of this line, alternatively, why
17
- # is this next line even there? Well, because accessed is now called
18
- # differently. But???
19
- #raise NoActivePersister unless @persister
20
-
21
- if @load_needed and @persister then
22
- raise NoActivePersister.new unless @persister
23
-
24
- if nil == Xampl.persister then
25
- #raise UnmanagedChange.new(self)
26
- if not @persister.syncing then
27
- Xampl.read_only(@persister) do
28
- Xampl.lazy_load(self)
29
- end
30
- else
31
- puts "LOAD NEEDED(2): REFUSED (persister: #{@persister.name})"
32
- puts " pid: #{self.get_the_index} #{self}"
33
- caller(0).each { | trace | puts " #{trace}"}
34
- end
35
- elsif Xampl.persister != @persister then
36
- raise MixedPersisters.new(@persister, self)
37
- elsif Xampl.persister == @persister then
38
- if not @persister.syncing then
39
- Xampl.read_only(@persister) do
40
- Xampl.lazy_load(self)
41
- end
42
- else
43
- puts "LOAD NEEDED(3): BAD IDEA, but load anyway (persister: #{@persister.name})"
44
- puts " #{self.class.name}"
45
- puts " pid: #{self.get_the_index}"
46
- Xampl.read_only(@persister) do
47
- Xampl.lazy_load(self)
48
- end
49
- # puts "LOAD NEEDED(3): REFUSED (persister: #{@persister.name})"
50
- # puts " #{self.class.name}"
51
- # puts " pid: #{self.get_the_index}"
52
- # caller(0).each { | trace | puts " #{trace}"}
53
- end
54
- else
55
- puts "LOAD NEEDED(4): REFUSED (persister: #{@persister.name})"
56
- puts " pid: #{self.get_the_index} #{self}"
57
- caller(0).each { | trace | puts " #{trace}"}
58
- end
59
- else
60
- puts "LOAD NEEDED(5): REFUSED (persister: #{@persister})" if @load_needed
61
- puts " pid: #{self.get_the_index} #{self}" if @load_needed
62
- caller(0).each { | trace | puts " #{trace}"} if @load_needed
15
+ raise XamplIsInvalid.new(self) if invalid #need this error to be more prominent
16
+ return unless @load_needed
17
+
18
+ # raise XamplIsInvalid.new(self) if invalid
19
+ raise NoActivePersister.new unless @persister
20
+ raise XamplException(:load_blocked_because_persister_is_syncing,
21
+ "often happens when you are describing a xampl object using a different persisted xampl object that hasn't been loaded yet") if @persister.syncing
22
+
23
+ Xampl.read_only(@persister) do
24
+ Xampl.lazy_load(self)
63
25
  end
64
26
  end
65
27
 
@@ -68,18 +30,13 @@ module Xampl
68
30
  end
69
31
 
70
32
  def changed
71
- # puts "CHANGED: is_changed #{@is_changed} xampl #{self}"
72
- unless Xampl.persister then
73
- raise UnmanagedChange.new(self)
74
- end
33
+ raise UnmanagedChange.new(self) unless Xampl.persister
34
+
75
35
  if @persister then
76
- if Xampl.persister != @persister then
77
- raise UnmanagedChange.new(self)
78
- end
79
- if @persister.block_changes then
80
- raise BlockedChange.new(self)
81
- end
36
+ raise UnmanagedChange.new(self) if Xampl.persister != @persister
37
+ raise BlockedChange.new(self) if @persister.block_changes
82
38
  end
39
+
83
40
  unless @is_changed then
84
41
  @is_changed = true
85
42
  if @persister then
data/xamplr.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{xamplr}
8
- s.version = "1.9.13"
8
+ s.version = "1.9.14"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bob Hutchison"]
12
- s.date = %q{2010-07-14}
12
+ s.date = %q{2010-09-02}
13
13
  s.description = %q{xamplr is the ruby version of xampl.}
14
14
  s.email = %q{hutch@recursive.ca}
15
15
  s.extra_rdoc_files = [
@@ -36,6 +36,8 @@ Gem::Specification.new do |s|
36
36
  "lib/xamplr/exceptions.rb",
37
37
  "lib/xamplr/from-xml-orig.rb",
38
38
  "lib/xamplr/from-xml.rb",
39
+ "lib/xamplr/from-xml.rb.libxml",
40
+ "lib/xamplr/from-xml.rb.nokogiri",
39
41
  "lib/xamplr/indexed-array.rb",
40
42
  "lib/xamplr/iterator.rb",
41
43
  "lib/xamplr/mixins.rb",
@@ -48,7 +50,8 @@ Gem::Specification.new do |s|
48
50
  "lib/xamplr/persisters/dumb.rb",
49
51
  "lib/xamplr/persisters/filesystem.rb",
50
52
  "lib/xamplr/persisters/in-memory.rb",
51
- "lib/xamplr/persisters/mongo.rb",
53
+ "lib/xamplr/persisters/mongo.rb.cannot-use",
54
+ "lib/xamplr/persisters/redis.rb",
52
55
  "lib/xamplr/persisters/simple.rb",
53
56
  "lib/xamplr/persisters/tokyo-cabinet.rb",
54
57
  "lib/xamplr/persisters/tokyo-cabinet.rb.1-DB",
@@ -72,6 +75,17 @@ Gem::Specification.new do |s|
72
75
  "lib/xamplr/test-support/test-names.rb",
73
76
  "lib/xamplr/test-support/test-rollback.rb",
74
77
  "lib/xamplr/test-support/test.rb",
78
+ "lib/xamplr/tests/.gitignore",
79
+ "lib/xamplr/tests/redis/Makefile",
80
+ "lib/xamplr/tests/redis/author.rb",
81
+ "lib/xamplr/tests/redis/project-generator.rb",
82
+ "lib/xamplr/tests/redis/redis_spec.rb",
83
+ "lib/xamplr/tests/redis/spec.opts",
84
+ "lib/xamplr/tests/redis/spec_helper.rb",
85
+ "lib/xamplr/tests/redis/testing-db/.gitignore",
86
+ "lib/xamplr/tests/redis/testing-db/Makefile",
87
+ "lib/xamplr/tests/redis/testing-db/unit-testing.redis.conf",
88
+ "lib/xamplr/tests/redis/xml/redis-test.xml",
75
89
  "lib/xamplr/to-ruby.rb",
76
90
  "lib/xamplr/to-xml.rb",
77
91
  "lib/xamplr/visitor.rb",
@@ -125,14 +139,14 @@ Gem::Specification.new do |s|
125
139
 
126
140
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
127
141
  s.add_runtime_dependency(%q<xamplr-pp>, [">= 1.2.0"])
128
- s.add_runtime_dependency(%q<libxml-ruby>, [">= 1.1.3"])
142
+ s.add_runtime_dependency(%q<nokogiri>, [">= 1.4.3"])
129
143
  else
130
144
  s.add_dependency(%q<xamplr-pp>, [">= 1.2.0"])
131
- s.add_dependency(%q<libxml-ruby>, [">= 1.1.3"])
145
+ s.add_dependency(%q<nokogiri>, [">= 1.4.3"])
132
146
  end
133
147
  else
134
148
  s.add_dependency(%q<xamplr-pp>, [">= 1.2.0"])
135
- s.add_dependency(%q<libxml-ruby>, [">= 1.1.3"])
149
+ s.add_dependency(%q<nokogiri>, [">= 1.4.3"])
136
150
  end
137
151
  end
138
152
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xamplr
3
3
  version: !ruby/object:Gem::Version
4
- hash: 41
4
+ hash: 47
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 9
9
- - 13
10
- version: 1.9.13
9
+ - 14
10
+ version: 1.9.14
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bob Hutchison
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-14 00:00:00 -04:00
18
+ date: 2010-09-02 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -35,19 +35,19 @@ dependencies:
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- name: libxml-ruby
38
+ name: nokogiri
39
39
  prerelease: false
40
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- hash: 21
45
+ hash: 1
46
46
  segments:
47
47
  - 1
48
- - 1
48
+ - 4
49
49
  - 3
50
- version: 1.1.3
50
+ version: 1.4.3
51
51
  type: :runtime
52
52
  version_requirements: *id002
53
53
  description: xamplr is the ruby version of xampl.
@@ -79,6 +79,8 @@ files:
79
79
  - lib/xamplr/exceptions.rb
80
80
  - lib/xamplr/from-xml-orig.rb
81
81
  - lib/xamplr/from-xml.rb
82
+ - lib/xamplr/from-xml.rb.libxml
83
+ - lib/xamplr/from-xml.rb.nokogiri
82
84
  - lib/xamplr/indexed-array.rb
83
85
  - lib/xamplr/iterator.rb
84
86
  - lib/xamplr/mixins.rb
@@ -91,7 +93,8 @@ files:
91
93
  - lib/xamplr/persisters/dumb.rb
92
94
  - lib/xamplr/persisters/filesystem.rb
93
95
  - lib/xamplr/persisters/in-memory.rb
94
- - lib/xamplr/persisters/mongo.rb
96
+ - lib/xamplr/persisters/mongo.rb.cannot-use
97
+ - lib/xamplr/persisters/redis.rb
95
98
  - lib/xamplr/persisters/simple.rb
96
99
  - lib/xamplr/persisters/tokyo-cabinet.rb
97
100
  - lib/xamplr/persisters/tokyo-cabinet.rb.1-DB
@@ -115,6 +118,17 @@ files:
115
118
  - lib/xamplr/test-support/test-names.rb
116
119
  - lib/xamplr/test-support/test-rollback.rb
117
120
  - lib/xamplr/test-support/test.rb
121
+ - lib/xamplr/tests/.gitignore
122
+ - lib/xamplr/tests/redis/Makefile
123
+ - lib/xamplr/tests/redis/author.rb
124
+ - lib/xamplr/tests/redis/project-generator.rb
125
+ - lib/xamplr/tests/redis/redis_spec.rb
126
+ - lib/xamplr/tests/redis/spec.opts
127
+ - lib/xamplr/tests/redis/spec_helper.rb
128
+ - lib/xamplr/tests/redis/testing-db/.gitignore
129
+ - lib/xamplr/tests/redis/testing-db/Makefile
130
+ - lib/xamplr/tests/redis/testing-db/unit-testing.redis.conf
131
+ - lib/xamplr/tests/redis/xml/redis-test.xml
118
132
  - lib/xamplr/to-ruby.rb
119
133
  - lib/xamplr/to-xml.rb
120
134
  - lib/xamplr/visitor.rb