allscripts_unity_client 1.3.4 → 2.0.0

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 (45) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +66 -66
  3. data/allscripts_unity_client.gemspec +32 -32
  4. data/lib/allscripts_unity_client/client.rb +215 -205
  5. data/lib/allscripts_unity_client/client_driver.rb +15 -42
  6. data/lib/allscripts_unity_client/client_options.rb +68 -0
  7. data/lib/allscripts_unity_client/json_client_driver.rb +46 -50
  8. data/lib/allscripts_unity_client/json_unity_request.rb +20 -20
  9. data/lib/allscripts_unity_client/json_unity_response.rb +1 -1
  10. data/lib/allscripts_unity_client/soap_client_driver.rb +29 -29
  11. data/lib/allscripts_unity_client/timezone.rb +15 -10
  12. data/lib/allscripts_unity_client/unity_request.rb +17 -17
  13. data/lib/allscripts_unity_client/unity_response.rb +3 -3
  14. data/lib/allscripts_unity_client/utilities.rb +5 -5
  15. data/lib/allscripts_unity_client/version.rb +1 -1
  16. data/lib/allscripts_unity_client.rb +21 -25
  17. data/spec/allscripts_unity_client_spec.rb +12 -16
  18. data/spec/client_driver_spec.rb +1 -49
  19. data/spec/client_options_spec.rb +134 -0
  20. data/spec/client_spec.rb +9 -9
  21. data/spec/factories/allscripts_unity_client_parameters_factory.rb +2 -2
  22. data/spec/factories/client_driver_factory.rb +4 -5
  23. data/spec/factories/client_factory.rb +2 -2
  24. data/spec/factories/client_options.rb +13 -0
  25. data/spec/factories/json_client_driver_factory.rb +1 -1
  26. data/spec/factories/json_unity_request_factory.rb +1 -1
  27. data/spec/factories/json_unity_response_factory.rb +1 -1
  28. data/spec/factories/magic_request_factory.rb +4 -4
  29. data/spec/factories/soap_client_driver_factory.rb +1 -1
  30. data/spec/factories/timezone_factory.rb +2 -2
  31. data/spec/factories/unity_request_factory.rb +3 -3
  32. data/spec/factories/unity_response_factory.rb +2 -2
  33. data/spec/json_client_driver_spec.rb +18 -86
  34. data/spec/json_unity_request_spec.rb +7 -7
  35. data/spec/json_unity_response_spec.rb +6 -6
  36. data/spec/soap_client_driver_spec.rb +20 -82
  37. data/spec/spec_helper.rb +5 -9
  38. data/spec/support/shared_examples_for_client_driver.rb +37 -58
  39. data/spec/support/shared_examples_for_unity_request.rb +13 -13
  40. data/spec/support/shared_examples_for_unity_response.rb +4 -4
  41. data/spec/timezone_spec.rb +31 -11
  42. data/spec/unity_request_spec.rb +7 -7
  43. data/spec/unity_response_spec.rb +4 -4
  44. data/spec/utilities_spec.rb +2 -2
  45. metadata +30 -57
@@ -2,84 +2,57 @@ require 'logger'
2
2
 
3
3
  module AllscriptsUnityClient
4
4
  class ClientDriver
5
- LOG_FILE = "logs/unity_client.log"
5
+ LOG_FILE = 'logs/unity_client.log'
6
6
 
7
- attr_accessor :username, :password, :appname, :base_unity_url, :proxy, :security_token, :timezone, :logger, :log
7
+ attr_accessor :options, :security_token
8
8
 
9
- def initialize(base_unity_url, username, password, appname, proxy = nil, timezone = nil, logger = nil, log = true)
10
- raise ArgumentError, "base_unity_url can not be nil" if base_unity_url.nil?
11
- raise ArgumentError, "username can not be nil" if username.nil?
12
- raise ArgumentError, "password can not be nil" if password.nil?
13
- raise ArgumentError, "appname can not be nil" if appname.nil?
14
-
15
- @base_unity_url = base_unity_url.gsub /\/$/, ""
16
- @username = username
17
- @password = password
18
- @appname = appname
19
- @proxy = proxy
20
- @log = log
21
-
22
- if logger.nil?
23
- @logger = Logger.new(STDOUT)
24
- @logger.level = Logger::INFO
25
- else
26
- @logger = logger
27
- end
28
-
29
- unless timezone.nil?
30
- @timezone = Timezone.new(timezone)
31
- else
32
- @timezone = Timezone.new("UTC")
33
- end
9
+ def initialize(options)
10
+ @options = ClientOptions.new(options)
34
11
  end
