ruby-fs-stack 0.5.1 → 0.5.2

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.
@@ -257,7 +257,7 @@ module FamilytreeV2
257
257
  return familytree.persons[0]
258
258
  end
259
259
 
260
- def pedigree(id_or_ids)
260
+ def pedigree(id_or_ids, options = {})
261
261
  if id_or_ids.kind_of? Array
262
262
  multiple_ids = true
263
263
  url = Base + 'pedigree/' + id_or_ids.join(',')
@@ -270,6 +270,7 @@ module FamilytreeV2
270
270
  url = Base + 'pedigree/' + id
271
271
  end
272
272
  end
273
+ url += add_querystring(options)
273
274
  # url += add_querystring(options)
274
275
  response = @fs_communicator.get(url)
275
276
  familytree = parse_response(response)
@@ -1,14 +1,20 @@
1
1
  require 'ruby-fs-stack/fs_communicator'
2
- module IdentityV1
2
+ module IdentityV2
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_v2
7
+ @identity_v2_com ||= Communicator.new self # self at this point refers to the FsCommunicator instance
8
+ end
3
9
 
4
10
  # This method gets mixed into the FsCommunicator so that
5
11
  # you can make calls on the fs_familytree_v1 module
6
12
  def identity_v1
7
- @identity_v1_com ||= Communicator.new self # self at this point refers to the FsCommunicator instance
13
+ identity_v2
8
14
  end
9
15
 
10
16
  class Communicator
11
- Base = '/identity/v1/'
17
+ Base = '/identity/v2/'
12
18
 
13
19
  # ====params
14
20
  # fs_communicator: FsCommunicator instance
@@ -22,7 +28,7 @@ module IdentityV1
22
28
  url = Base + 'login'
23
29
  response = @communicator.get(url, credentials)
24
30
  if response.code == '200'
25
- login_result = Org::Familysearch::Ws::Identity::V1::Schema::Identity.from_json JSON.parse(response.body)
31
+ login_result = Org::Familysearch::Ws::Identity::V2a::Schema::Identity.from_json JSON.parse(response.body)
26
32
  @communicator.session = login_result.session.id
27
33
  return true
28
34
  else
@@ -37,5 +43,5 @@ end
37
43
 
38
44
  # Mix in the module so that the identity_v1 can be called
39
45
  class FsCommunicator
