ruby-fs-stack 0.4.12 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/README.rdoc +25 -1
  2. data/VERSION +1 -1
  3. data/lib/ruby-fs-stack/familytree.rb +13 -1435
  4. data/lib/ruby-fs-stack/familytree/characteristic.rb +12 -0
  5. data/lib/ruby-fs-stack/familytree/communicator.rb +412 -0
  6. data/lib/ruby-fs-stack/familytree/event.rb +49 -0
  7. data/lib/ruby-fs-stack/familytree/exist.rb +8 -0
  8. data/lib/ruby-fs-stack/familytree/gender.rb +9 -0
  9. data/lib/ruby-fs-stack/familytree/match.rb +3 -0
  10. data/lib/ruby-fs-stack/familytree/name.rb +69 -0
  11. data/lib/ruby-fs-stack/familytree/note.rb +48 -0
  12. data/lib/ruby-fs-stack/familytree/ordinance.rb +70 -0
  13. data/lib/ruby-fs-stack/familytree/pedigree.rb +103 -0
  14. data/lib/ruby-fs-stack/familytree/person.rb +495 -0
  15. data/lib/ruby-fs-stack/familytree/relationship.rb +209 -0
  16. data/lib/ruby-fs-stack/familytree/search.rb +27 -0
  17. data/lib/ruby-fs-stack/identity.rb +1 -37
  18. data/lib/ruby-fs-stack/identity/communicator.rb +41 -0
  19. data/ruby-fs-stack.gemspec +59 -43
  20. data/spec/{familytree_v2/familytree_communicator_spec.rb → ruby-fs-stack/familytree/communicator_spec.rb} +91 -1
  21. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/combine_request.js +0 -0
  22. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/combine_response.js +0 -0
  23. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/fakeweb_contributor.txt +0 -0
  24. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/fakeweb_pedigree.txt +0 -0
  25. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/fakeweb_pedigree2.txt +0 -0
  26. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/fakeweb_properties.txt +0 -0
  27. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/match_KW3B-NNM.js +0 -0
  28. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/note_create_response.js +0 -0
  29. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/person/KJ86-3VD_all.js +0 -0
  30. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/person/KJ86-3VD_parents_families.js +0 -0
  31. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/person/KJ86-3VD_version.js +0 -0
  32. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/person/fakeweb_10_batch.txt +0 -0
  33. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/person/fakeweb_6_batch.txt +0 -0
  34. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/person/multiple_version_read.js +0 -0
  35. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/person/post_response.js +0 -0
  36. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/person/relationship_not_found.js +0 -0
  37. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/person/relationship_read.js +0 -0
  38. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/person/relationship_update.js +0 -0
  39. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/person/spouse_read.js +0 -0
  40. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/json/search.js +0 -0
  41. data/spec/{familytree_v2/match_results_spec.rb → ruby-fs-stack/familytree/match_spec.rb} +1 -1
  42. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/note_spec.rb +1 -1
  43. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/pedigree_spec.rb +1 -1
  44. data/spec/{familytree_v2 → ruby-fs-stack/familytree}/person_spec.rb +1 -3
  45. data/spec/{familytree_v2/relationships_spec.rb → ruby-fs-stack/familytree/relationship_spec.rb} +1 -3
  46. data/spec/{familytree_v2/search_results_spec.rb → ruby-fs-stack/familytree/search_spec.rb} +1 -1
  47. data/spec/ruby-fs-stack/familytree/spec_helper.rb +2 -0
  48. data/spec/{communicator_spec.rb → ruby-fs-stack/fs_communicator_spec.rb} +5 -5
  49. data/spec/{fs_utils_spec.rb → ruby-fs-stack/fs_utils_spec.rb} +1 -1
  50. data/spec/ruby-fs-stack/identity/communicator_spec.rb +82 -0
  51. data/spec/{identity_v1 → ruby-fs-stack/identity}/json/login.js +0 -0
  52. metadata +61 -45
  53. data/spec/identity_v1/identity_spec.rb +0 -50