35
12
 
36
13
  def security_token?
37
- return !@security_token.nil?
38
- end
39
-
40
- def log?
41
- return @log
14
+ !@security_token.nil?
42
15
  end
43
16
 
44
17
  def client_type
45
- return :none
18
+ :none
46
19
  end
47
20
 
48
21
  def magic(parameters = {})
49
- raise NotImplementedError, "magic not implemented"
22
+ raise NotImplementedError, 'magic not implemented'
50
23
  end
51
24
 
52
25
  def get_security_token!(parameters = {})
53
- raise NotImplementedError, "get_security_token! not implemented"
26
+ raise NotImplementedError, 'get_security_token! not implemented'
54
27
  end
55
28
 
56
29
  def retire_security_token!(parameters = {})
57
- raise NotImplementedError, "retire_security_token! not implemented"
30
+ raise NotImplementedError, 'retire_security_token! not implemented'
58
31
  end
59
32
 
60
33
  protected
61
34
 
62
35
  def log_get_security_token
63
- message = "Unity API GetSecurityToken request to #{@base_unity_url}"
36
+ message = "Unity API GetSecurityToken request to #{@options.base_unity_url}"
64
37
  log_info(message)
65
38
  end
66
39
 
67
40
  def log_retire_security_token
68
- message = "Unity API RetireSecurityToken request to #{@base_unity_url}"
41
+ message = "Unity API RetireSecurityToken request to #{@options.base_unity_url}"
69
42
  log_info(message)
70
43
  end
71
44
 
72
45
  def log_magic(request)
73
- raise ArgumentError, "request can not be nil" if request.nil?
74
- message = "Unity API Magic request to #{@base_unity_url} [#{request.parameters[:action]}]"
46
+ raise ArgumentError, 'request can not be nil' if request.nil?
47
+ message = "Unity API Magic request to #{@options.base_unity_url} [#{request.parameters[:action]}]"
75
48
  log_info(message)
76
49
  end
77
50
 
78
51
  def log_info(message)
79
- if log? && !logger.nil? && !message.nil?
52
+ if @options.logger? && !message.nil?
80
53
  message += " #{@timer} seconds" unless @timer.nil?
81
54
  @timer = nil
82
- logger.info(message)
55
+ @options.logger.info(message)
83
56
  end
84
57
  end
85
58
 
@@ -0,0 +1,68 @@
1
+ module AllscriptsUnityClient
2
+ class ClientOptions
3
+ attr_accessor :proxy, :logger
4
+ attr_reader :base_unity_url, :username, :password, :appname, :timezone
5
+
6
+ def initialize(options = {})
7
+ @base_unity_url = options[:base_unity_url] ? options[:base_unity_url].gsub(/\/$/, '') : nil
8
+ @username = options[:username]
9
+ @password = options[:password]
10
+ @appname = options[:appname]
11
+ @proxy = options[:proxy]
12
+ self.timezone = options[:timezone]
13
+ @logger = options[:logger]
14
+
15
+ validate_options
16
+ end
17
+
18
+ def validate_options(options = {})
19
+ base_unity_url = options.has_key?(:base_unity_url) ? options[:base_unity_url] : @base_unity_url
20
+ username = options.has_key?(:username) ? options[:username] : @username
21
+ password = options.has_key?(:password) ? options[:password] : @password
22
+ appname = options.has_key?(:appname) ? options[:appname] : @appname
23
+
24
+ raise ArgumentError, 'base_unity_url can not be nil' if base_unity_url.nil?
25
+ raise ArgumentError, 'username can not be nil' if username.nil?
26
+ raise ArgumentError, 'password can not be nil' if password.nil?
27
+ raise ArgumentError, 'appname can not be nil' if appname.nil?
28
+ end
29
+
30
+ def base_unity_url=(base_unity_url)
31
+ validate_options(base_unity_url: base_unity_url)
32
+ @base_unity_url = base_unity_url.gsub /\/$/, ''
33
+ end
34
+
35
+ def username=(username)
36
+ validate_options(username: username)
37
+ @username = username
38
+ end
39
+
40
+ def password=(password)
41
+ validate_options(password: password)
42
+ @password = password
43
+ end
44
+
45
+ def appname=(appname)
46
+ validate_options(appname: appname)
47
+ @appname = appname
48
+ end
49
+
50
+ def timezone=(timezone)
51
+ if !timezone.nil?
52
+ @timezone = Timezone.new(timezone)
53
+ else
54
+ @timezone = Timezone.new('UTC')
55
+ end
56
+ end
57
+
58
+ def proxy?
59
+ return false if @proxy.nil?
60
+ return false if @proxy.empty?
61
+ true
62
+ end
63
+
64
+ def logger?
65
+ !@logger.nil?
66
+ end
67
+ end
68
+ end
@@ -1,31 +1,37 @@
1
- require "json"
2
- require "httpi"
1
+ require 'json'
2
+ require 'faraday'
3
+ require 'em-http-request'
3
4
 
