allscripts_unity_client 1.0.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.
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: []