@@ -0,0 +1,209 @@
1
+ module Org::Familysearch::Ws::Familytree::V2::Schema
2
+
3
+ class RelationshipAssertions
4
+ # ====Params
5
+ # * <tt>options</tt> - :type ('Lineage' or valid CharacteristicType), :lineage => 'Biological', etc.
6
+ def add_characteristic(options)
7
+ self.characteristics ||= []
8
+ characteristic = CharacteristicAssertion.new
9
+ characteristic.add_value(options)
10
+ self.characteristics << characteristic
11
+ end
12
+
13
+ # ====Params
14
+ # * <tt>options</tt> - Accepts the following options
15
+ # ** :type - 'Marriage', etc. REQUIRED
16
+ # ** :date - 'Utah, United States' (optional)
17
+ # ** :place - '16 Nov 1987' (optional)
18
+ def add_event(options)
19
+ self.events ||= []
20
+ event = EventAssertion.new
21
+ event.add_value(options)
22
+ self.events << event
23
+ end
24
+
25
+ # ====Params
26
+ # * <tt>options</tt> - Accepts the following options
27
+ # ** :type - 'Sealing_to_Spouse', etc. REQUIRED
28
+ # ** :date - 'Utah, United States' (optional)
29
+ # ** :place - '16 Nov 1987' (optional)
30
+ # ** :temple - 'SLAKE'
31
+ def add_ordinance(options)
32
+ self.ordinances ||= []
33
+ ordinance = OrdinanceAssertion.new
34
+ ordinance.add_value(options)
35
+ self.ordinances << ordinance
36
+ end
37
+
38
+ def add_exists
39
+ self.exists ||= []
40
+ exist = ExistsAssertion.new
41
+ exist.add_value
42
+ self.exists << exist
43
+ end
44
+ end
45
+
46
+ class Relationship
47
+ def add_lineage_characteristic(lineage)
48
+ add_assertions!
49
+ self.assertions.add_characteristic(:type => 'Lineage', :lineage => lineage)
50
+ end
51
+
52
+ def add_exists
53
+ add_assertions!
54
+ self.assertions.add_exists
55
+ end
56
+
57
+ # ====Params
58
+ # * <tt>event_hash</tt> - Accepts the following options
59
+ # ** :type - 'Marriage', etc. REQUIRED
60
+ # ** :date - 'Utah, United States' (optional)
61
+ # ** :place - '16 Nov 1987' (optional)
62
+ def add_event(event_hash)
63
+ add_assertions!
64
+ self.assertions.add_event(event_hash)
65
+ end
66
+
67
+ # ====Params
68
+ # * <tt>ordinance_hash</tt> - Accepts the following options
69
+ # ** :type - 'Sealing_to_Spouse', etc. REQUIRED
70
+ # ** :date - 'Utah, United States' (optional)
71
+ # ** :place - '16 Nov 1987' (optional)
72
+ # ** :temple - 'SLAKE'
73
+ def add_ordinance(ordinance_hash)
74
+ add_assertions!
75
+ self.assertions.add_ordinance(ordinance_hash)
76
+ end
77
+
78
+ private
79
+ def add_assertions!
80
+ self.assertions ||= RelationshipAssertions.new
81
+ end
82
+ end
83
+
84
+ class FamilyReference
85
+ def select_spouse(spouse_id)
86
+ add_parents!
87
+ self.action = 'Select'
88
+ parent = PersonReference.new
89
+ parent.id = spouse_id
90
+ self.parents << parent
91
+ end
92
+
93
+ private
94
+ def add_parents!
95
+ self.parents ||= []
96
+ end
97
+ end
98
+
99
+ class ParentsReference
100
+ def select_parent(parent_id, gender)
101
+ add_parents!
102
+ self.action = 'Select'
103
+ parent = PersonReference.new
104
+ parent.gender = gender
105
+ parent.id = parent_id
106
+ self.parents << parent
107
+ end
108
+
109
+ private
110
+ def add_parents!
111
+ self.parents ||= []
112
+ end
113
+ end
114
+
115
+ class PersonRelationships
116
+ def initialize
117
+ @parents = []
118
+ @spouses = []
119
+ @children = []
120
+ end
121
+
122
+ # ====Params
123
+ # * <tt>options</tt> - requires the following:
124
+ # ** :type - 'parent', 'child', 'spouse'
125
+ # ** :with - ID of the person with whom you are making the relationship
126
+ # ** :lineage (optional) - 'Biological', 'Adoptive', etc.
127
+ # ** :event - a hash with values {:type => 'Marriage', :date => '15 Nov 2007', :place => 'Utah, United States'}
128
+ # ** :ordinance - a hash with values {:date => '15 Nov 2007', :temple => 'SLAKE', :place => 'Utah, United States', :type => "Sealing_to_Spouse"}
129
+ def add_relationship(options)
130
+ relationship = self.get_relationships_of_type(options[:type]).find{|r|r.id == options[:with] || r.requestedId == options[:with]}
131
+ if relationship.nil?
132
+ relationship = Relationship.new
133
+ relationship.id = options[:with]
134
+ end
135
+ if options[:lineage]
136
+ relationship.add_lineage_characteristic(options[:lineage]) if options[:lineage]
137
+ else
138
+ relationship.add_exists
139
+ end
140
+ if options[:event]
141
+ relationship.add_event(options[:event])
142
+ end
143
+ if options[:ordinance]
144
+ relationship.add_ordinance(options[:ordinance])
145
+ end
146
+ s_command = set_command(options[:type])
147
+ self.send(s_command.to_sym,[relationship])
148
+ end
149
+
150
+ # ====Params
151
+ # * type - should be 'child', 'spouse', or 'parent'
152
+ def get_relationships_of_type(type)
153
+ g_command = get_command(type)
154
+ relationships = self.send(g_command.to_sym)
155
+ end
156
+
157
+ # Overriding the Enunciate code because of a bug (parents, spouses, and children were not pluralized)
158
+ # the json hash for this PersonRelationships
159
+ def to_jaxb_json_hash
160
+ _h = {}
161
+ if !parents.nil?
162
+ _ha = Array.new
163
+ parents.each { | _item | _ha.push _item.to_jaxb_json_hash }
164
+ _h['parents'] = _ha
165
+ end
166
+ if !spouses.nil?
167
+ _ha = Array.new
168
+ spouses.each { | _item | _ha.push _item.to_jaxb_json_hash }
169
+ _h['spouses'] = _ha
170
+ end
171
+ if !children.nil?
172
+ _ha = Array.new
173
+ children.each { | _item | _ha.push _item.to_jaxb_json_hash }
174
+ _h['children'] = _ha
175
+ end
176
+ return _h
177
+ end
178
+
179
+ # Overriding the Enunciate code because of a bug
180
+ #initializes this PersonRelationships with a json hash
181
+ def init_jaxb_json_hash(_o)
182
+ if !_o['parents'].nil?
183
+ @parents = Array.new
184
+ _oa = _o['parents']
185
+ _oa.each { | _item | @parents.push Org::Familysearch::Ws::Familytree::V2::Schema::Relationship.from_json(_item) }
186
+ end
187
+ if !_o['spouses'].nil?
188
+ @spouses = Array.new
189
+ _oa = _o['spouses']
190
+ _oa.each { | _item | @spouses.push Org::Familysearch::Ws::Familytree::V2::Schema::Relationship.from_json(_item) }
191
+ end
192
+ if !_o['children'].nil?
193
+ @children = Array.new
194
+ _oa = _o['children']
195
+ _oa.each { | _item | @children.push Org::Familysearch::Ws::Familytree::V2::Schema::Relationship.from_json(_item) }
196
+ end
197
+ end
198
+
199
+ private
200
+ def get_command(type)
201
+ (type.to_s == 'child') ? 'children' : "#{type}s"
202
+ end
203
+
204
+ def set_command(type)
205
+ get_command(type)+"="
206
+ end
207
+ end
208
+
209
+ end
@@ -0,0 +1,27 @@
1
+ module Org::Familysearch::Ws::Familytree::V2::Schema
2
+
3
+ class SearchPerson
4
+ alias :name :full_name
5
+ alias :ref :id
6
+ def events
7
+ (assertions && assertions.events) ? assertions.events : []
8
+ end
9
+
10
+ # Always will return nil. Method is here for v1 backwards compatibility
11
+ def marriage
12
+ nil
13
+ end
14
+ end
15
+
16
+ class SearchResult
17
+ alias :ref :id
18
+
19
+ def father
20
+ parents.find{|p|p.gender == 'Male'}
21
+ end
22
+
23
+ def mother
24
+ parents.find{|p|p.gender == 'Female'}
25
+ end
26
+ end
27
+ end
@@ -1,5 +1,5 @@
1
1
  require 'rubygems'