4
5
  module AllscriptsUnityClient
5
6
  class JSONClientDriver < ClientDriver
6
- attr_accessor :json_base_url
7
+ attr_accessor :json_base_url, :connection
7
8
 
8
- UNITY_JSON_ENDPOINT = "/Unity/UnityService.svc/json"
9
+ UNITY_JSON_ENDPOINT = '/Unity/UnityService.svc/json'
9
10
 
10
- def initialize(base_unity_url, username, password, appname, proxy = nil, timezone = nil, logger = nil, log = true)
11
+ def initialize(options)
11
12
  super
13
+ @connection = Faraday.new(url: @options.base_unity_url) do |conn|
14
+ if @options.proxy?
15
+ conn.proxy @options.proxy
16
+ end
12
17
 
13
- # Disable HTTPI logging
14
- HTTPI.log = false
15
-
16
- @json_base_url = "#{@base_unity_url}#{UNITY_JSON_ENDPOINT}"
18
+ conn.adapter :em_http
19
+ end
17
20
  end
18
21
 
19
22
  def client_type
20
- return :json
23
+ :json
21
24
  end
22
25
 
23
26
  def magic(parameters = {})
24
- request_data = JSONUnityRequest.new(parameters, @timezone, @appname, @security_token)
25
- request = create_httpi_request("#{@json_base_url}/MagicJson", request_data.to_hash)
27
+ request_data = JSONUnityRequest.new(parameters, @options.timezone, @options.appname, @security_token)
26
28
 
27
- start_timer
28
- response = HTTPI.post(request)
29
+ response = @connection.post do |request|
30
+ request.url "#{UNITY_JSON_ENDPOINT}/MagicJson"
31
+ request.headers['Content-Type'] = 'application/json'
32
+ request.body = JSON.generate(request_data.to_hash)
33
+ start_timer
34
+ end
29
35
  end_timer
30
36
 
31
37
  response = JSON.parse(response.body)
@@ -33,24 +39,27 @@ module AllscriptsUnityClient
33
39
  raise_if_response_error(response)
34
40
  log_magic(request_data)
35
41
 
36
- response = JSONUnityResponse.new(response, @timezone)
42
+ response = JSONUnityResponse.new(response, @options.timezone)
37
43
  response.to_hash
38
44
  end
39
45
 
40
46
  def get_security_token!(parameters = {})
41
- username = parameters[:username] || @username
42
- password = parameters[:password] || @password
43
- appname = parameters[:appname] || @appname
47
+ username = parameters[:username] || @options.username
48
+ password = parameters[:password] || @options.password
49
+ appname = parameters[:appname] || @options.appname
44
50
 
45
51
  request_data = {
46
- "Username" => username,
47
- "Password" => password,
48
- "Appname" => appname
52
+ 'Username' => username,
53
+ 'Password' => password,
54
+ 'Appname' => appname
49
55
  }
50
- request = create_httpi_request("#{@json_base_url}/GetToken", request_data)
51
56
 
52
- start_timer
53
- response = HTTPI.post(request, :net_http_persistent)
57
+ response = @connection.post do |request|
58
+ request.url "#{UNITY_JSON_ENDPOINT}/GetToken"
59
+ request.headers['Content-Type'] = 'application/json'
60
+ request.body = JSON.generate(request_data)
61
+ start_timer
62
+ end
54
63
  end_timer
55
64
 
56
65
  raise_if_response_error(response.body)
