allscripts_unity_client 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. data/.gitignore +20 -0
  2. data/.travis.yml +3 -0
  3. data/Gemfile +2 -0
  4. data/LICENSE +22 -0
  5. data/README.md +180 -0
  6. data/Rakefile +7 -0
  7. data/allscripts_unity_client.gemspec +39 -0
  8. data/lib/allscripts_unity_client.rb +43 -0
  9. data/lib/allscripts_unity_client/client.rb +594 -0
  10. data/lib/allscripts_unity_client/client_driver.rb +95 -0
  11. data/lib/allscripts_unity_client/json_client_driver.rb +110 -0
  12. data/lib/allscripts_unity_client/json_unity_request.rb +33 -0
  13. data/lib/allscripts_unity_client/json_unity_response.rb +27 -0
  14. data/lib/allscripts_unity_client/soap_client_driver.rb +128 -0
  15. data/lib/allscripts_unity_client/timezone.rb +99 -0
  16. data/lib/allscripts_unity_client/unity_request.rb +63 -0
  17. data/lib/allscripts_unity_client/unity_response.rb +110 -0
  18. data/lib/allscripts_unity_client/utilities.rb +66 -0
  19. data/lib/allscripts_unity_client/version.rb +3 -0
  20. data/spec/allscripts_unity_client_spec.rb +57 -0
  21. data/spec/client_driver_spec.rb +71 -0
  22. data/spec/client_spec.rb +406 -0
  23. data/spec/factories/allscripts_unity_client_parameters_factory.rb +13 -0
  24. data/spec/factories/client_driver_factory.rb +14 -0
  25. data/spec/factories/client_factory.rb +7 -0
  26. data/spec/factories/json_client_driver_factory.rb +3 -0
  27. data/spec/factories/json_unity_request_factory.rb +3 -0
  28. data/spec/factories/json_unity_response_factory.rb +3 -0
  29. data/spec/factories/magic_request_factory.rb +33 -0
  30. data/spec/factories/soap_client_driver_factory.rb +3 -0
  31. data/spec/factories/timezone_factory.rb +7 -0
  32. data/spec/factories/unity_request_factory.rb +10 -0
  33. data/spec/factories/unity_response_factory.rb +8 -0
  34. data/spec/fixtures/attributes_hash.yml +15 -0
  35. data/spec/fixtures/date_hash.yml +8 -0
  36. data/spec/fixtures/date_string_hash.yml +8 -0
  37. data/spec/fixtures/error.json +3 -0
  38. data/spec/fixtures/get_providers.json +69 -0
  39. data/spec/fixtures/get_providers.xml +119 -0
  40. data/spec/fixtures/get_providers_json.yml +65 -0
  41. data/spec/fixtures/get_providers_xml.yml +270 -0
  42. data/spec/fixtures/get_security_token.json +1 -0
  43. data/spec/fixtures/get_security_token.xml +7 -0
  44. data/spec/fixtures/get_server_info.json +10 -0
  45. data/spec/fixtures/get_server_info.xml +40 -0
  46. data/spec/fixtures/get_server_info_json.yml +8 -0
  47. data/spec/fixtures/get_server_info_xml.yml +55 -0
  48. data/spec/fixtures/no_attributes_hash.yml +7 -0
  49. data/spec/fixtures/retire_security_token.json +1 -0
  50. data/spec/fixtures/retire_security_token.xml +5 -0
  51. data/spec/fixtures/soap_fault.xml +13 -0
  52. data/spec/fixtures/string_keyed_hash.yml +8 -0
  53. data/spec/fixtures/symbol_keyed_hash.yml +8 -0
  54. data/spec/json_client_driver_spec.rb +209 -0
  55. data/spec/json_unity_request_spec.rb +37 -0
  56. data/spec/json_unity_response_spec.rb +44 -0
  57. data/spec/soap_client_driver_spec.rb +201 -0
  58. data/spec/spec_helper.rb +44 -0
  59. data/spec/support/fixture_loader.rb +22 -0
  60. data/spec/support/shared_examples_for_client_driver.rb +139 -0
  61. data/spec/support/shared_examples_for_unity_request.rb +94 -0
  62. data/spec/support/shared_examples_for_unity_response.rb +26 -0
  63. data/spec/timezone_spec.rb +161 -0
  64. data/spec/unity_request_spec.rb +37 -0
  65. data/spec/unity_response_spec.rb +36 -0
  66. data/spec/utilities_spec.rb +69 -0
  67. metadata +323 -0