2
- require 'ruby-fs-stack/fs_communicator'
2
+ require 'ruby-fs-stack/identity/communicator'
3
3
  # Including more than one enunciate library raises a warning of
4
4
  # already initialized constant.
5
5
  require 'ruby-fs-stack/warning_suppressor'
@@ -7,39 +7,3 @@ with_warnings_suppressed do
7
7
  require 'ruby-fs-stack/enunciate/identity'
8
8
  end
9
9
 
10
- module IdentityV1
11
-
12
- # This method gets mixed into the FsCommunicator so that
13
- # you can make calls on the fs_familytree_v1 module
14
- def identity_v1
15
- @identity_v1_com ||= Communicator.new self # self at this point refers to the FsCommunicator instance
16
- end
17
-
18
- class Communicator
19
- Base = '/identity/v1/'
20
-
21
- # ====params
22
- # fs_communicator: FsCommunicator instance
23
- def initialize(fs_communicator)
24
- @communicator = fs_communicator
25
- end
26
-
27
- # ==== Params
28
- # <tt>credentials</tt> - :username, :password
29
- def authenticate(credentials = {})
30
- url = Base + 'login'
31
- response = @communicator.get(url, credentials)
32
- login_result = Org::Familysearch::Ws::Identity::V1::Schema::Identity.from_json JSON.parse(response.body)
33
- if login_result.statusCode == 200
34
- @communicator.session = login_result.session.id
35
- return true
36
- end
37
- end
38
- end
39
-
40
- end
41
-
42
- # Mix in the module so that the identity_v1 can be called
43
- class FsCommunicator
44
- include IdentityV1
45
- end
@@ -0,0 +1,41 @@
1
+ require 'ruby-fs-stack/fs_communicator'
2
+ module IdentityV1
3
+
4
+ # This method gets mixed into the FsCommunicator so that
5
+ # you can make calls on the fs_familytree_v1 module
6
+ def identity_v1
7
+ @identity_v1_com ||= Communicator.new self # self at this point refers to the FsCommunicator instance
8
+ end
9
+
10
+ class Communicator
11
+ Base = '/identity/v1/'
12
+
13
+ # ====params
14
+ # fs_communicator: FsCommunicator instance
15
+ def initialize(fs_communicator)
16
+ @communicator = fs_communicator
17
+ end
18
+
19
+ # ==== Params
20
+ # <tt>credentials</tt> - :username, :password
21
+ def authenticate(credentials = {})
22
+ url = Base + 'login'
23
+ response = @communicator.get(url, credentials)
24
+ if response.code == '200'
25
+ login_result = Org::Familysearch::Ws::Identity::V1::Schema::Identity.from_json JSON.parse(response.body)
26
+ @communicator.session = login_result.session.id
27
+ return true
28
+ else
29
+ return false
30
+ end
31
+ end
32
+
33
+ alias :login :authenticate
34
+ end
35
+
36
+ end
37
+
38
+ # Mix in the module so that the identity_v1 can be called
39
+ class FsCommunicator
40
+ include IdentityV1
41
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ruby-fs-stack}
8
- s.version = "0.4.12"
8
+ s.version = "0.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jimmy Zimmerman"]
12
- s.date = %q{2010-05-01}
12
+ s.date = %q{2010-05-15}
13
13
  s.description = %q{A library that enables you to read and update information with the new.familysearch.org API.}