@@ -61,16 +70,19 @@ module AllscriptsUnityClient
61
70
 
62
71
  def retire_security_token!(parameters = {})
63
72
  token = parameters[:token] || @security_token
64
- appname = parameters[:appname] || @appname
73
+ appname = parameters[:appname] || @options.appname
65
74
 
66
75
  request_data = {
67
- "Token" => token,
68
- "Appname" => appname
76
+ 'Token' => token,
77
+ 'Appname' => appname
69
78
  }
70
- request = create_httpi_request("#{@json_base_url}/RetireSecurityToken", request_data)
71
79
 
72
- start_timer
73
- response = HTTPI.post(request, :net_http_persistent)
80
+ response = @connection.post do |request|
81
+ request.url "#{UNITY_JSON_ENDPOINT}/RetireSecurityToken"
82
+ request.headers['Content-Type'] = 'application/json'
83
+ request.body = JSON.generate(request_data)
84
+ start_timer
85
+ end
74
86
  end_timer
75
87
 
76
88
  raise_if_response_error(response.body)
@@ -81,28 +93,12 @@ module AllscriptsUnityClient
81
93
 
82
94
  private
83
95
 
84
- def create_httpi_request(url, data)
85
- request = HTTPI::Request.new
86
- request.url = url
87
- request.headers = {
88
- "Accept-Encoding" => "gzip,deflate",
89
- "Content-type" => "application/json;charset=utf-8"
90
- }
91
- request.body = JSON.generate(data)
92
-
93
- unless @proxy.nil?
94
- request.proxy = @proxy
95
- end
96
-
97
- request
98
- end
99
-
100
96
  def raise_if_response_error(response)
101
97
  if response.nil?
102
- raise APIError, "Response was empty"
103
- elsif response.is_a?(Array) && !response[0].nil? && !response[0]["Error"].nil?
104
- raise APIError, response[0]["Error"]
105
- elsif response.is_a?(String) && response.include?("error:")
98
+ raise APIError, 'Response was empty'
99
+ elsif response.is_a?(Array) && !response[0].nil? && !response[0]['Error'].nil?
100
+ raise APIError, response[0]['Error']
101
+ elsif response.is_a?(String) && response.include?('error:')
106
102
  raise APIError, response
107
103
  end
108
104
  end
@@ -6,27 +6,27 @@ module AllscriptsUnityClient
6
6
  appname = @parameters[:appname] || @appname
7
7
  patientid = @parameters[:patientid]
8
8
  token = @parameters[:token] || @security_token
9
- parameter1 = process_date(@parameters[:parameter1]) || ""
10
- parameter2 = process_date(@parameters[:parameter2]) || ""
11
- parameter3 = process_date(@parameters[:parameter3]) || ""
12
- parameter4 = process_date(@parameters[:parameter4]) || ""
13
- parameter5 = process_date(@parameters[:parameter5]) || ""
14
- parameter6 = process_date(@parameters[:parameter6]) || ""
15
- data = Utilities::encode_data(@parameters[:data]) || ""
9
+ parameter1 = process_date(@parameters[:parameter1]) || ''
10
+ parameter2 = process_date(@parameters[:parameter2]) || ''
11
+ parameter3 = process_date(@parameters[:parameter3]) || ''
12
+ parameter4 = process_date(@parameters[:parameter4]) || ''
13
+ parameter5 = process_date(@parameters[:parameter5]) || ''
14
+ parameter6 = process_date(@parameters[:parameter6]) || ''
15
+ data = Utilities::encode_data(@parameters[:data]) || ''
16
16
 
