things-client 0.2.2 → 0.2.3

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