14
14
  s.email = %q{jimmy.zimmerman@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -33,43 +33,58 @@ Gem::Specification.new do |s|
33
33
  "lib/ruby-fs-stack/enunciate/identity.rb",
34
34
  "lib/ruby-fs-stack/errors.rb",
35
35
  "lib/ruby-fs-stack/familytree.rb",
36
+ "lib/ruby-fs-stack/familytree/characteristic.rb",
37
+ "lib/ruby-fs-stack/familytree/communicator.rb",
38
+ "lib/ruby-fs-stack/familytree/event.rb",
39
+ "lib/ruby-fs-stack/familytree/exist.rb",
40
+ "lib/ruby-fs-stack/familytree/gender.rb",
41
+ "lib/ruby-fs-stack/familytree/match.rb",
42
+ "lib/ruby-fs-stack/familytree/name.rb",
43
+ "lib/ruby-fs-stack/familytree/note.rb",
44
+ "lib/ruby-fs-stack/familytree/ordinance.rb",
45
+ "lib/ruby-fs-stack/familytree/pedigree.rb",
46
+ "lib/ruby-fs-stack/familytree/person.rb",
47
+ "lib/ruby-fs-stack/familytree/relationship.rb",
48
+ "lib/ruby-fs-stack/familytree/search.rb",
36
49
  "lib/ruby-fs-stack/fs_communicator.rb",
37
50
  "lib/ruby-fs-stack/fs_utils.rb",
38
51
  "lib/ruby-fs-stack/identity.rb",
52
+ "lib/ruby-fs-stack/identity/communicator.rb",
39
53
  "lib/ruby-fs-stack/warning_suppressor.rb",
40
54
  "ruby-fs-stack.gemspec",
41
- "spec/communicator_spec.rb",
42
- "spec/familytree_v2/familytree_communicator_spec.rb",
43
- "spec/familytree_v2/json/combine_request.js",
44
- "spec/familytree_v2/json/combine_response.js",
45
- "spec/familytree_v2/json/fakeweb_contributor.txt",
46
- "spec/familytree_v2/json/fakeweb_pedigree.txt",
47
- "spec/familytree_v2/json/fakeweb_pedigree2.txt",
48
- "spec/familytree_v2/json/fakeweb_properties.txt",
49
- "spec/familytree_v2/json/match_KW3B-NNM.js",
50
- "spec/familytree_v2/json/note_create_response.js",
51
- "spec/familytree_v2/json/person/KJ86-3VD_all.js",
52
- "spec/familytree_v2/json/person/KJ86-3VD_parents_families.js",
53
- "spec/familytree_v2/json/person/KJ86-3VD_version.js",
54
- "spec/familytree_v2/json/person/fakeweb_10_batch.txt",
55
- "spec/familytree_v2/json/person/fakeweb_6_batch.txt",
56
- "spec/familytree_v2/json/person/multiple_version_read.js",
57
- "spec/familytree_v2/json/person/post_response.js",
58
- "spec/familytree_v2/json/person/relationship_not_found.js",
59
- "spec/familytree_v2/json/person/relationship_read.js",
60
- "spec/familytree_v2/json/person/relationship_update.js",
61
- "spec/familytree_v2/json/person/spouse_read.js",
62
- "spec/familytree_v2/json/search.js",
63
- "spec/familytree_v2/match_results_spec.rb",
64
- "spec/familytree_v2/note_spec.rb",
65
- "spec/familytree_v2/pedigree_spec.rb",
66
- "spec/familytree_v2/person_spec.rb",
67
- "spec/familytree_v2/relationships_spec.rb",
68
- "spec/familytree_v2/search_results_spec.rb",
69
55
  "spec/fixtures/fakeweb_response.txt",
70
- "spec/fs_utils_spec.rb",
71
- "spec/identity_v1/identity_spec.rb",
72
- "spec/identity_v1/json/login.js",
56
+ "spec/ruby-fs-stack/familytree/communicator_spec.rb",
57
+ "spec/ruby-fs-stack/familytree/json/combine_request.js",
58
+ "spec/ruby-fs-stack/familytree/json/combine_response.js",
59
+ "spec/ruby-fs-stack/familytree/json/fakeweb_contributor.txt",
60
+ "spec/ruby-fs-stack/familytree/json/fakeweb_pedigree.txt",
61
+ "spec/ruby-fs-stack/familytree/json/fakeweb_pedigree2.txt",
62
+ "spec/ruby-fs-stack/familytree/json/fakeweb_properties.txt",
63
+ "spec/ruby-fs-stack/familytree/json/match_KW3B-NNM.js",
64
+ "spec/ruby-fs-stack/familytree/json/note_create_response.js",
65
+ "spec/ruby-fs-stack/familytree/json/person/KJ86-3VD_all.js",
66
+ "spec/ruby-fs-stack/familytree/json/person/KJ86-3VD_parents_families.js",
67
+ "spec/ruby-fs-stack/familytree/json/person/KJ86-3VD_version.js",
68
+ "spec/ruby-fs-stack/familytree/json/person/fakeweb_10_batch.txt",
69
+ "spec/ruby-fs-stack/familytree/json/person/fakeweb_6_batch.txt",
70
+ "spec/ruby-fs-stack/familytree/json/person/multiple_version_read.js",
71
+ "spec/ruby-fs-stack/familytree/json/person/post_response.js",
72
+ "spec/ruby-fs-stack/familytree/json/person/relationship_not_found.js",
73
+ "spec/ruby-fs-stack/familytree/json/person/relationship_read.js",
74
+ "spec/ruby-fs-stack/familytree/json/person/relationship_update.js",
75
+ "spec/ruby-fs-stack/familytree/json/person/spouse_read.js",
76
+ "spec/ruby-fs-stack/familytree/json/search.js",
77
+ "spec/ruby-fs-stack/familytree/match_spec.rb",
78
+ "spec/ruby-fs-stack/familytree/note_spec.rb",
79
+ "spec/ruby-fs-stack/familytree/pedigree_spec.rb",
80
+ "spec/ruby-fs-stack/familytree/person_spec.rb",
81
+ "spec/ruby-fs-stack/familytree/relationship_spec.rb",
82
+ "spec/ruby-fs-stack/familytree/search_spec.rb",
83
+ "spec/ruby-fs-stack/familytree/spec_helper.rb",
84
+ "spec/ruby-fs-stack/fs_communicator_spec.rb",
85
+ "spec/ruby-fs-stack/fs_utils_spec.rb",
86
+ "spec/ruby-fs-stack/identity/communicator_spec.rb",
87
+ "spec/ruby-fs-stack/identity/json/login.js",
73
88
  "spec/ruby-fs-stack_spec.rb",
74
89
  "spec/spec_helper.rb"
75
90
  ]
