allscripts_unity_client 2.0.5 → 2.1.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.
- checksums.yaml +4 -4
 - data/README.md +20 -0
 - data/allscripts_unity_client.gemspec +2 -1
 - data/lib/allscripts_unity_client.rb +1 -0
 - data/lib/allscripts_unity_client/client.rb +27 -20
 - data/lib/allscripts_unity_client/client_driver.rb +9 -0
 - data/lib/allscripts_unity_client/client_options.rb +6 -1
 - data/lib/allscripts_unity_client/json_client_driver.rb +13 -10
 - data/lib/allscripts_unity_client/json_unity_response.rb +0 -2
 - data/lib/allscripts_unity_client/new_relic_support.rb +19 -0
 - data/lib/allscripts_unity_client/soap_client_driver.rb +5 -2
 - data/lib/allscripts_unity_client/version.rb +1 -1
 - data/spec/allscripts_unity_client_spec.rb +2 -2
 - data/spec/client_driver_spec.rb +2 -1
 - data/spec/client_options_spec.rb +17 -1
 - data/spec/client_spec.rb +1 -1
 - data/spec/factories/client_driver_factory.rb +4 -0
 - data/spec/factories/client_options.rb +1 -0
 - data/spec/factories/unity_request_factory.rb +2 -0
 - data/spec/factories/unity_response_factory.rb +2 -0
 - data/spec/json_client_driver_spec.rb +8 -2
 - data/spec/json_unity_request_spec.rb +1 -1
 - data/spec/json_unity_response_spec.rb +1 -1
 - data/spec/new_relic_support_spec.rb +49 -0
 - data/spec/soap_client_driver_spec.rb +2 -1
 - data/spec/support/new_relic.rb +16 -0
 - data/spec/support/shared_examples_for_client_driver.rb +12 -0
 - data/spec/timezone_spec.rb +1 -1
 - data/spec/unity_request_spec.rb +1 -1
 - data/spec/unity_response_spec.rb +1 -1
 - data/spec/utilities_spec.rb +2 -2
 - metadata +21 -8
 - data/spec/factories/json_client_driver_factory.rb +0 -3
 - data/spec/factories/json_unity_request_factory.rb +0 -3
 - data/spec/factories/json_unity_response_factory.rb +0 -3
 - data/spec/factories/soap_client_driver_factory.rb +0 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 88cc45a2484b53948ae52a7175a9c633b8cf8108
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: c792e3083d2727be7872e47e932348699ceb416f
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 20d968b2549340bd6fc496e95bab512970db94bae8f3637d0609c0859fdf1b33f640164eee30e77da9c9f3e223c0c7de428565285a6f9d5245900e7b8e56be61
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 01714c07e5f1568d03b15e27f653d7c4efa8b3571b053bb5f9ebdb2b6473e651ca9116534b6a319e1106e5035ee66635fcc7d3cc6efe3ad41e1c7eec464d2090
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -244,6 +244,26 @@ unity_client = AllscriptsUnityClient.create({ 
     | 
|
| 
       244 
244 
     | 
    
         
             
            This gem uses the [american_date](http://rubygems.org/gems/american_date) gem to force `Date.parse` to
         
     | 
| 
       245 
245 
     | 
    
         
             
            accept USA locale dates by default. There are currently no plans to support other locales. Pull requests welcome.
         
     | 
| 
       246 
246 
     | 
    
         | 
| 
      
 247 
     | 
    
         
            +
            ### New Relic support
         
     | 
| 
      
 248 
     | 
    
         
            +
             
     | 
| 
      
 249 
     | 
    
         
            +
            New Relic is supported for tracing Unity HTTP requests and the overall time processing the reqeusts takes. To enable
         
     | 
| 
      
 250 
     | 
    
         
            +
            New Relic, simply require the gem in your project and enable it on the client:
         
     | 
| 
      
 251 
     | 
    
         
            +
             
     | 
| 
      
 252 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 253 
     | 
    
         
            +
            require 'newrelic_rpm'
         
     | 
| 
      
 254 
     | 
    
         
            +
            NewRelic::Agent.manual_start
         
     | 
| 
      
 255 
     | 
    
         
            +
             
     | 
| 
      
 256 
     | 
    
         
            +
            unity_client = AllscriptsUnityClient.create({
         
     | 
| 
      
 257 
     | 
    
         
            +
              base_unity_url: "http://unity.base.url",
         
     | 
| 
      
 258 
     | 
    
         
            +
              appname: "appname",
         
     | 
| 
      
 259 
     | 
    
         
            +
              username: "username",
         
     | 
| 
      
 260 
     | 
    
         
            +
              password: "password",
         
     | 
| 
      
 261 
     | 
    
         
            +
              new_relic: true
         
     | 
| 
      
 262 
     | 
    
         
            +
            })
         
     | 
| 
      
 263 
     | 
    
         
            +
            ```
         
     | 
| 
      
 264 
     | 
    
         
            +
             
     | 
| 
      
 265 
     | 
    
         
            +
            For more information on the New Relic gem, go here: (https://github.com/newrelic/rpm)
         
     | 
| 
      
 266 
     | 
    
         
            +
             
     | 
| 
       247 
267 
     | 
    
         
             
            ## Examples
         
     | 
| 
       248 
268 
     | 
    
         | 
| 
       249 
269 
     | 
    
         
             
            ### GetServerInfo SOAP
         
     | 
| 
         @@ -29,11 +29,12 @@ Gem::Specification.new do |gem| 
     | 
|
| 
       29 
29 
     | 
    
         
             
              gem.add_runtime_dependency 'nokogiri', '< 1.6', '>= 1.4.0'
         
     | 
| 
       30 
30 
     | 
    
         
             
              gem.add_runtime_dependency 'nori', '~> 2.3.0'
         
     | 
| 
       31 
31 
     | 
    
         
             
              gem.add_runtime_dependency 'american_date', '~> 1.1.0'
         
     | 
| 
      
 32 
     | 
    
         
            +
              gem.add_runtime_dependency 'oj', '~> 2.9.8'
         
     | 
| 
       32 
33 
     | 
    
         | 
| 
       33 
34 
     | 
    
         
             
              gem.add_development_dependency 'factory_girl', '~> 4.4.0'
         
     | 
| 
       34 
35 
     | 
    
         
             
              gem.add_development_dependency 'rake', '~> 10.3.1'
         
     | 
| 
       35 
36 
     | 
    
         
             
              gem.add_development_dependency 'faker', '~> 1.3.0'
         
     | 
| 
       36 
     | 
    
         
            -
              gem.add_development_dependency 'rspec', '~> 3.0.0 
     | 
| 
      
 37 
     | 
    
         
            +
              gem.add_development_dependency 'rspec', '~> 3.0.0'
         
     | 
| 
       37 
38 
     | 
    
         
             
              gem.add_development_dependency 'simplecov', '~> 0.8.2'
         
     | 
| 
       38 
39 
     | 
    
         
             
              gem.add_development_dependency 'webmock', '~> 1.17.4'
         
     | 
| 
       39 
40 
     | 
    
         
             
              gem.add_development_dependency 'coveralls', '~> 0.7.0'
         
     | 
| 
         @@ -9,6 +9,7 @@ require 'allscripts_unity_client/client_driver' 
     | 
|
| 
       9 
9 
     | 
    
         
             
            require 'allscripts_unity_client/client_options'
         
     | 
| 
       10 
10 
     | 
    
         
             
            require 'allscripts_unity_client/soap_client_driver'
         
     | 
| 
       11 
11 
     | 
    
         
             
            require 'allscripts_unity_client/json_client_driver'
         
     | 
| 
      
 12 
     | 
    
         
            +
            require 'allscripts_unity_client/new_relic_support'
         
     | 
| 
       12 
13 
     | 
    
         | 
| 
       13 
14 
     | 
    
         
             
            module AllscriptsUnityClient
         
     | 
| 
       14 
15 
     | 
    
         
             
              class APIError < RuntimeError
         
     | 
| 
         @@ -501,26 +501,33 @@ module AllscriptsUnityClient 
     | 
|
| 
       501 
501 
     | 
    
         
             
                  # Generate XML structure for rxxml
         
     | 
| 
       502 
502 
     | 
    
         
             
                  builder = Nokogiri::XML::Builder.new do |xml|
         
     | 
| 
       503 
503 
     | 
    
         
             
                    xml.saverx {
         
     | 
| 
       504 
     | 
    
         
            -
                      xml.field('name' => 'transid', 'value' => rxxml[:transid]) unless rxxml[:transid] 
     | 
| 
       505 
     | 
    
         
            -
                      xml.field('name' => 'PharmID', 'value' => rxxml[:pharmid]) unless rxxml[:pharmid] 
     | 
| 
       506 
     | 
    
         
            -
                      xml.field('name' => 'DDI', 'value' => rxxml[:ddi]) unless rxxml[:ddi] 
     | 
| 
       507 
     | 
    
         
            -
                      xml.field('name' => 'GPPCCode', 'value' => rxxml[:gppccode]) unless rxxml[:gppccode] 
     | 
| 
       508 
     | 
    
         
            -
                      xml.field('name' => 'GPPCText', 'value' => rxxml[:gppctext]) unless rxxml[:gppctext] 
     | 
| 
       509 
     | 
    
         
            -
                      xml.field('name' => 'GPPCCustom', 'value' => rxxml[:gppccustom]) unless rxxml[:gppccustom] 
     | 
| 
       510 
     | 
    
         
            -
                      xml.field('name' => 'Sig', 'value' => rxxml[:sig]) unless rxxml[:sig] 
     | 
| 
       511 
     | 
    
         
            -
                      xml.field('name' => 'QuanPresc', 'value' => rxxml[:quanpresc]) unless rxxml[:quanpresc] 
     | 
| 
       512 
     | 
    
         
            -
                      xml.field('name' => 'Refills', 'value' => rxxml[:refills]) unless rxxml[:refills] 
     | 
| 
       513 
     | 
    
         
            -
                      xml.field('name' => 'DAW', 'value' => rxxml[:daw]) unless rxxml[:daw] 
     | 
| 
       514 
     | 
    
         
            -
                      xml.field('name' => 'DaysSupply', 'value' => rxxml[:dayssupply]) unless rxxml[:dayssupply] 
     | 
| 
       515 
     | 
    
         
            -
                      xml.field('name' => 'startdate', 'value' => utc_to_local(Date.parse(rxxml[:startdate].to_s))) unless rxxml[:startdate] 
     | 
| 
       516 
     | 
    
         
            -
                      xml.field('name' => 'historicalflag', 'value' => rxxml[:historicalflag]) unless rxxml[:historicalflag] 
     | 
| 
       517 
     | 
    
         
            -
                      xml.field('name' => 'rxaction', 'value' => rxxml[:rxaction]) unless rxxml[:rxaction] 
     | 
| 
       518 
     | 
    
         
            -
                      xml.field('name' => 'delivery', 'value' => rxxml[:delivery]) unless rxxml[:delivery] 
     | 
| 
       519 
     | 
    
         
            -
                      xml.field('name' => 'ignorepharmzero', 'value' => rxxml[:ignorepharmzero]) unless rxxml[:ignorepharmzero] 
     | 
| 
       520 
     | 
    
         
            -
                      xml.field('name' => 'orderedbyid', 'value' => rxxml[:orderedbyid]) unless rxxml[:orderedbyid] 
     | 
| 
       521 
     | 
    
         
            -
                      xml.field('name' => 'newqty', 'value' => rxxml[:newqty]) unless rxxml[:newqty] 
     | 
| 
       522 
     | 
    
         
            -
                      xml.field('name' => 'newrefills', 'value' => rxxml[:newrefills]) unless rxxml[:newrefills] 
     | 
| 
       523 
     | 
    
         
            -
                      xml.field('name' => 'comments', 'value' => rxxml[:comments]) unless rxxml[:comments] 
     | 
| 
      
 504 
     | 
    
         
            +
                      xml.field('name' => 'transid', 'value' => rxxml[:transid]) unless rxxml[:transid]
         
     | 
| 
      
 505 
     | 
    
         
            +
                      xml.field('name' => 'PharmID', 'value' => rxxml[:pharmid]) unless rxxml[:pharmid]
         
     | 
| 
      
 506 
     | 
    
         
            +
                      xml.field('name' => 'DDI', 'value' => rxxml[:ddi]) unless rxxml[:ddi]
         
     | 
| 
      
 507 
     | 
    
         
            +
                      xml.field('name' => 'GPPCCode', 'value' => rxxml[:gppccode]) unless rxxml[:gppccode]
         
     | 
| 
      
 508 
     | 
    
         
            +
                      xml.field('name' => 'GPPCText', 'value' => rxxml[:gppctext]) unless rxxml[:gppctext]
         
     | 
| 
      
 509 
     | 
    
         
            +
                      xml.field('name' => 'GPPCCustom', 'value' => rxxml[:gppccustom]) unless rxxml[:gppccustom]
         
     | 
| 
      
 510 
     | 
    
         
            +
                      xml.field('name' => 'Sig', 'value' => rxxml[:sig]) unless rxxml[:sig]
         
     | 
| 
      
 511 
     | 
    
         
            +
                      xml.field('name' => 'QuanPresc', 'value' => rxxml[:quanpresc]) unless rxxml[:quanpresc]
         
     | 
| 
      
 512 
     | 
    
         
            +
                      xml.field('name' => 'Refills', 'value' => rxxml[:refills]) unless rxxml[:refills]
         
     | 
| 
      
 513 
     | 
    
         
            +
                      xml.field('name' => 'DAW', 'value' => rxxml[:daw]) unless rxxml[:daw]
         
     | 
| 
      
 514 
     | 
    
         
            +
                      xml.field('name' => 'DaysSupply', 'value' => rxxml[:dayssupply]) unless rxxml[:dayssupply]
         
     | 
| 
      
 515 
     | 
    
         
            +
                      xml.field('name' => 'startdate', 'value' => utc_to_local(Date.parse(rxxml[:startdate].to_s))) unless rxxml[:startdate]
         
     | 
| 
      
 516 
     | 
    
         
            +
                      xml.field('name' => 'historicalflag', 'value' => rxxml[:historicalflag]) unless rxxml[:historicalflag]
         
     | 
| 
      
 517 
     | 
    
         
            +
                      xml.field('name' => 'rxaction', 'value' => rxxml[:rxaction]) unless rxxml[:rxaction]
         
     | 
| 
      
 518 
     | 
    
         
            +
                      xml.field('name' => 'delivery', 'value' => rxxml[:delivery]) unless rxxml[:delivery]
         
     | 
| 
      
 519 
     | 
    
         
            +
                      xml.field('name' => 'ignorepharmzero', 'value' => rxxml[:ignorepharmzero]) unless rxxml[:ignorepharmzero]
         
     | 
| 
      
 520 
     | 
    
         
            +
                      xml.field('name' => 'orderedbyid', 'value' => rxxml[:orderedbyid]) unless rxxml[:orderedbyid]
         
     | 
| 
      
 521 
     | 
    
         
            +
                      xml.field('name' => 'newqty', 'value' => rxxml[:newqty]) unless rxxml[:newqty]
         
     | 
| 
      
 522 
     | 
    
         
            +
                      xml.field('name' => 'newrefills', 'value' => rxxml[:newrefills]) unless rxxml[:newrefills]
         
     | 
| 
      
 523 
     | 
    
         
            +
                      xml.field('name' => 'comments', 'value' => rxxml[:comments]) unless rxxml[:comments]
         
     | 
| 
      
 524 
     | 
    
         
            +
                      xml.field('name' => 'orderstatus', 'value' => rxxml[:order_status]) unless rxxml[:order_status]
         
     | 
| 
      
 525 
     | 
    
         
            +
             
     | 
| 
      
 526 
     | 
    
         
            +
                      if rxxml[:problems]
         
     | 
| 
      
 527 
     | 
    
         
            +
                        rxxml[:problems].each do |problem|
         
     | 
| 
      
 528 
     | 
    
         
            +
                          xml.field('name' => 'Problem', 'value' => problem)
         
     | 
| 
      
 529 
     | 
    
         
            +
                        end
         
     | 
| 
      
 530 
     | 
    
         
            +
                      end
         
     | 
| 
       524 
531 
     | 
    
         
             
                    }
         
     | 
| 
       525 
532 
     | 
    
         
             
                  end
         
     | 
| 
       526 
533 
     | 
    
         | 
| 
         @@ -8,6 +8,15 @@ module AllscriptsUnityClient 
     | 
|
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                def initialize(options)
         
     | 
| 
       10 
10 
     | 
    
         
             
                  @options = ClientOptions.new(options)
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  # If New Relic support is enabled, setup method tracing
         
     | 
| 
      
 13 
     | 
    
         
            +
                  if @options.new_relic
         
     | 
| 
      
 14 
     | 
    
         
            +
                    NewRelicSupport.enable_method_tracer(self)
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                    class << self
         
     | 
| 
      
 17 
     | 
    
         
            +
                      add_method_tracer :magic
         
     | 
| 
      
 18 
     | 
    
         
            +
                    end
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
       11 
20 
     | 
    
         
             
                end
         
     | 
| 
       12 
21 
     | 
    
         | 
| 
       13 
22 
     | 
    
         
             
                def security_token?
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module AllscriptsUnityClient
         
     | 
| 
       2 
2 
     | 
    
         
             
              class ClientOptions
         
     | 
| 
       3 
     | 
    
         
            -
                attr_accessor :proxy, :logger, :ca_file, :ca_path, :timeout
         
     | 
| 
      
 3 
     | 
    
         
            +
                attr_accessor :proxy, :logger, :ca_file, :ca_path, :timeout, :new_relic
         
     | 
| 
       4 
4 
     | 
    
         
             
                attr_reader :base_unity_url, :username, :password, :appname, :timezone
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
                def initialize(options = {})
         
     | 
| 
         @@ -12,6 +12,7 @@ module AllscriptsUnityClient 
     | 
|
| 
       12 
12 
     | 
    
         
             
                  @ca_file = options[:ca_file]
         
     | 
| 
       13 
13 
     | 
    
         
             
                  @ca_path = options[:ca_path]
         
     | 
| 
       14 
14 
     | 
    
         
             
                  @timeout = options[:timeout]
         
     | 
| 
      
 15 
     | 
    
         
            +
                  @new_relic = options[:new_relic]
         
     | 
| 
       15 
16 
     | 
    
         | 
| 
       16 
17 
     | 
    
         
             
                  self.timezone = options[:timezone]
         
     | 
| 
       17 
18 
     | 
    
         
             
                  self.base_unity_url = options[:base_unity_url]
         
     | 
| 
         @@ -78,5 +79,9 @@ module AllscriptsUnityClient 
     | 
|
| 
       78 
79 
     | 
    
         
             
                def timeout?
         
     | 
| 
       79 
80 
     | 
    
         
             
                  !@timeout.to_s.strip.empty?
         
     | 
| 
       80 
81 
     | 
    
         
             
                end
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
                def new_relic?
         
     | 
| 
      
 84 
     | 
    
         
            +
                  !@new_relic.nil?
         
     | 
| 
      
 85 
     | 
    
         
            +
                end
         
     | 
| 
       81 
86 
     | 
    
         
             
              end
         
     | 
| 
       82 
87 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require ' 
     | 
| 
      
 1 
     | 
    
         
            +
            require 'oj'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'faraday'
         
     | 
| 
       3 
3 
     | 
    
         
             
            require 'em-http-request'
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
         @@ -22,17 +22,20 @@ module AllscriptsUnityClient 
     | 
|
| 
       22 
22 
     | 
    
         
             
                def magic(parameters = {})
         
     | 
| 
       23 
23 
     | 
    
         
             
                  request_data = JSONUnityRequest.new(parameters, @options.timezone, @options.appname, @security_token)
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
                  response =  
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                     
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
      
 25 
     | 
    
         
            +
                  response = nil
         
     | 
| 
      
 26 
     | 
    
         
            +
                  NewRelicSupport.trace_execution_scoped_if_available(JSONClientDriver, ["Custom/UnityJSON/#{parameters[:action]}"]) do
         
     | 
| 
      
 27 
     | 
    
         
            +
                    response = @connection.post do |request|
         
     | 
| 
      
 28 
     | 
    
         
            +
                      request.url "#{UNITY_JSON_ENDPOINT}/MagicJson"
         
     | 
| 
      
 29 
     | 
    
         
            +
                      request.headers['Content-Type'] = 'application/json'
         
     | 
| 
      
 30 
     | 
    
         
            +
                      request.body = Oj.dump(request_data.to_hash, mode: :compat)
         
     | 
| 
      
 31 
     | 
    
         
            +
                      set_request_timeout(request)
         
     | 
| 
       30 
32 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
      
 33 
     | 
    
         
            +
                      start_timer
         
     | 
| 
      
 34 
     | 
    
         
            +
                    end
         
     | 
| 
       32 
35 
     | 
    
         
             
                  end
         
     | 
| 
       33 
36 
     | 
    
         
             
                  end_timer
         
     | 
| 
       34 
37 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
                  response =  
     | 
| 
      
 38 
     | 
    
         
            +
                  response = Oj.load(response.body, mode: :strict)
         
     | 
| 
       36 
39 
     | 
    
         | 
| 
       37 
40 
     | 
    
         
             
                  raise_if_response_error(response)
         
     | 
| 
       38 
41 
     | 
    
         
             
                  log_magic(request_data)
         
     | 
| 
         @@ -55,7 +58,7 @@ module AllscriptsUnityClient 
     | 
|
| 
       55 
58 
     | 
    
         
             
                  response = @connection.post do |request|
         
     | 
| 
       56 
59 
     | 
    
         
             
                    request.url "#{UNITY_JSON_ENDPOINT}/GetToken"
         
     | 
| 
       57 
60 
     | 
    
         
             
                    request.headers['Content-Type'] = 'application/json'
         
     | 
| 
       58 
     | 
    
         
            -
                    request.body =  
     | 
| 
      
 61 
     | 
    
         
            +
                    request.body = Oj.dump(request_data, mode: :compat)
         
     | 
| 
       59 
62 
     | 
    
         
             
                    set_request_timeout(request)
         
     | 
| 
       60 
63 
     | 
    
         | 
| 
       61 
64 
     | 
    
         
             
                    start_timer
         
     | 
| 
         @@ -80,7 +83,7 @@ module AllscriptsUnityClient 
     | 
|
| 
       80 
83 
     | 
    
         
             
                  response = @connection.post do |request|
         
     | 
| 
       81 
84 
     | 
    
         
             
                    request.url "#{UNITY_JSON_ENDPOINT}/RetireSecurityToken"
         
     | 
| 
       82 
85 
     | 
    
         
             
                    request.headers['Content-Type'] = 'application/json'
         
     | 
| 
       83 
     | 
    
         
            -
                    request.body =  
     | 
| 
      
 86 
     | 
    
         
            +
                    request.body = Oj.dump(request_data, mode: :compat)
         
     | 
| 
       84 
87 
     | 
    
         
             
                    set_request_timeout(request)
         
     | 
| 
       85 
88 
     | 
    
         | 
| 
       86 
89 
     | 
    
         
             
                    start_timer
         
     | 
| 
         @@ -0,0 +1,19 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module AllscriptsUnityClient
         
     | 
| 
      
 2 
     | 
    
         
            +
              module NewRelicSupport
         
     | 
| 
      
 3 
     | 
    
         
            +
                def self.enable_method_tracer(instance)
         
     | 
| 
      
 4 
     | 
    
         
            +
                  class << instance
         
     | 
| 
      
 5 
     | 
    
         
            +
                    if !respond_to?(:trace_execution_scoped) && !respond_to?(:add_method_tracer)
         
     | 
| 
      
 6 
     | 
    
         
            +
                      extend ::NewRelic::Agent::MethodTracer
         
     | 
| 
      
 7 
     | 
    
         
            +
                    end
         
     | 
| 
      
 8 
     | 
    
         
            +
                  end
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                def self.trace_execution_scoped_if_available(klass, scope)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  if klass.respond_to?(:trace_execution_scoped)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    klass.trace_execution_scoped(scope, &Proc.new)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  else
         
     | 
| 
      
 15 
     | 
    
         
            +
                    yield if block_given?
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -59,10 +59,13 @@ module AllscriptsUnityClient 
     | 
|
| 
       59 
59 
     | 
    
         
             
                    soap_action: "#{UNITY_ENDPOINT_NAMESPACE}/Magic"
         
     | 
| 
       60 
60 
     | 
    
         
             
                  }
         
     | 
| 
       61 
61 
     | 
    
         | 
| 
      
 62 
     | 
    
         
            +
                  response = nil
         
     | 
| 
       62 
63 
     | 
    
         
             
                  begin
         
     | 
| 
       63 
64 
     | 
    
         
             
                    start_timer
         
     | 
| 
       64 
     | 
    
         
            -
                     
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
      
 65 
     | 
    
         
            +
                    NewRelicSupport.trace_execution_scoped_if_available(SOAPClientDriver, ["Custom/UnitySOAP/#{parameters[:action]}"]) do
         
     | 
| 
      
 66 
     | 
    
         
            +
                      response = @savon_client.call('Magic', call_data)
         
     | 
| 
      
 67 
     | 
    
         
            +
                      end_timer
         
     | 
| 
      
 68 
     | 
    
         
            +
                    end
         
     | 
| 
       66 
69 
     | 
    
         
             
                  rescue Savon::SOAPFault => e
         
     | 
| 
       67 
70 
     | 
    
         
             
                    raise APIError, e.message
         
     | 
| 
       68 
71 
     | 
    
         
             
                  end
         
     | 
    
        data/spec/client_driver_spec.rb
    CHANGED
    
    | 
         @@ -1,9 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            describe  
     | 
| 
      
 3 
     | 
    
         
            +
            describe AllscriptsUnityClient::ClientDriver do
         
     | 
| 
       4 
4 
     | 
    
         
             
              it_behaves_like 'a client driver'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
              subject { build(:client_driver) }
         
     | 
| 
      
 7 
     | 
    
         
            +
              let(:new_relic_client_driver) { build(:client_driver, new_relic: true) }
         
     | 
| 
       7 
8 
     | 
    
         | 
| 
       8 
9 
     | 
    
         
             
              describe '#client_type' do
         
     | 
| 
       9 
10 
     | 
    
         
             
                it { expect(subject.client_type).to be(:none) }
         
     | 
    
        data/spec/client_options_spec.rb
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            describe  
     | 
| 
      
 3 
     | 
    
         
            +
            describe AllscriptsUnityClient::ClientOptions do
         
     | 
| 
       4 
4 
     | 
    
         
             
              subject { build(:client_options) }
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
              let(:url_with_slash) { 'http://www.example.com/' }
         
     | 
| 
         @@ -182,4 +182,20 @@ describe 'ClientOptions' do 
     | 
|
| 
       182 
182 
     | 
    
         
             
                  end
         
     | 
| 
       183 
183 
     | 
    
         
             
                end
         
     | 
| 
       184 
184 
     | 
    
         
             
              end
         
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
      
 186 
     | 
    
         
            +
              describe '#new_relic?' do
         
     | 
| 
      
 187 
     | 
    
         
            +
                context 'when new_relic is nil' do
         
     | 
| 
      
 188 
     | 
    
         
            +
                  it 'returns false' do
         
     | 
| 
      
 189 
     | 
    
         
            +
                    subject.new_relic = nil
         
     | 
| 
      
 190 
     | 
    
         
            +
                    expect(subject.new_relic?).to be_falsey
         
     | 
| 
      
 191 
     | 
    
         
            +
                  end
         
     | 
| 
      
 192 
     | 
    
         
            +
                end
         
     | 
| 
      
 193 
     | 
    
         
            +
             
     | 
| 
      
 194 
     | 
    
         
            +
                context 'when timeout is not nil' do
         
     | 
| 
      
 195 
     | 
    
         
            +
                  it 'returns true' do
         
     | 
| 
      
 196 
     | 
    
         
            +
                    subject.new_relic = true
         
     | 
| 
      
 197 
     | 
    
         
            +
                    expect(subject.new_relic?).to be_truthy
         
     | 
| 
      
 198 
     | 
    
         
            +
                  end
         
     | 
| 
      
 199 
     | 
    
         
            +
                end
         
     | 
| 
      
 200 
     | 
    
         
            +
              end
         
     | 
| 
       185 
201 
     | 
    
         
             
            end
         
     | 
    
        data/spec/client_spec.rb
    CHANGED
    
    
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            describe  
     | 
| 
      
 3 
     | 
    
         
            +
            describe AllscriptsUnityClient::JSONClientDriver do
         
     | 
| 
       4 
4 
     | 
    
         
             
              it_behaves_like 'a client driver'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
              subject do
         
     | 
| 
         @@ -9,6 +9,7 @@ describe 'JSONClientDriver' do 
     | 
|
| 
       9 
9 
     | 
    
         
             
                client_driver
         
     | 
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
      
 12 
     | 
    
         
            +
              let(:new_relic_client_driver) { build(:json_client_driver, new_relic: true) }
         
     | 
| 
       12 
13 
     | 
    
         
             
              let(:get_server_info) { FixtureLoader.load_file('get_server_info.json') }
         
     | 
| 
       13 
14 
     | 
    
         
             
              let(:get_security_token) { FixtureLoader.load_file('get_security_token.json') }
         
     | 
| 
       14 
15 
     | 
    
         
             
              let(:retire_security_token) { FixtureLoader.load_file('retire_security_token.json') }
         
     | 
| 
         @@ -23,7 +24,7 @@ describe 'JSONClientDriver' do 
     | 
|
| 
       23 
24 
     | 
    
         
             
              end
         
     | 
| 
       24 
25 
     | 
    
         | 
| 
       25 
26 
     | 
    
         
             
              let(:json_hash) do
         
     | 
| 
       26 
     | 
    
         
            -
                 
     | 
| 
      
 27 
     | 
    
         
            +
                Oj.dump(hash, mode: :strict)
         
     | 
| 
       27 
28 
     | 
    
         
             
              end
         
     | 
| 
       28 
29 
     | 
    
         | 
| 
       29 
30 
     | 
    
         
             
              describe '#initialize' do
         
     | 
| 
         @@ -51,6 +52,11 @@ describe 'JSONClientDriver' do 
     | 
|
| 
       51 
52 
     | 
    
         
             
                  expect(WebMock).to have_requested(:post, 'http://www.example.com/Unity/UnityService.svc/json/MagicJson').with(body: /\{"Action":(null|"[^"]*"),"AppUserID":(null|"[^"]*"),"Appname":(null|"[^"]*"),"PatientID":(null|"[^"]*"),"Token":(null|"[^"]*"),"Parameter1":(null|"[^"]*"),"Parameter2":(null|"[^"]*"),"Parameter3":(null|"[^"]*"),"Parameter4":(null|"[^"]*"),"Parameter5":(null|"[^"]*"),"Parameter6":(null|"[^"]*"),"Data":(null|"[^"]*")\}/, headers: { 'Content-Type' => 'application/json' })
         
     | 
| 
       52 
53 
     | 
    
         
             
                end
         
     | 
| 
       53 
54 
     | 
    
         | 
| 
      
 55 
     | 
    
         
            +
                it 'should serialize DateTime to iso8601 when given' do
         
     | 
| 
      
 56 
     | 
    
         
            +
                  subject.magic(parameter1: DateTime.now)
         
     | 
| 
      
 57 
     | 
    
         
            +
                  expect(WebMock).to have_requested(:post, 'http://www.example.com/Unity/UnityService.svc/json/MagicJson').with(body: /\{"Action":(null|"[^"]*"),"AppUserID":(null|"[^"]*"),"Appname":(null|"[^"]*"),"PatientID":(null|"[^"]*"),"Token":(null|"[^"]*"),"Parameter1":"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(-|\+)\d{2}:\d{2}","Parameter2":(null|"[^"]*"),"Parameter3":(null|"[^"]*"),"Parameter4":(null|"[^"]*"),"Parameter5":(null|"[^"]*"),"Parameter6":(null|"[^"]*"),"Data":(null|"[^"]*")\}/, headers: { 'Content-Type' => 'application/json' })
         
     | 
| 
      
 58 
     | 
    
         
            +
                end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
       54 
60 
     | 
    
         
             
                it 'should call start_timer' do
         
     | 
| 
       55 
61 
     | 
    
         
             
                  subject.magic
         
     | 
| 
       56 
62 
     | 
    
         
             
                  expect(subject).to have_received(:start_timer)
         
     | 
| 
         @@ -0,0 +1,49 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe AllscriptsUnityClient::NewRelicSupport do
         
     | 
| 
      
 4 
     | 
    
         
            +
              subject { described_class }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:scope) { ['scope'] }
         
     | 
| 
      
 6 
     | 
    
         
            +
              let(:block) { lambda {} }
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              before :all do
         
     | 
| 
      
 9 
     | 
    
         
            +
                # Mock a test class for NewRelic mixin tests.
         
     | 
| 
      
 10 
     | 
    
         
            +
                class NewRelicSupportTest
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              describe '.enable_method_tracer' do
         
     | 
| 
      
 15 
     | 
    
         
            +
                context 'when given an object that does not have the NewRelic::Agent::MethodTracer module mixed in' do
         
     | 
| 
      
 16 
     | 
    
         
            +
                  it 'mixes in the NewRelic::Agent::MethodTracer module' do
         
     | 
| 
      
 17 
     | 
    
         
            +
                    allow(NewRelicSupportTest).to receive(:extend)
         
     | 
| 
      
 18 
     | 
    
         
            +
                    subject.enable_method_tracer(NewRelicSupportTest.new)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    expect(NewRelicSupportTest).to have_received(:extend).with(::NewRelic::Agent::MethodTracer)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                context 'when given an object that does have the NewRelic::Agent::MethodTracer module mixed in' do
         
     | 
| 
      
 24 
     | 
    
         
            +
                  it 'does not mix in the NewRelic::Agent::MethodTracer module' do
         
     | 
| 
      
 25 
     | 
    
         
            +
                    allow(NewRelicSupportTest).to receive(:extend)
         
     | 
| 
      
 26 
     | 
    
         
            +
                    allow(NewRelicSupportTest).to receive(:trace_execution_scoped)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    allow(NewRelicSupportTest).to receive(:add_method_tracer)
         
     | 
| 
      
 28 
     | 
    
         
            +
                    subject.enable_method_tracer(NewRelicSupportTest.new)
         
     | 
| 
      
 29 
     | 
    
         
            +
                    expect(NewRelicSupportTest).not_to have_received(:extend).with(::NewRelic::Agent::MethodTracer)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
              describe '.trace_execution_scoped_if_available' do
         
     | 
| 
      
 35 
     | 
    
         
            +
                context 'when a class does not have trace_execution_scoped and is given block' do
         
     | 
| 
      
 36 
     | 
    
         
            +
                  it 'will yield to the block' do
         
     | 
| 
      
 37 
     | 
    
         
            +
                    expect { |b| subject.trace_execution_scoped_if_available(NewRelicSupportTest, scope, &b) }.to yield_control
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                context 'when a class has trace_execution_scoped and is given a block' do
         
     | 
| 
      
 42 
     | 
    
         
            +
                  it 'will pass the block to trace_execution_scoped' do
         
     | 
| 
      
 43 
     | 
    
         
            +
                    allow(NewRelicSupportTest).to receive(:trace_execution_scoped)
         
     | 
| 
      
 44 
     | 
    
         
            +
                    subject.trace_execution_scoped_if_available(NewRelicSupportTest, scope, &block)
         
     | 
| 
      
 45 
     | 
    
         
            +
                    expect(NewRelicSupportTest).to have_received(:trace_execution_scoped).with(scope)
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
                end
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            describe  
     | 
| 
      
 3 
     | 
    
         
            +
            describe AllscriptsUnityClient::SOAPClientDriver do
         
     | 
| 
       4 
4 
     | 
    
         
             
              include Savon::SpecHelper
         
     | 
| 
       5 
5 
     | 
    
         
             
              it_behaves_like 'a client driver'
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
         @@ -10,6 +10,7 @@ describe 'SOAPClientDriver' do 
     | 
|
| 
       10 
10 
     | 
    
         
             
                client_driver
         
     | 
| 
       11 
11 
     | 
    
         
             
              end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
      
 13 
     | 
    
         
            +
              let(:new_relic_client_driver) { build(:soap_client_driver, new_relic: true) }
         
     | 
| 
       13 
14 
     | 
    
         
             
              let(:get_server_info) { FixtureLoader.load_file('get_server_info.xml') }
         
     | 
| 
       14 
15 
     | 
    
         
             
              let(:get_security_token) { FixtureLoader.load_file('get_security_token.xml') }
         
     | 
| 
       15 
16 
     | 
    
         
             
              let(:retire_security_token) { FixtureLoader.load_file('retire_security_token.xml') }
         
     | 
| 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            RSpec.configure do |config|
         
     | 
| 
      
 2 
     | 
    
         
            +
              config.before(:suite) do
         
     | 
| 
      
 3 
     | 
    
         
            +
                # Mock the NewRelic::Agent::MethodTracer module
         
     | 
| 
      
 4 
     | 
    
         
            +
                module NewRelic
         
     | 
| 
      
 5 
     | 
    
         
            +
                  module Agent
         
     | 
| 
      
 6 
     | 
    
         
            +
                    module MethodTracer
         
     | 
| 
      
 7 
     | 
    
         
            +
                      def trace_execution_scoped
         
     | 
| 
      
 8 
     | 
    
         
            +
                      end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                      def add_method_tracer
         
     | 
| 
      
 11 
     | 
    
         
            +
                      end
         
     | 
| 
      
 12 
     | 
    
         
            +
                    end
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,4 +1,16 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            shared_examples 'a client driver' do
         
     | 
| 
      
 2 
     | 
    
         
            +
              describe '#initialize' do
         
     | 
| 
      
 3 
     | 
    
         
            +
                context 'when options.new_relic is true' do
         
     | 
| 
      
 4 
     | 
    
         
            +
                  it 'enables NewRelic tracing' do
         
     | 
| 
      
 5 
     | 
    
         
            +
                    allow(AllscriptsUnityClient::NewRelicSupport).to receive(:enable_method_tracer)
         
     | 
| 
      
 6 
     | 
    
         
            +
                    allow(described_class).to receive(:add_method_tracer)
         
     | 
| 
      
 7 
     | 
    
         
            +
                    new_relic_client_driver
         
     | 
| 
      
 8 
     | 
    
         
            +
                    expect(AllscriptsUnityClient::NewRelicSupport).to have_received(:enable_method_tracer).with(new_relic_client_driver)
         
     | 
| 
      
 9 
     | 
    
         
            +
                    expect(described_class).to have_received(:add_method_tracer).with(:magic)
         
     | 
| 
      
 10 
     | 
    
         
            +
                  end
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
       2 
14 
     | 
    
         
             
              describe '#security_token?' do
         
     | 
| 
       3 
15 
     | 
    
         
             
                context 'when @security_token is nil' do
         
     | 
| 
       4 
16 
     | 
    
         
             
                  it do
         
     | 
    
        data/spec/timezone_spec.rb
    CHANGED
    
    
    
        data/spec/unity_request_spec.rb
    CHANGED
    
    
    
        data/spec/unity_response_spec.rb
    CHANGED
    
    
    
        data/spec/utilities_spec.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: allscripts_unity_client
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.0 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ash Gupta
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2014- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2014-07-02 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: savon
         
     | 
| 
         @@ -115,6 +115,20 @@ dependencies: 
     | 
|
| 
       115 
115 
     | 
    
         
             
                - - ~>
         
     | 
| 
       116 
116 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       117 
117 
     | 
    
         
             
                    version: 1.1.0
         
     | 
| 
      
 118 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 119 
     | 
    
         
            +
              name: oj
         
     | 
| 
      
 120 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 121 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 122 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 123 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 124 
     | 
    
         
            +
                    version: 2.9.8
         
     | 
| 
      
 125 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 126 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 127 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 128 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 129 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 130 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 131 
     | 
    
         
            +
                    version: 2.9.8
         
     | 
| 
       118 
132 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       119 
133 
     | 
    
         
             
              name: factory_girl
         
     | 
| 
       120 
134 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -163,14 +177,14 @@ dependencies: 
     | 
|
| 
       163 
177 
     | 
    
         
             
                requirements:
         
     | 
| 
       164 
178 
     | 
    
         
             
                - - ~>
         
     | 
| 
       165 
179 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       166 
     | 
    
         
            -
                    version: 3.0.0 
     | 
| 
      
 180 
     | 
    
         
            +
                    version: 3.0.0
         
     | 
| 
       167 
181 
     | 
    
         
             
              type: :development
         
     | 
| 
       168 
182 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       169 
183 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       170 
184 
     | 
    
         
             
                requirements:
         
     | 
| 
       171 
185 
     | 
    
         
             
                - - ~>
         
     | 
| 
       172 
186 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       173 
     | 
    
         
            -
                    version: 3.0.0 
     | 
| 
      
 187 
     | 
    
         
            +
                    version: 3.0.0
         
     | 
| 
       174 
188 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       175 
189 
     | 
    
         
             
              name: simplecov
         
     | 
| 
       176 
190 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -236,6 +250,7 @@ files: 
     | 
|
| 
       236 
250 
     | 
    
         
             
            - lib/allscripts_unity_client/json_client_driver.rb
         
     | 
| 
       237 
251 
     | 
    
         
             
            - lib/allscripts_unity_client/json_unity_request.rb
         
     | 
| 
       238 
252 
     | 
    
         
             
            - lib/allscripts_unity_client/json_unity_response.rb
         
     | 
| 
      
 253 
     | 
    
         
            +
            - lib/allscripts_unity_client/new_relic_support.rb
         
     | 
| 
       239 
254 
     | 
    
         
             
            - lib/allscripts_unity_client/soap_client_driver.rb
         
     | 
| 
       240 
255 
     | 
    
         
             
            - lib/allscripts_unity_client/timezone.rb
         
     | 
| 
       241 
256 
     | 
    
         
             
            - lib/allscripts_unity_client/unity_request.rb
         
     | 
| 
         @@ -250,11 +265,7 @@ files: 
     | 
|
| 
       250 
265 
     | 
    
         
             
            - spec/factories/client_driver_factory.rb
         
     | 
| 
       251 
266 
     | 
    
         
             
            - spec/factories/client_factory.rb
         
     | 
| 
       252 
267 
     | 
    
         
             
            - spec/factories/client_options.rb
         
     | 
| 
       253 
     | 
    
         
            -
            - spec/factories/json_client_driver_factory.rb
         
     | 
| 
       254 
     | 
    
         
            -
            - spec/factories/json_unity_request_factory.rb
         
     | 
| 
       255 
     | 
    
         
            -
            - spec/factories/json_unity_response_factory.rb
         
     | 
| 
       256 
268 
     | 
    
         
             
            - spec/factories/magic_request_factory.rb
         
     | 
| 
       257 
     | 
    
         
            -
            - spec/factories/soap_client_driver_factory.rb
         
     | 
| 
       258 
269 
     | 
    
         
             
            - spec/factories/timezone_factory.rb
         
     | 
| 
       259 
270 
     | 
    
         
             
            - spec/factories/unity_request_factory.rb
         
     | 
| 
       260 
271 
     | 
    
         
             
            - spec/factories/unity_response_factory.rb
         
     | 
| 
         @@ -281,10 +292,12 @@ files: 
     | 
|
| 
       281 
292 
     | 
    
         
             
            - spec/json_client_driver_spec.rb
         
     | 
| 
       282 
293 
     | 
    
         
             
            - spec/json_unity_request_spec.rb
         
     | 
| 
       283 
294 
     | 
    
         
             
            - spec/json_unity_response_spec.rb
         
     | 
| 
      
 295 
     | 
    
         
            +
            - spec/new_relic_support_spec.rb
         
     | 
| 
       284 
296 
     | 
    
         
             
            - spec/soap_client_driver_spec.rb
         
     | 
| 
       285 
297 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       286 
298 
     | 
    
         
             
            - spec/support/factory_girl.rb
         
     | 
| 
       287 
299 
     | 
    
         
             
            - spec/support/fixture_loader.rb
         
     | 
| 
      
 300 
     | 
    
         
            +
            - spec/support/new_relic.rb
         
     | 
| 
       288 
301 
     | 
    
         
             
            - spec/support/shared_examples_for_client_driver.rb
         
     | 
| 
       289 
302 
     | 
    
         
             
            - spec/support/shared_examples_for_unity_request.rb
         
     | 
| 
       290 
303 
     | 
    
         
             
            - spec/support/shared_examples_for_unity_response.rb
         
     |