17
- return {
18
- "Action" => action,
19
- "AppUserID" => userid,
20
- "Appname" => appname,
21
- "PatientID" => patientid,
22
- "Token" => token,
23
- "Parameter1" => parameter1,
24
- "Parameter2" => parameter2,
25
- "Parameter3" => parameter3,
26
- "Parameter4" => parameter4,
27
- "Parameter5" => parameter5,
28
- "Parameter6" => parameter6,
29
- "Data" => data
17
+ {
18
+ 'Action' => action,
19
+ 'AppUserID' => userid,
20
+ 'Appname' => appname,
21
+ 'PatientID' => patientid,
22
+ 'Token' => token,
23
+ 'Parameter1' => parameter1,
24
+ 'Parameter2' => parameter2,
25
+ 'Parameter3' => parameter3,
26
+ 'Parameter4' => parameter4,
27
+ 'Parameter5' => parameter5,
28
+ 'Parameter6' => parameter6,
29
+ 'Data' => data
30
30
  }
31
31
  end
32
32
  end
@@ -1,4 +1,4 @@
1
- require "json"
1
+ require 'json'
2
2
 
3
3
  module AllscriptsUnityClient
4
4
  class JSONUnityResponse < UnityResponse
@@ -1,17 +1,17 @@
1
- require "savon"
1
+ require 'savon'
2
2
 
3
3
  module AllscriptsUnityClient
4
4
  class SOAPClientDriver < ClientDriver
5
5
  attr_accessor :savon_client
6
6
 
7
- UNITY_SOAP_ENDPOINT = "/Unity/UnityService.svc/unityservice"
8
- UNITY_ENDPOINT_NAMESPACE = "http://www.allscripts.com/Unity/IUnityService"
7
+ UNITY_SOAP_ENDPOINT = '/Unity/UnityService.svc/unityservice'
8
+ UNITY_ENDPOINT_NAMESPACE = 'http://www.allscripts.com/Unity/IUnityService'
9
9
 
10
- def initialize(base_unity_url, username, password, appname, proxy = nil, timezone = nil, logger = nil, log = true)
10
+ def initialize(options)
11
11
  super
12
12
 
13
- client_proxy = @proxy
14
- base_unity_url = "#{@base_unity_url}#{UNITY_SOAP_ENDPOINT}"
13
+ client_proxy = @options.proxy
14
+ base_unity_url = "#{@options.base_unity_url}#{UNITY_SOAP_ENDPOINT}"
15
15
 
16
16
  @savon_client = Savon.client do
17
17
  # Removes the wsdl: namespace from body elements in the SOAP
@@ -24,7 +24,7 @@ module AllscriptsUnityClient
24
24
 
25
25
  # Manually register SOAP namespace. This URL isn't live, but the
26
26
  # internal SOAP endpoints expect it.
27
- namespace "http://www.allscripts.com/Unity"
27
+ namespace 'http://www.allscripts.com/Unity'
28
28
 
29
29
  # Register proxy with Savon if one was given.
30
30
  unless client_proxy.nil?
@@ -41,7 +41,7 @@ module AllscriptsUnityClient
41
41
  # Enable gzip on HTTP responses. Unity does not currently support this
42
42
  # as of Born On 10/7/2013, but it doesn't hurt to future-proof. If gzip
43
43
  # is ever enabled, this library will get a speed bump for free.
44
- headers({ "Accept-Encoding" => "gzip,deflate" })
44
+ headers({ 'Accept-Encoding' => 'gzip,deflate'})
45
45
 
46
46
  # Disable Savon logs
47
47
  log false
@@ -49,19 +49,19 @@ module AllscriptsUnityClient
49
49
  end
50
50
 
51
51
  def client_type
52
- return :soap
52
+ :soap
53
53
  end
54
54
 
55
55
  def magic(parameters = {})
56
- request_data = UnityRequest.new(parameters, @timezone, @appname, @security_token)
56
+ request_data = UnityRequest.new(parameters, @options.timezone, @options.appname, @security_token)
57
57
  call_data = {
58
- :message => request_data.to_hash,
59
- :soap_action => "#{UNITY_ENDPOINT_NAMESPACE}/Magic"
58
+ message: request_data.to_hash,
59
+ soap_action: "#{UNITY_ENDPOINT_NAMESPACE}/Magic"
60
60
  }
61
61
 
62
62
  begin
63
63
  start_timer
64
- response = @savon_client.call("Magic", call_data)
64
+ response = @savon_client.call('Magic', call_data)
65
65
  end_timer
66
66
  rescue Savon::SOAPFault => e
67
67
  raise APIError, e.message
@@ -69,27 +69,27 @@ module AllscriptsUnityClient
69
69
 
70
70
  log_magic(request_data)
71
71
 
72
- response = UnityResponse.new(response.body, @timezone)
72
+ response = UnityResponse.new(response.body, @options.timezone)
73
73
  response.to_hash
74
74
  end
75
75
 
76
76
  def get_security_token!(parameters = {})
77
- username = parameters[:username] || @username
78
- password = parameters[:password] || @password
79
- appname = parameters[:appname] || @appname
77
+ username = parameters[:username] || @options.username
78
+ password = parameters[:password] || @options.password
79
+ appname = parameters[:appname] || @options.appname
80
80
 
81
81
  call_data = {
82
- :message => {
83
- "Username" => username,
84
- "Password" => password,
85
- "Appname" => appname
82
+ message: {
83
+ 'Username' => username,
84
+ 'Password' => password,
85
+ 'Appname' => appname
86
86
  },
87
- :soap_action => "#{UNITY_ENDPOINT_NAMESPACE}/GetSecurityToken"
87
+ soap_action: "#{UNITY_ENDPOINT_NAMESPACE}/GetSecurityToken"
88
88
  }
89
89
 
90
90
  begin
91
91
  start_timer
92
- response = @savon_client.call("GetSecurityToken", call_data)
92
+ response = @savon_client.call('GetSecurityToken', call_data)
93
93
  end_timer
94
94
  rescue Savon::SOAPFault => e
95
95
  raise APIError, e.message
@@ -102,19 +102,19 @@ module AllscriptsUnityClient
102
102
 
103
103
  def retire_security_token!(parameters = {})
104
104
  token = parameters[:token] || @security_token
105
- appname = parameters[:appname] || @appname
105
+ appname = parameters[:appname] || @options.appname
106
106
 
107
107
  call_data = {
108
- :message => {
109
- "Token" => token,
110
- "Appname" => appname
108
+ message: {
109
+ 'Token' => token,
110
+ 'Appname' => appname
111
111
  },
112
- :soap_action => "#{UNITY_ENDPOINT_NAMESPACE}/RetireSecurityToken"
112
+ soap_action: "#{UNITY_ENDPOINT_NAMESPACE}/RetireSecurityToken"
113
113
  }
114
114
 
115
115
  begin
116
116
  start_timer
117
- @savon_client.call("RetireSecurityToken", call_data)
117
+ @savon_client.call('RetireSecurityToken', call_data)
118
118
  end_timer
119
119
  rescue Savon::SOAPFault => e
120
120
  raise APIError, e.message
@@ -1,12 +1,12 @@
1
- require "date"
2
- require "tzinfo"
1
+ require 'date'
2
+ require 'tzinfo'
3
3
 
4
4
  module AllscriptsUnityClient
5
5
  class Timezone
6
6
  attr_accessor :tzinfo
7
7
 
8
8
  def initialize(zone_identifier)
9
- raise ArgumentError, "zone_identifier can not be nil" if zone_identifier.nil?
9
+ raise ArgumentError, 'zone_identifier can not be nil' if zone_identifier.nil?
10
10
 
11
11
  @tzinfo = TZInfo::Timezone.get(zone_identifier)
12
12
  end
@@ -21,6 +21,11 @@ module AllscriptsUnityClient
21
21
  convert_with_timezone(:utc_to_local, datetime)
22
22
  end
23
23
 
24
+ def ==(timezone)
25
+ return false if !timezone.is_a?(Timezone)
26
+ @tzinfo == timezone.tzinfo
27
+ end
28
+
24
29
  private
25
30
 
26
31
  # Direction can be :utc_to_local or :local_to_utc
@@ -52,7 +57,7 @@ module AllscriptsUnityClient
52
57
 
53
58
  if is_datetime
54
59
  # Convert to a DateTime with a UTC offset
55
- datetime = DateTime.parse("#{datetime.strftime("%FT%T")}Z")
60
+ datetime = DateTime.parse("#{datetime.strftime('%FT%T')}Z")
56
61
  end
57
62
  end
58
63
 
@@ -65,7 +70,7 @@ module AllscriptsUnityClient
65
70
  end
66
71
  end
67
72
 
68
- return datetime
73
+ datetime
69
74
  end
70
75
 
71
76
  # TZInfo does not correctly update a DateTime's
@@ -78,7 +83,7 @@ module AllscriptsUnityClient
78
83
 
79
84
  offset = @tzinfo.current_period.utc_offset
80
85
  negative_offset = false
81
- datetime_string = datetime.strftime("%FT%T")
86
+ datetime_string = datetime.strftime('%FT%T')
82
87
 
83
88
  if offset < 0
84
89
  offset *= -1
@@ -86,11 +91,11 @@ module AllscriptsUnityClient
86
91
  end
87
92
 
88
93
  if offset == 0
89
- offset_string = "Z"
94
+ offset_string = 'Z'
90
95
  else
91
- offset_string = Time.at(offset).utc.strftime("%H:%M")
92
- offset_string = "-" + offset_string if negative_offset
93
- offset_string = "+" + offset_string unless negative_offset
96
+ offset_string = Time.at(offset).utc.strftime('%H:%M')
97
+ offset_string = '-' + offset_string if negative_offset
98
+ offset_string = '+' + offset_string unless negative_offset
94
99
  end
95
100
 
96
101
  "#{datetime_string}#{offset_string}"
@@ -3,10 +3,10 @@ module AllscriptsUnityClient
3
3
  attr_accessor :parameters, :appname, :security_token, :timezone
4
4
 
5
5
  def initialize(parameters, timezone, appname, security_token)
6
- raise ArgumentError, "parameters can not be nil" if parameters.nil?
7
- raise ArgumentError, "timezone can not be nil" if timezone.nil?
8
- raise ArgumentError, "appname can not be nil" if appname.nil?
9
- raise ArgumentError, "security_token can not be nil" if security_token.nil?
6
+ raise ArgumentError, 'parameters can not be nil' if parameters.nil?
7
+ raise ArgumentError, 'timezone can not be nil' if timezone.nil?
8
+ raise ArgumentError, 'appname can not be nil' if appname.nil?
9
+ raise ArgumentError, 'security_token can not be nil' if security_token.nil?
10
10
 
11
11
  @appname = appname
12
12
  @security_token = security_token
@@ -28,19 +28,19 @@ module AllscriptsUnityClient
28
28
  parameter6 = process_date(@parameters[:parameter6])
29
29
  data = Utilities::encode_data(@parameters[:data])
30
30
 
31
- return {
32
- "Action" => action,
33
- "UserID" => userid,
34
- "Appname" => appname,
35
- "PatientID" => patientid,
36
- "Token" => token,
37
- "Parameter1" => parameter1,
38
- "Parameter2" => parameter2,
39
- "Parameter3" => parameter3,
40
- "Parameter4" => parameter4,
41
- "Parameter5" => parameter5,
42
- "Parameter6" => parameter6,
43
- "data" => data
31
+ {
32
+ 'Action' => action,
33
+ 'UserID' => userid,
34
+ 'Appname' => appname,
35
+ 'PatientID' => patientid,
36
+ 'Token' => token,
37
+ 'Parameter1' => parameter1,
38
+ 'Parameter2' => parameter2,
39
+ 'Parameter3' => parameter3,
40
+ 'Parameter4' => parameter4,
41
+ 'Parameter5' => parameter5,
42
+ 'Parameter6' => parameter6,
43
+ 'data' => data
44
44
  }
45
45
  end
46
46
 
@@ -1,12 +1,12 @@
1
- require "date"
1
+ require 'date'
2
2
 
3
3
  module AllscriptsUnityClient
4
4
  class UnityResponse
5
5
  attr_accessor :response, :timezone
6
6
 
7
7
  def initialize(response, timezone)
8
- raise ArgumentError, "timezone can not be nil" if timezone.nil?
9
- raise ArgumentError, "response can not be nil" if response.nil?
8
+ raise ArgumentError, 'timezone can not be nil' if timezone.nil?
9
+ raise ArgumentError, 'response can not be nil' if response.nil?
10
10
 
11
11
  @response = response
12
12
  @timezone = timezone
@@ -1,6 +1,6 @@
1
- require "nori"
2
- require "date"
3
- require "american_date"
1
+ require 'nori'
2
+ require 'date'
3
+ require 'american_date'
4
4
 
5
5
  module AllscriptsUnityClient
6
6
  class Utilities
@@ -29,9 +29,9 @@ module AllscriptsUnityClient
29
29
  end
30
30
 
31
31
  if data.respond_to?(:pack)
32
- return data.pack("m")
32
+ return data.pack('m')
33
33
  else
34
- return [data].pack("m")
34
+ return [data].pack('m')
35
35
  end
36
36
  end
37
37
 
@@ -1,3 +1,3 @@
1
1
  module AllscriptsUnityClient
2
- VERSION = "1.3.4"
2
+ VERSION = '2.0.0'
3
3
  end