@@ -0,0 +1,26 @@
1
+ shared_examples 'a unity response' do
2
+ let(:attributes_hash) { FixtureLoader.load_yaml("attributes_hash.yml") }
3
+ let(:no_attributes_hash) { FixtureLoader.load_yaml("no_attributes_hash.yml") }
4
+ let(:date_string_hash) { FixtureLoader.load_yaml("date_string_hash.yml") }
5
+ let(:date_hash) { FixtureLoader.load_yaml("date_hash.yml") }
6
+
7
+ describe '#strip_attributes' do
8
+ context 'when given nil' do
9
+ it { expect(subject.send(:strip_attributes, nil)).to be_nil }
10
+ end
11
+
12
+ it 'recursively strips attribute keys off hashes' do
13
+ expect(subject.send(:strip_attributes, attributes_hash)).to eq(no_attributes_hash)
14
+ end
15
+ end
16
+
17
+ describe '#convert_dates_to_utc' do
18
+ context 'when given nil' do
19
+ it { expect(subject.send(:convert_dates_to_utc, nil)).to be_nil }
20
+ end
21
+
22
+ it 'recursively converts date strings' do
23
+ expect(subject.send(:convert_dates_to_utc, date_string_hash)).to eq(date_hash)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,161 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Timezone' do
4
+ subject { FactoryGirl.build(:timezone) }
5
+
6
+ let(:positive_timezone) { FactoryGirl.build(:timezone, :zone_identifier => "Asia/Jakarta") }
7
+ let(:utc_timezone) { FactoryGirl.build(:timezone, :zone_identifier => "UTC") }
8
+ let(:local_string) { "2013-10-19T17:00:00-07:00" }
9
+ let(:date) { Date.parse(local_string) }
10
+ let(:local_time) { Time.parse("2013-10-19T17:00:00") }
11
+ let(:local_datetime) { DateTime.parse(local_string) }
12
+ let(:utc_string) { "2013-10-20T00:00:00+00:00" }
13
+ let(:utc_time) { Time.parse("2013-10-20T00:00:00") }
14
+ let(:utc_datetime) { DateTime.parse(utc_string) }
15
+
16
+ def time_to_s(time)
17
+ time.strftime("%FT%T")
18
+ end
19
+
20
+ describe '#initialize' do
21
+ context 'when nil is given' do
22
+ it 'raises ArgumentError' do
23
+ expect { FactoryGirl.build(:timezone, :zone_identifier => nil) }.to raise_error(ArgumentError)
24
+ end
25
+ end
26
+
27
+ context 'when an invalid TZInfo zone is given' do
28
+ it 'rasies TZInfo::InvalidTimezoneIdentifier' do
29
+ expect { FactoryGirl.build(:timezone, :zone_identifier => "") }.to raise_error(TZInfo::InvalidTimezoneIdentifier)
30
+ end
31
+ end
32
+ end
33
+
34
+ describe '#local_to_utc' do
35
+ it 'calls #convert_with_timezone with :local_to_utc' do
36
+ allow(subject).to receive(:convert_with_timezone).and_return(local_string)
37
+ subject.local_to_utc(local_string)
38
+ expect(subject).to have_received(:convert_with_timezone).with(:local_to_utc, local_string)
39
+ end
40
+ end
41
+
42
+ describe '#utc_to_local' do
43
+ it 'calls #convert_with_timezone with :utc_to_local' do
44
+ allow(subject).to receive(:convert_with_timezone).and_return(local_string)
45
+ subject.utc_to_local(local_string)
46
+ expect(subject).to have_received(:convert_with_timezone).with(:utc_to_local, local_string)
47
+ end
48
+ end
49
+
50
+ describe '#convert_with_timezone' do
51
+ context 'when given nil' do
52
+ it { expect(subject.send(:convert_with_timezone, nil)).to be_nil }
53
+ end
54
+
55
+ context 'when given :local_to_utc and a Date' do
56
+ it 'returns a Date' do
57
+ expect(subject.send(:convert_with_timezone, :local_to_utc, date)).to be_an_instance_of(Date)
58
+ end
59
+ end
60
+
61
+ context 'when given :local_to_utc and a Time' do
62
+ it 'returns a Date' do
63
+ expect(subject.send(:convert_with_timezone, :local_to_utc, local_time)).to be_an_instance_of(Time)
64
+ end
65
+ end
66
+
67
+ context 'when given :local_to_utc and a DateTime' do
68
+ it 'returns a DateTime' do
69
+ expect(subject.send(:convert_with_timezone, :local_to_utc, local_datetime)).to be_an_instance_of(DateTime)
70
+ end
71
+ end
72
+
73
+ context 'when given :local_to_utc and a String' do
74
+ it 'returns a DateTime' do
75
+ expect(subject.send(:convert_with_timezone, :local_to_utc, local_string)).to be_an_instance_of(DateTime)
76
+ end
77
+ end
78
+
79
+ context 'when given :utc_to_local and a Date' do
80
+ it 'returns a Date' do
81
+ expect(subject.send(:convert_with_timezone, :utc_to_local, date)).to be_an_instance_of(Date)
82
+ end
83
+ end
84
+
85
+ context 'when given :utc_to_local and a Time' do
86
+ it 'returns a Date' do
87
+ expect(subject.send(:convert_with_timezone, :utc_to_local, utc_time)).to be_an_instance_of(Time)
88
+ end
89
+ end
90
+
91
+ context 'when given :utc_to_local and a DateTime' do
92
+ it 'returns a DateTime' do
93
+ expect(subject.send(:convert_with_timezone, :utc_to_local, utc_datetime)).to be_an_instance_of(DateTime)
94
+ end
95
+ end
96
+
97
+ context 'when given :utc_to_local and a String' do
98
+ it 'returns a DateTime' do
99
+ expect(subject.send(:convert_with_timezone, :utc_to_local, utc_string)).to be_an_instance_of(DateTime)
100
+ end
101
+ end
102
+
103
+ describe 'converts local time to UTC' do
104
+ context 'when given an ISO8601 date string' do
105
+ it { expect(subject.send(:convert_with_timezone, :local_to_utc, local_string)).to eq(utc_datetime) }
106
+ end
107
+
108
+ context 'when given a Date' do
109
+ it { expect(subject.send(:convert_with_timezone, :local_to_utc, date)).to eq(date) }
110
+ end
111
+
112
+ context 'when given a local Time' do
113
+ it { expect(time_to_s(subject.send(:convert_with_timezone, :local_to_utc, local_time))).to eq(time_to_s(utc_time)) }
114
+ end
115
+
116
+ context 'when given a local DateTime' do
117
+ it { expect(subject.send(:convert_with_timezone, :local_to_utc, local_datetime)).to eq(utc_datetime) }
118
+ end
119
+ end
120
+
121
+ describe 'converts UTC time to local' do
122
+ context 'when given an ISO8601 date string' do
123
+ it { expect(subject.send(:convert_with_timezone, :utc_to_local, utc_string)).to eq(local_datetime) }
124
+ end
125
+
126
+ context 'when given a Date' do
127
+ it { expect(subject.send(:convert_with_timezone, :utc_to_local, date)).to eq(date) }
128
+ end
129
+
130
+ context 'when given a local Time' do
131
+ it { expect(time_to_s(subject.send(:convert_with_timezone, :utc_to_local, utc_time))).to eq(time_to_s(local_time)) }
132
+ end
133
+
134
+ context 'when given a local DateTime' do
135
+ it { expect(subject.send(:convert_with_timezone, :utc_to_local, utc_datetime)).to eq(local_datetime) }
136
+ end
137
+ end
138
+ end
139
+
140
+ describe "#iso8601_with_offset" do
141
+ context 'when given nil' do
142
+ it 'returns nil' do
143
+ expect(subject.send(:iso8601_with_offset, nil)).to be_nil
144
+ end
145
+ end
146
+
147
+ describe 'appends correct ISO8601 timezone offset string' do
148
+ context 'when UTC' do
149
+ it { expect(utc_timezone.send(:iso8601_with_offset, utc_datetime)).to match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/) }
150
+ end
151
+
152
+ context 'when timezone offset is negative' do
153
+ it { expect(subject.send(:iso8601_with_offset, utc_datetime)).to match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}-07:00$/) }
154
+ end
155
+
156
+ context 'when timezone offset is positive' do
157
+ it { expect(positive_timezone.send(:iso8601_with_offset, utc_datetime)).to match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+07:00$/) }
158
+ end
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'UnityRequest' do
4
+ it_behaves_like 'a unity request'
5
+
6
+ subject { FactoryGirl.build(:unity_request) }
7
+
8
+ describe '#initialize' do
9
+ context 'when nil is given for parameters' do
10
+ it { expect { FactoryGirl.build(:unity_request, :parameters => nil) }.to raise_error(ArgumentError) }
11
+ end
12
+
13
+ context 'when nil is given for timezone' do
14
+ it { expect { FactoryGirl.build(:unity_request, :timezone => nil) }.to raise_error(ArgumentError) }
15
+ end
16
+
17
+ context 'when nil is given for appname' do
18
+ it { expect { FactoryGirl.build(:unity_request, :appname => nil) }.to raise_error(ArgumentError) }
19
+ end
20
+
21
+ context 'when nil is given for security_token' do
22
+ it { expect { FactoryGirl.build(:unity_request, :security_token => nil) }.to raise_error(ArgumentError) }
23
+ end
24
+ end
25
+
26
+ describe '#to_hash' do
27
+ it ':userid maps to UserID' do
28
+ subject.parameters = FactoryGirl.build(:magic_request, :userid => 'UserID')
29
+ expect(subject.to_hash['UserID']).to eq('UserID')
30
+ end
31
+
32
+ it ':data maps to Base64 encoded data' do
33
+ subject.parameters = FactoryGirl.build(:magic_request, :data => 'data')
34
+ expect(subject.to_hash['data']).to eq(['data'].pack('m'))
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'UnityResponse' do
4
+ it_behaves_like 'a unity response'
5
+
6
+ subject { FactoryGirl.build(:unity_response, :response => get_server_info) }
7
+
8
+ let(:get_server_info) { FixtureLoader.load_yaml("get_server_info_xml.yml") }
9
+
10
+ describe '#initialize' do
11
+ context 'when nil is given for response' do
12
+ it { expect { FactoryGirl.build(:unity_response, :response => nil) }.to raise_error(ArgumentError) }
13
+ end
14
+
15
+ context 'when nil is given for timezone' do
16
+ it { expect { FactoryGirl.build(:unity_response, :timezone => nil) }.to raise_error(ArgumentError) }
17
+ end
18
+ end
19
+
20
+ describe '#to_hash' do
21
+ context 'when given a GetServerInfo SOAP response hash' do
22
+ it 'strips Unity SOAP wrappers' do
23
+ expect(subject.to_hash[:server_time_zone]).to_not be_nil
24
+ end
25
+
26
+ context 'when given nil magic_result' do
27
+ it 'returns []' do
28
+ magic_response = get_server_info
29
+ magic_response[:magic_response][:magic_result][:diffgram] = nil
30
+ subject.response = magic_response
31
+ expect(subject.to_hash).to eq([])
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Utilities' do
4
+ subject { AllscriptsUnityClient::Utilities }
5
+
6
+ let(:date_string) { '2013-02-15' }
7
+ let(:date) { Date.parse(date_string) }
8
+ let(:datetime_string) { '2013-02-15T00:00:00Z' }
9
+ let(:datetime) { DateTime.parse(datetime_string) }
10
+
11
+ let(:string) { 'string' }
12
+ let(:string_array) { ['string'] }
13
+ let(:base64_string) { "c3RyaW5n\n" }
14
+
15
+ let(:string_keyed_hash) { FixtureLoader.load_yaml("string_keyed_hash.yml") }
16
+ let(:symbol_keyed_hash) { FixtureLoader.load_yaml("symbol_keyed_hash.yml") }
17
+
18
+ describe '.try_to_encode_as_date' do
19
+ context 'when given nil' do
20
+ it { expect(subject.try_to_encode_as_date(nil)).to be_nil }
21
+ end
22
+
23
+ context 'when given date string' do
24
+ it 'returns the string as a Date' do
25
+ expect(subject.try_to_encode_as_date(date_string)).to eq(date)
26
+ end
27
+ end
28
+
29
+ context 'when given date time string' do
30
+ it 'returns the string as a DateTime' do
31
+ expect(subject.try_to_encode_as_date(datetime_string)).to eq(datetime)
32
+ end
33
+ end
34
+
35
+ context 'when given a non-date string' do
36
+ it 'returns that string' do
37
+ expect(subject.try_to_encode_as_date(string)).to eq(string)
38
+ end
39
+ end
40
+ end
41
+
42
+ describe '.encode_data' do
43
+ context 'when given nil' do
44
+ it { expect(subject.encode_data(nil)).to be_nil }
45
+ end
46
+
47
+ context 'when given a string' do
48
+ it 'returns a base64 encoded version of that string' do
49
+ expect(subject.encode_data(string)).to eq(base64_string)
50
+ end
51
+ end
52
+
53
+ context 'when given an array of strings' do
54
+ it 'returns a base64 encoded version of that string' do
55
+ expect(subject.encode_data(string_array)).to eq(base64_string)
56
+ end
57
+ end
58
+ end
59
+
60
+ describe '.recursively_symbolize_keys' do
61
+ context 'when given nil' do
62
+ it { expect(subject.recursively_symbolize_keys(nil)).to be_nil }
63
+ end
64
+
65
+ context 'when given a hash with string keys' do
66
+ it { expect(subject.recursively_symbolize_keys(string_keyed_hash)).to eq(symbol_keyed_hash) }
67
+ end
68
+ end
69
+ end
metadata ADDED
@@ -0,0 +1,323 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: allscripts_unity_client
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ash Gupta
9
+ - Neil Goodman
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-10-31 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: savon
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 2.3.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 2.3.0
31
+ - !ruby/object:Gem::Dependency
32
+ name: httpi
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 2.1.0
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 2.1.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: net-http-persistent
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.9.0
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 2.9.0
63
+ - !ruby/object:Gem::Dependency
64
+ name: tzinfo
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 0.3.29
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 0.3.29
79
+ - !ruby/object:Gem::Dependency
80
+ name: tzinfo-data
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 1.2013.7
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 1.2013.7
95
+ - !ruby/object:Gem::Dependency
96
+ name: nokogiri
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ version: 1.5.0
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 1.5.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: factory_girl
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: 4.2.0
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ version: 4.2.0
127
+ - !ruby/object:Gem::Dependency
128
+ name: rake
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ~>
133
+ - !ruby/object:Gem::Version
134
+ version: 10.1.0
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ~>
141
+ - !ruby/object:Gem::Version
142
+ version: 10.1.0
143
+ - !ruby/object:Gem::Dependency
144
+ name: faker
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ~>
149
+ - !ruby/object:Gem::Version
150
+ version: 1.2.0
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ~>
157
+ - !ruby/object:Gem::Version
158
+ version: 1.2.0
159
+ - !ruby/object:Gem::Dependency
160
+ name: rspec
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ~>
165
+ - !ruby/object:Gem::Version
166
+ version: 2.14.1
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ~>
173
+ - !ruby/object:Gem::Version
174
+ version: 2.14.1
175
+ - !ruby/object:Gem::Dependency
176
+ name: simplecov
177
+ requirement: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ~>
181
+ - !ruby/object:Gem::Version
182
+ version: 0.7.1
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ~>
189
+ - !ruby/object:Gem::Version
190
+ version: 0.7.1
191
+ - !ruby/object:Gem::Dependency
192
+ name: webmock
193
+ requirement: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ~>
197
+ - !ruby/object:Gem::Version
198
+ version: 1.15.0
199
+ type: :development
200
+ prerelease: false
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ~>
205
+ - !ruby/object:Gem::Version
206
+ version: 1.15.0
207
+ - !ruby/object:Gem::Dependency
208
+ name: coveralls
209
+ requirement: !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ~>
213
+ - !ruby/object:Gem::Version
214
+ version: 0.7.0
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ~>
221
+ - !ruby/object:Gem::Version
222
+ version: 0.7.0
223
+ description: Provides a simple interface to the Allscripts Unity API using JSON or
224
+ SOAP. Developed at healthfinch, Inc. http://healthfinch.com
225
+ email:
226
+ - ash.gupta@healthfinch.com
227
+ - neil@healthfinch.com
228
+ executables: []
229
+ extensions: []
230
+ extra_rdoc_files: []
231
+ files:
232
+ - .gitignore
233
+ - .travis.yml
234
+ - Gemfile
235
+ - LICENSE
236
+ - README.md
237
+ - Rakefile
238
+ - allscripts_unity_client.gemspec
239
+ - lib/allscripts_unity_client.rb
240
+ - lib/allscripts_unity_client/client.rb
241
+ - lib/allscripts_unity_client/client_driver.rb
242
+ - lib/allscripts_unity_client/json_client_driver.rb
243
+ - lib/allscripts_unity_client/json_unity_request.rb
244
+ - lib/allscripts_unity_client/json_unity_response.rb
245
+ - lib/allscripts_unity_client/soap_client_driver.rb
246
+ - lib/allscripts_unity_client/timezone.rb
247
+ - lib/allscripts_unity_client/unity_request.rb
248
+ - lib/allscripts_unity_client/unity_response.rb
249
+ - lib/allscripts_unity_client/utilities.rb
250
+ - lib/allscripts_unity_client/version.rb
251
+ - spec/allscripts_unity_client_spec.rb
252
+ - spec/client_driver_spec.rb
253
+ - spec/client_spec.rb
254
+ - spec/factories/allscripts_unity_client_parameters_factory.rb
255
+ - spec/factories/client_driver_factory.rb
256
+ - spec/factories/client_factory.rb
257
+ - spec/factories/json_client_driver_factory.rb
258
+ - spec/factories/json_unity_request_factory.rb
259
+ - spec/factories/json_unity_response_factory.rb
260
+ - spec/factories/magic_request_factory.rb
261
+ - spec/factories/soap_client_driver_factory.rb
262
+ - spec/factories/timezone_factory.rb
263
+ - spec/factories/unity_request_factory.rb
264
+ - spec/factories/unity_response_factory.rb
265
+ - spec/fixtures/attributes_hash.yml
266
+ - spec/fixtures/date_hash.yml
267
+ - spec/fixtures/date_string_hash.yml
268
+ - spec/fixtures/error.json
269
+ - spec/fixtures/get_providers.json
270
+ - spec/fixtures/get_providers.xml
271
+ - spec/fixtures/get_providers_json.yml
272
+ - spec/fixtures/get_providers_xml.yml
273
+ - spec/fixtures/get_security_token.json
274
+ - spec/fixtures/get_security_token.xml
275
+ - spec/fixtures/get_server_info.json
276
+ - spec/fixtures/get_server_info.xml
277
+ - spec/fixtures/get_server_info_json.yml
278
+ - spec/fixtures/get_server_info_xml.yml
279
+ - spec/fixtures/no_attributes_hash.yml
280
+ - spec/fixtures/retire_security_token.json
281
+ - spec/fixtures/retire_security_token.xml
282
+ - spec/fixtures/soap_fault.xml
283
+ - spec/fixtures/string_keyed_hash.yml
284
+ - spec/fixtures/symbol_keyed_hash.yml
285
+ - spec/json_client_driver_spec.rb
286
+ - spec/json_unity_request_spec.rb
287
+ - spec/json_unity_response_spec.rb
288
+ - spec/soap_client_driver_spec.rb
289
+ - spec/spec_helper.rb
290
+ - spec/support/fixture_loader.rb
291
+ - spec/support/shared_examples_for_client_driver.rb
292
+ - spec/support/shared_examples_for_unity_request.rb
293
+ - spec/support/shared_examples_for_unity_response.rb
294
+ - spec/timezone_spec.rb
295
+ - spec/unity_request_spec.rb
296
+ - spec/unity_response_spec.rb
297
+ - spec/utilities_spec.rb
298
+ homepage: https://github.com/healthfinch/allscripts-unity-client
299
+ licenses:
300
+ - MIT
301
+ post_install_message:
302
+ rdoc_options: []
303
+ require_paths:
304
+ - lib
305
+ required_ruby_version: !ruby/object:Gem::Requirement
306
+ none: false
307
+ requirements:
308
+ - - ~>
309
+ - !ruby/object:Gem::Version
310
+ version: '1.9'
311
+ required_rubygems_version: !ruby/object:Gem::Requirement
312
+ none: false
313
+ requirements:
314
+ - - ! '>='
315
+ - !ruby/object:Gem::Version
316
+ version: '0'
317
+ requirements: []
318
+ rubyforge_project:
319
+ rubygems_version: 1.8.23
320
+ signing_key:
321
+ specification_version: 3
322
+ summary: Allscripts Unity API client
323
+ test_files: []