@@ -80,16 +95,17 @@ Gem::Specification.new do |s|
80
95
  s.rubygems_version = %q{1.3.6}
81
96
  s.summary = %q{Ruby wrapper for all FamilySearch APIs.}
82
97
  s.test_files = [
83
- "spec/communicator_spec.rb",
84
- "spec/familytree_v2/familytree_communicator_spec.rb",
85
- "spec/familytree_v2/match_results_spec.rb",
86
- "spec/familytree_v2/note_spec.rb",
87
- "spec/familytree_v2/pedigree_spec.rb",
88
- "spec/familytree_v2/person_spec.rb",
89
- "spec/familytree_v2/relationships_spec.rb",
90
- "spec/familytree_v2/search_results_spec.rb",
91
- "spec/fs_utils_spec.rb",
92
- "spec/identity_v1/identity_spec.rb",
98
+ "spec/ruby-fs-stack/familytree/communicator_spec.rb",
99
+ "spec/ruby-fs-stack/familytree/match_spec.rb",
100
+ "spec/ruby-fs-stack/familytree/note_spec.rb",
101
+ "spec/ruby-fs-stack/familytree/pedigree_spec.rb",
102
+ "spec/ruby-fs-stack/familytree/person_spec.rb",
103
+ "spec/ruby-fs-stack/familytree/relationship_spec.rb",
104
+ "spec/ruby-fs-stack/familytree/search_spec.rb",
105
+ "spec/ruby-fs-stack/familytree/spec_helper.rb",
106
+ "spec/ruby-fs-stack/fs_communicator_spec.rb",
107
+ "spec/ruby-fs-stack/fs_utils_spec.rb",
108
+ "spec/ruby-fs-stack/identity/communicator_spec.rb",
93
109
  "spec/ruby-fs-stack_spec.rb",
94
110
  "spec/spec_helper.rb",
95
111
  "examples/familytree_example.rb",