things-client 0.2.2 → 0.2.3

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
data/lib/things/person.rb CHANGED
@@ -19,6 +19,10 @@ module Things
19
19
  raise 'Could not find person in Address Book' if reference == :missing_value
20
20
  build(reference)
21
21
  end
22
+
23
+ def all
24
+ convert(Things::App.instance.people.get)
25
+ end
22
26
 
23
27
  end
24
28
 
@@ -67,7 +67,12 @@ module Things
67
67
  self.reference = Things::App.instance.make(:new => self.class.identifier, :with_properties => { :name => name })
68
68
  properties.each_pair { |name, property| self.reference.send(name).set(property) }
69
69
  else
70
- (self.class.properties - [:id_]).each do |property|
70
+ # update
71
+ properties = self.class.properties - [:id_]
72
+ # If :area is present, push it to end the because if other
73
+ # properties are removed, Things removes the Area altogether
74
+ properties.push(properties.delete(:area)) if properties.include?(:area)
75
+ properties.each do |property|
71
76
  if value = self.send(property)
72
77
  self.reference.send(property).set(value.respond_to?(:reference) ? value.reference : value)
73
78
  else
@@ -161,6 +161,23 @@ describe "Things::Area" do
161
161
  @area.delete
162
162
  end
163
163
 
164
+ # Reported by http://github.com/marcinbunsch/things-client/issues/1
165
+ it "should maintain association to area on update" do
166
+ @area.save
167
+ @area = Things::Area.find(@area.name)
168
+ @todo = Things::Todo.new(:name => 'TestTODO')
169
+ @todo.area= @area
170
+ @todo.save
171
+ @todo.area.should == @area
172
+ @todo = Things::Todo.find(@todo.name)
173
+ @todo.area= @area
174
+ @todo.save
175
+ @todo = Things::Todo.find(@todo.name)
176
+ @todo.area.name.should == @area.name
177
+ @area.delete
178
+ @todo.delete
179
+ end
180
+
164
181
  end
165
182
 
166
183
 
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: things-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 2
8
+ - 3
9
+ version: 0.2.3
5
10
  platform: ruby
6
11
  authors:
7
12
  - Marcin Bunsch
@@ -9,29 +14,37 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-02-26 00:00:00 +01:00
17
+ date: 2010-04-22 00:00:00 +02:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: rspec
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 2
30
+ - 9
23
31
  version: 1.2.9
24
- version:
32
+ type: :development
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: rb-appscript
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ - 5
44
+ - 3
33
45
  version: 0.5.3
34
- version:
46
+ type: :runtime
47
+ version_requirements: *id002
35
48
  description:
36
49
  email: marcin@applicake.com
37
50
  executables: []
@@ -85,18 +98,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
98
  requirements:
86
99
  - - ">="
87
100
  - !ruby/object:Gem::Version
101
+ segments:
102
+ - 0
88
103
  version: "0"
89
- version:
90
104
  required_rubygems_version: !ruby/object:Gem::Requirement
91
105
  requirements:
92
106
  - - ">="
93
107
  - !ruby/object:Gem::Version
108
+ segments:
109
+ - 0
94
110
  version: "0"
95
- version:
96
111
  requirements: []
97
112
 
98
113
  rubyforge_project:
99
- rubygems_version: 1.3.5
114
+ rubygems_version: 1.3.6
100
115
  signing_key:
101
116
  specification_version: 3
102
117
  summary: A Ruby client for Things' Applescript API. Things is a GTD app for OS X.