40
- include IdentityV1
46
+ include IdentityV2
41
47
  end
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ruby-fs-stack}
8
- s.version = "0.5.1"
8
+ s.version = "0.5.2"
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-17}
12
+ s.date = %q{2010-10-29}
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 = [
@@ -59,6 +59,7 @@ Gem::Specification.new do |s|
59
59
  "spec/ruby-fs-stack/familytree/json/fakeweb_contributor.txt",
60
60
  "spec/ruby-fs-stack/familytree/json/fakeweb_pedigree.txt",
61
61
  "spec/ruby-fs-stack/familytree/json/fakeweb_pedigree2.txt",
62
+ "spec/ruby-fs-stack/familytree/json/fakeweb_pedigree3.txt",
62
63
  "spec/ruby-fs-stack/familytree/json/fakeweb_properties.txt",
63
64
  "spec/ruby-fs-stack/familytree/json/match_KW3B-NNM.js",
64
65
  "spec/ruby-fs-stack/familytree/json/note_create_response.js",
@@ -92,7 +93,7 @@ Gem::Specification.new do |s|
92
93
  s.rdoc_options = ["--charset=UTF-8"]
93
94
  s.require_paths = ["lib"]
94
95
  s.requirements = ["This gem requires a json gem (json, json_pure, or json-jruby)."]
95
- s.rubygems_version = %q{1.3.5}
96
+ s.rubygems_version = %q{1.3.6}
96
97
  s.summary = %q{Ruby wrapper for all FamilySearch APIs.}
97
98
  s.test_files = [
98
99
  "spec/ruby-fs-stack/familytree/communicator_spec.rb",
@@ -128,4 +129,3 @@ Gem::Specification.new do |s|
128
129
  s.add_dependency(%q<fakeweb>, [">= 0"])
129
130
  end
130
131
  end
131
-
@@ -670,6 +670,19 @@ describe FamilytreeV2::Communicator do
670
670
  pedigree.persons.first.id.should == 'KWZF-CFW'
671
671
  end
672
672
 
673
+ describe "sending options to pedigree read" do
674
+ before(:each) do
675
+ response = File.join(File.dirname(__FILE__),'json','fakeweb_pedigree3.txt')
676
+ FakeWeb.register_uri(:get, "https://fakeweb.familysearch.org/familytree/v2/pedigree/KWZF-CFW?ancestors=9&sessionId=SESSID&dataFormat=application/json",
677
+ :response => response)
678
+ end
679
+
680
+ it "should send the options to the querystring" do
681
+ pedigree = @com.familytree_v2.pedigree 'KWZF-CFW', :ancestors => 9
682
+ pedigree.id.should == 'ZZZZ-ZZZ'
683
+ end
684
+ end
685
+
673
686
  end
674
687
 
675
688
  describe "properties read" do
@@ -0,0 +1,13 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Mon, 22 Feb 2010 14:33:41 GMT
3
+ APP_SVR_ID: -8.-87
4
+ Expires: Thu, 01 Jan 1970 00:00:00 GMT
5
+ Cache-Control: no-cache
6
+ Cache-Control: no-store
7
+ X-PROCESSING-TIME: 256
8
+ Content-Type: application/json;charset=utf-8
9
+ Content-Language: en-US
10
+ Content-Length: 7900
11
+ Via: 1.1 rl1-sigma (Juniper Networks Application Acceleration Platform - DX 5.1.8 0)
12
+
13
+ {"pedigrees":[{"id":"ZZZZ-ZZZ","persons":[{"id":"KWZF-CFW","assertions":{"names":[{"value":{"forms":[{"fullText":"Francis Moroni Zimmerman"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"KW8W-RFD"},{"gender":"Female","id":"KW8W-RF8"}],"parent":[{"gender":"Male","id":"KW8W-RFD"},{"gender":"Female","id":"KW8W-RF8"}]}]},{"id":"KW8W-RFD","assertions":{"names":[{"value":{"forms":[{"fullText":"Charles Zimmerman"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"KN1H-HBK"},{"gender":"Female","id":"KLYL-KPZ"}],"parent":[{"gender":"Male","id":"KN1H-HBK"},{"gender":"Female","id":"KLYL-KPZ"}]}]},{"id":"KW8W-RF8","assertions":{"names":[{"value":{"forms":[{"fullText":"Sarah Ellen Felch"}]}}],"genders":[{"value":{"type":"Female"}}]},"parents":[{"parents":[{"gender":"Male","id":"2794-46L"},{"gender":"Female","id":"279W-NDV"}],"parent":[{"gender":"Male","id":"2794-46L"},{"gender":"Female","id":"279W-NDV"}]}]},{"id":"KN1H-HBK","assertions":{"names":[{"value":{"forms":[{"fullText":"Johannes Rudolf Eman Zimmerman"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"KN3F-F9B"},{"gender":"Female","id":"KN3V-9RN"}],"parent":[{"gender":"Male","id":"KN3F-F9B"},{"gender":"Female","id":"KN3V-9RN"}]}]},{"id":"KLYL-KPZ","assertions":{"names":[{"value":{"forms":[{"fullText":"Anna M. Zimmerman"}]}}],"genders":[{"value":{"type":"Female"}}]},"parents":[{"parents":[{"gender":"Male","id":"KFRD-R4F"},{"gender":"Female","id":"K6MF-LQZ"}],"parent":[{"gender":"Male","id":"KFRD-R4F"},{"gender":"Female","id":"K6MF-LQZ"}]}]},{"id":"2794-46L","assertions":{"names":[{"value":{"forms":[{"fullText":"Marshall Parker Felch"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"KJ86-3VD"},{"gender":"Female","id":"279W-XKJ"}],"parent":[{"gender":"Male","id":"KJ86-3VD"},{"gender":"Female","id":"279W-XKJ"}]}]},{"id":"279W-NDV","assertions":{"names":[{"value":{"forms":[{"fullText":"Amanda Matilda Colburn"}]}}],"genders":[{"value":{"type":"Female"}}]},"parents":[{"parents":[{"gender":"Male","id":"K29J-9BD"},{"gender":"Female","id":"KCFB-WTR"}],"parent":[{"gender":"Male","id":"K29J-9BD"},{"gender":"Female","id":"KCFB-WTR"}]}]},{"id":"KN3F-F9B","assertions":{"names":[{"value":{"forms":[{"fullText":"Johann J. Zimmermen"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"27H1-GGG"},{"gender":"Female","id":"2HKB-PCJ"}],"parent":[{"gender":"Male","id":"27H1-GGG"},{"gender":"Female","id":"2HKB-PCJ"}]}]},{"id":"KN3V-9RN","assertions":{"names":[{"value":{"forms":[{"fullText":"Elisabeth Wenger"}]}}],"genders":[{"value":{"type":"Female"}}]},"parents":[{"parents":[{"gender":"Male","id":"KGCF-GBV"},{"gender":"Female","id":"K4F8-J4P"}],"parent":[{"gender":"Male","id":"KGCF-GBV"},{"gender":"Female","id":"K4F8-J4P"}]}]},{"id":"KFRD-R4F","assertions":{"names":[{"value":{"forms":[{"fullText":"Christian Zimmerman"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"KNQP-VBQ"},{"gender":"Female","id":"KGP8-TR7"}],"parent":[{"gender":"Male","id":"KNQP-VBQ"},{"gender":"Female","id":"KGP8-TR7"}]}]},{"id":"K6MF-LQZ","assertions":{"names":[{"value":{"forms":[{"fullText":"Mary Magdalena Weiland"}]}}],"genders":[{"value":{"type":"Female"}}]}},{"id":"KJ86-3VD","assertions":{"names":[{"value":{"forms":[{"fullText":"Parker Felch"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"KJ86-3VW"},{"gender":"Female","id":"KFY6-FC8"}],"parent":[{"gender":"Male","id":"KJ86-3VW"},{"gender":"Female","id":"KFY6-FC8"}]}]},{"id":"279W-XKJ","assertions":{"names":[{"value":{"forms":[{"fullText":"Hannah Gould"}]}}],"genders":[{"value":{"type":"Female"}}]},"parents":[{"parents":[{"gender":"Male","id":"KCRJ-JJD"},{"gender":"Female","id":"KCH1-KQF"}],"parent":[{"gender":"Male","id":"KCRJ-JJD"},{"gender":"Female","id":"KCH1-KQF"}]}]},{"id":"K29J-9BD","assertions":{"names":[{"value":{"forms":[{"fullText":"Ira Coburn"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"K29J-9TC"},{"gender":"Female","id":"K29J-9Y9"}],"parent":[{"gender":"Male","id":"K29J-9TC"},{"gender":"Female","id":"K29J-9Y9"}]}]},{"id":"KCFB-WTR","assertions":{"names":[{"value":{"forms":[{"fullText":"Celana Cisco"}]}}],"genders":[{"value":{"type":"Female"}}]},"parents":[{"parents":[{"gender":"Male","id":"K83T-JZ5"},{"gender":"Female","id":"KCZ3-XGW"}],"parent":[{"gender":"Male","id":"K83T-JZ5"},{"gender":"Female","id":"KCZ3-XGW"}]}]},{"id":"27H1-GGG","assertions":{"names":[{"value":{"forms":[{"fullText":"Christen Zimmermann"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"KG9T-DVW"},{"gender":"Female","id":"KNSW-LY9"}],"parent":[{"gender":"Male","id":"KG9T-DVW"},{"gender":"Female","id":"KNSW-LY9"}]}]},{"id":"2HKB-PCJ","assertions":{"names":[{"value":{"forms":[{"fullText":"Susanna Saegersmann"}]}}],"genders":[{"value":{"type":"Female"}}]},"parents":[{"parents":[{"gender":"Male","id":"KGP8-TK8"},{"gender":"Female","id":"KGP8-TGY"}],"parent":[{"gender":"Male","id":"KGP8-TK8"},{"gender":"Female","id":"KGP8-TGY"}]}]},{"id":"KGCF-GBV","assertions":{"names":[{"value":{"forms":[{"fullText":"David Wenger"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"K4BK-G9S"},{"gender":"Female","id":"KC4S-CG3"}],"parent":[{"gender":"Male","id":"K4BK-G9S"},{"gender":"Female","id":"KC4S-CG3"}]}]},{"id":"K4F8-J4P","assertions":{"names":[{"value":{"forms":[{"fullText":"Elisabeth Zuercher"}]}}],"genders":[{"value":{"type":"Female"}}]}},{"id":"KNQP-VBQ","assertions":{"names":[{"value":{"forms":[{"fullText":"Daniel Zimmerman"}]}}],"genders":[{"value":{"type":"Male"}}]}},{"id":"KGP8-TR7","assertions":{"names":[{"value":{"forms":[{"fullText":"Anna S Gessemann"}]}}],"genders":[{"value":{"type":"Female"}}]},"parents":[{"parents":[{"gender":"Male","id":"KGP8-TK8"},{"gender":"Female","id":"KGP8-TGY"}],"parent":[{"gender":"Male","id":"KGP8-TK8"},{"gender":"Female","id":"KGP8-TGY"}]}]},{"id":"KJ86-3VW","assertions":{"names":[{"value":{"forms":[{"fullText":"Lewis Felch"}]}}],"genders":[{"value":{"type":"Male"}}]}},{"id":"KFY6-FC8","assertions":{"names":[{"value":{"forms":[{"fullText":"Mary Smith"}]}}],"genders":[{"value":{"type":"Female"}}]}},{"id":"KCRJ-JJD","assertions":{"names":[{"value":{"forms":[{"fullText":"Amos Gould"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"KHG3-V4Z"},{"gender":"Female","id":"27DZ-TRF"}],"parent":[{"gender":"Male","id":"KHG3-V4Z"},{"gender":"Female","id":"27DZ-TRF"}]}]},{"id":"KCH1-KQF","assertions":{"names":[{"value":{"forms":[{"fullText":"Rebecca Ferley"}]}}],"genders":[{"value":{"type":"Female"}}]},"parents":[{"parents":[{"gender":"Male","id":"277G-ZJN"},{"gender":"Female","id":"277L-KZG"}],"parent":[{"gender":"Male","id":"277G-ZJN"},{"gender":"Female","id":"277L-KZG"}]}]},{"id":"K29J-9TC","assertions":{"names":[{"value":{"forms":[{"fullText":"Ira Coburn"}]}}],"genders":[{"value":{"type":"Male"}}]},"parents":[{"parents":[{"gender":"Male","id":"2MKD-ZB8"},{"gender":"Female","id":"2MKD-Z1L"}],"parent":[{"gender":"Male","id":"2MKD-ZB8"},{"gender":"Female","id":"2MKD-Z1L"}]}]},{"id":"K29J-9Y9","assertions":{"names":[{"value":{"forms":[{"fullText":"Mercy Mason"}]}}],"genders":[{"value":{"type":"Female"}}]},"parents":[{"parents":[{"gender":"Male","id":"K426-LCM"}],"parent":[{"gender":"Male","id":"K426-LCM"}]}]},{"id":"K83T-JZ5","assertions":{"names":[{"value":{"forms":[{"fullText":"Richard Cisco"}]}}],"genders":[{"value":{"type":"Male"}}]}},{"id":"KCZ3-XGW","assertions":{"names":[{"value":{"forms":[{"fullText":"Celia Thomas"}]}}],"genders":[{"value":{"type":"Female"}}]}}],"requestedId":"KWZF-CFW"}],"version":"2.0.20091103.5215","statusCode":200,"statusMessage":"OK"}
@@ -1,7 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
2
  require 'ruby-fs-stack/identity'
3
3
 
4
- describe IdentityV1::Communicator do
4
+ describe IdentityV2::Communicator do
5
5
  include HttpCommunicatorHelper # found in the spec_helper
6
6
 
7
7
  def do_get(url, credentials = {})
@@ -14,10 +14,12 @@ describe IdentityV1::Communicator do
14
14
  end
15
15
 
16
16
  it "should have an extended identity_v1 method on the communicator" do
17
- @com.identity_v1.should be_instance_of(IdentityV1::Communicator)
17
+ @com.identity_v1.should be_instance_of(IdentityV2::Communicator)
18
18
  end
19
19
 
20
- describe "authenticate" do
20
+ # At this point, we're making an alias on identity_v1 to just use identity_v2 so that you don't have to make
21
+ # that many code changes in your clients
22
+ describe "authenticate (v1)" do
21
23
  before(:each) do
22
24
  filename = File.join(File.dirname(__FILE__),'json','login.js')
23
25
  @body = File.read(filename)
@@ -27,8 +29,8 @@ describe IdentityV1::Communicator do
27
29
  @request.should_receive(:[]=).with('User-Agent',@com.user_agent)
28
30
  end
29
31
 
30
- it "should make a call to /identity/v1/login" do
31
- url = "/identity/v1/login?key=KEY"
32
+ it "should make a call to /identity/v2/login" do
33
+ url = "/identity/v2/login?key=KEY"
32
34
  Net::HTTP::Get.should_receive(:new).with(url+"&dataFormat=application/json").and_return(@request)
33
35
  response = @com.identity_v1.authenticate(:username => 'user', :password => 'pass')
34
36
  end
@@ -40,7 +42,7 @@ describe IdentityV1::Communicator do
40
42
 
41
43
  it "should set the communicator's session to the logged in session" do
42
44
  @com.identity_v1.authenticate(:username => 'user', :password => 'pass')
43
- @com.session.should == 'USYS6325F49E7E47C181EA7E73E897F9A8ED.ptap009-034'
45
+ @com.session.should == 'USYS5E027A421416AA29BA0A348A84CEA5C9_nbci-045-034'
44
46
  end
45
47
 
46
48
  it "should raise RubyFsStack::Unauthorized if the login was not successful" do
@@ -53,7 +55,7 @@ describe IdentityV1::Communicator do
53
55
 
54
56
  describe "login" do
55
57
  it "should accept the login method and behave the same way" do
56
- url = "/identity/v1/login?key=KEY"
58
+ url = "/identity/v2/login?key=KEY"
57
59
  Net::HTTP::Get.should_receive(:new).with(url+"&dataFormat=application/json").and_return(@request)
58
60
  response = @com.identity_v1.login(:username => 'user', :password => 'pass')
59
61
  end
@@ -65,7 +67,7 @@ describe IdentityV1::Communicator do
65
67
 
66
68
  it "should set the communicator's session to the logged in session" do
67
69
  @com.identity_v1.login(:username => 'user', :password => 'pass')
68
- @com.session.should == 'USYS6325F49E7E47C181EA7E73E897F9A8ED.ptap009-034'
70
+ @com.session.should == 'USYS5E027A421416AA29BA0A348A84CEA5C9_nbci-045-034'
69
71
  end
70
72
 
71
73
  it "should raise RubyFsStack::Unauthorized if the login was not successful" do
@@ -79,4 +81,66 @@ describe IdentityV1::Communicator do
79
81
  end
80
82
  end
81
83
 
84
+ describe "authenticate (v2)" do
85
+ before(:each) do
86
+ filename = File.join(File.dirname(__FILE__),'json','login.js')
87
+ @body = File.read(filename)
88
+ @mock_response = mock('HTTP::Response', :body => @body, :code => '200')
89
+ @http.should_receive(:start).and_return(@mock_response)
90
+ @request.should_receive(:basic_auth).with('user','pass')
91
+ @request.should_receive(:[]=).with('User-Agent',@com.user_agent)
92
+ end
93
+
94
+ it "should make a call to /identity/v2/login" do
95
+ url = "/identity/v2/login?key=KEY"
96
+ Net::HTTP::Get.should_receive(:new).with(url+"&dataFormat=application/json").and_return(@request)
97
+ response = @com.identity_v2.authenticate(:username => 'user', :password => 'pass')
98
+ end
99
+
100
+ it "should return true if successful" do
101
+ success = @com.identity_v2.authenticate(:username => 'user', :password => 'pass')
102
+ success.should == true
103
+ end
104
+
105
+ it "should set the communicator's session to the logged in session" do
106
+ @com.identity_v2.authenticate(:username => 'user', :password => 'pass')
107
+ @com.session.should == 'USYS5E027A421416AA29BA0A348A84CEA5C9_nbci-045-034'
108
+ end
109
+
110
+ it "should raise RubyFsStack::Unauthorized if the login was not successful" do
111
+ @mock_response.stub!(:code).and_return('401')
112
+ @mock_response.stub!(:message).and_return('Invalid name or password.')
113
+ lambda{
114
+ @com.identity_v2.authenticate(:username => 'user', :password => 'pass')
115
+ }.should raise_error(RubyFsStack::Unauthorized)
116
+ end
117
+
118
+ describe "login" do
119
+ it "should accept the login method and behave the same way" do
120
+ url = "/identity/v2/login?key=KEY"
121
+ Net::HTTP::Get.should_receive(:new).with(url+"&dataFormat=application/json").and_return(@request)
122
+ response = @com.identity_v2.login(:username => 'user', :password => 'pass')
123
+ end
124
+
125
+ it "should return true if successful" do
126
+ success = @com.identity_v2.login(:username => 'user', :password => 'pass')
127
+ success.should == true
128
+ end
129
+
130
+ it "should set the communicator's session to the logged in session" do
131
+ @com.identity_v2.login(:username => 'user', :password => 'pass')
132
+ @com.session.should == 'USYS5E027A421416AA29BA0A348A84CEA5C9_nbci-045-034'
133
+ end
134
+
135
+ it "should raise RubyFsStack::Unauthorized if the login was not successful" do
136
+ @mock_response.stub!(:code).and_return('401')
137
+ @mock_response.stub!(:message).and_return('Invalid name or password.')
138
+ lambda{
139
+ @com.identity_v2.login(:username => 'user', :password => 'pass')
140
+ }.should raise_error(RubyFsStack::Unauthorized)
141
+ end
142
+
143
+ end
144
+ end
145
+
82
146
  end
@@ -1 +1 @@
1
- {"session":{"id":"USYS6325F49E7E47C181EA7E73E897F9A8ED.ptap009-034"},"version":"1.3.20090928.4855","statusCode":200,"statusMessage":"OK"}
1
+ {"session":{"id":"USYS5E027A421416AA29BA0A348A84CEA5C9_nbci-045-034"},"statusCode":200,"statusMessage":"OK","version":"2.7.20100927.6249"}
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-fs-stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 5
8
+ - 2
9
+ version: 0.5.2
5
10
  platform: ruby
6
11
  authors:
7
12
  - Jimmy Zimmerman
@@ -9,29 +14,33 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-05-17 00:00:00 -06:00
17
+ date: 2010-10-29 00:00:00 -06: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
+ - 0
23
29
  version: "0"
24
- version:
30
+ type: :development
31
+ version_requirements: *id001
25
32
  - !ruby/object:Gem::Dependency
26
33
  name: fakeweb
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
34
+ prerelease: false
35
+ requirement: &id002 !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
39
+ segments:
40
+ - 0
33
41
  version: "0"
34
- version:
42
+ type: :development
43
+ version_requirements: *id002
35
44
  description: A library that enables you to read and update information with the new.familysearch.org API.
36
45
  email: jimmy.zimmerman@gmail.com
37
46
  executables: []
@@ -84,6 +93,7 @@ files:
84
93
  - spec/ruby-fs-stack/familytree/json/fakeweb_contributor.txt
85
94
  - spec/ruby-fs-stack/familytree/json/fakeweb_pedigree.txt
86
95
  - spec/ruby-fs-stack/familytree/json/fakeweb_pedigree2.txt
96
+ - spec/ruby-fs-stack/familytree/json/fakeweb_pedigree3.txt
87
97
  - spec/ruby-fs-stack/familytree/json/fakeweb_properties.txt
88
98
  - spec/ruby-fs-stack/familytree/json/match_KW3B-NNM.js
89
99
  - spec/ruby-fs-stack/familytree/json/note_create_response.js
@@ -125,18 +135,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
135
  requirements:
126
136
  - - ">="
127
137
  - !ruby/object:Gem::Version
138
+ segments:
139
+ - 0
128
140
  version: "0"
129
- version:
130
141
  required_rubygems_version: !ruby/object:Gem::Requirement
131
142
  requirements:
132
143
  - - ">="
133
144
  - !ruby/object:Gem::Version
145
+ segments:
146
+ - 0
134
147
  version: "0"
135
- version:
136
148
  requirements:
137
149
  - This gem requires a json gem (json, json_pure, or json-jruby).
138
150
  rubyforge_project:
139
- rubygems_version: 1.3.5
151
+ rubygems_version: 1.3.6
140
152
  signing_key:
141
153
  specification_version: 3
142
154
  summary: Ruby wrapper for all FamilySearch APIs.