g4s_client 0.1.6 → 0.1.7
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.
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            require 'soap/header/simplehandler'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class CommodityListHeader <  CustomHeader
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              NAMESPACE  = 'http://WS.G4SI.COM/'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              def initialize(commodity_list)
         | 
| 8 | 
            +
                @commodity_list = commodity_list
         | 
| 9 | 
            +
                super(XSD::QName.new(NAMESPACE, 'CommodityList'))
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              def on_simple_outbound
         | 
| 13 | 
            +
                to_hash(@commodity_list)
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            end
         | 
| @@ -2,7 +2,7 @@ require 'soap/header/simplehandler' | |
| 2 2 |  | 
| 3 3 | 
             
            class CustomHeader < SOAP::Header::SimpleHandler
         | 
| 4 4 |  | 
| 5 | 
            -
              NAMESPACE  = 'http:// | 
| 5 | 
            +
              NAMESPACE  = 'http://WS.G4SI.COM/'
         | 
| 6 6 |  | 
| 7 7 | 
             
            #  def initialize(shipment_request)
         | 
| 8 8 | 
             
            #    @shipment_request = shipment_request
         | 
| @@ -16,16 +16,20 @@ class CustomHeader < SOAP::Header::SimpleHandler | |
| 16 16 |  | 
| 17 17 | 
             
              protected
         | 
| 18 18 |  | 
| 19 | 
            +
              def primitive_types
         | 
| 20 | 
            +
                [ NilClass, TrueClass, FalseClass, Numeric, Time, Date, DateTime, String, Symbol ]
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
             | 
| 19 23 | 
             
              # Transform a object into a hash of its instance variables
         | 
| 20 24 | 
             
              def to_hash(object)
         | 
| 21 25 | 
             
                return {} unless object
         | 
| 22 26 | 
             
                result = {}
         | 
| 27 | 
            +
                #puts "to_hash #{object.class}:#{object}"
         | 
| 28 | 
            +
                #puts "#{y object.instance_variables.sort}"
         | 
| 23 29 | 
             
                object.instance_variables.each do |var|
         | 
| 24 30 | 
             
                  value =  object.instance_variable_get(var)
         | 
| 25 | 
            -
                  var | 
| 26 | 
            -
                   | 
| 27 | 
            -
                  result[var] = value
         | 
| 28 | 
            -
                  #TODO: NESTING:  some things like Address will need to     result[var] = to_hash(object.instance_variable_get(var))
         | 
| 31 | 
            +
                  result[instance_var_name_to_tag(var)] = format_value(value)
         | 
| 32 | 
            +
                  #TODO: NESTING
         | 
| 29 33 | 
             
                end
         | 
| 30 34 | 
             
                result
         | 
| 31 35 | 
             
              end
         | 
| @@ -35,5 +39,23 @@ class CustomHeader < SOAP::Header::SimpleHandler | |
| 35 39 | 
             
                string[0].chr.capitalize + string[1, string.size]
         | 
| 36 40 | 
             
              end
         | 
| 37 41 |  | 
| 42 | 
            +
              def instance_var_name_to_tag(var)
         | 
| 43 | 
            +
                var.gsub!('@','')
         | 
| 44 | 
            +
                var = capitalize_first_letter(var)
         | 
| 45 | 
            +
                var
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              def format_value(value)
         | 
| 49 | 
            +
                if primitive_types.any?{|type| value.is_a?(type)}
         | 
| 50 | 
            +
                  if value.is_a?(Time)
         | 
| 51 | 
            +
                    return value.strftime("%Y-%m-%dT%H:%M:%S")  # YYYY-MM-DDTHH:MM:SS
         | 
| 52 | 
            +
                  end
         | 
| 53 | 
            +
                  return value
         | 
| 54 | 
            +
                else
         | 
| 55 | 
            +
                  #puts "non primitive value found: #{value.class}:#{value}"
         | 
| 56 | 
            +
                  return to_hash(value)  # recurse for non-"primitive" types such as Address.
         | 
| 57 | 
            +
                end
         | 
| 58 | 
            +
              end
         | 
| 59 | 
            +
             | 
| 38 60 |  | 
| 39 61 | 
             
            end
         | 
    
        data/lib/g4s/insured_ship.rb
    CHANGED
    
    | @@ -9,8 +9,13 @@ class InsuredShip | |
| 9 9 | 
             
                reset_service_instance
         | 
| 10 10 | 
             
                @service.headerhandler <<   ShipmentRequestHeader.new(shipment_request)   # add new headers.
         | 
| 11 11 | 
             
                @service.calculateEstimatedPrice(CalculateEstimatedPrice.new())
         | 
| 12 | 
            +
              end
         | 
| 12 13 |  | 
| 13 | 
            -
             | 
| 14 | 
            +
              def createShipment(shipment_request = ShipmentRequest.new, commodity_list = CommodityList.new)
         | 
| 15 | 
            +
                reset_service_instance
         | 
| 16 | 
            +
                @service.headerhandler <<   ShipmentRequestHeader.new(shipment_request)   # add new headers.
         | 
| 17 | 
            +
                @service.headerhandler <<   CommodityListHeader.new(commodity_list)   # add new headers.
         | 
| 18 | 
            +
                @service.createShipment(CreateShipment.new())
         | 
| 14 19 | 
             
              end
         | 
| 15 20 |  | 
| 16 21 | 
             
              protected
         | 
| @@ -20,7 +25,6 @@ class InsuredShip | |
| 20 25 | 
             
                @service.wiredump_dev=STDERR
         | 
| 21 26 | 
             
                @service.options['protocol.http.ssl_config.verify_mode'] = OpenSSL::SSL::VERIFY_NONE
         | 
| 22 27 | 
             
                @service.filterchain << G4sNamespaceFilter.new
         | 
| 23 | 
            -
                puts "gogogo"
         | 
| 24 28 | 
             
              end
         | 
| 25 29 |  | 
| 26 30 | 
             
            end
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
             | 
| 2 | 
            +
             | 
| 3 | 
            +
            class InsuredUtilities
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              def initialize
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              def getPackageTypes()
         | 
| 9 | 
            +
                reset_service_instance
         | 
| 10 | 
            +
                #@service.headerhandler <<   ShipmentRequestHeader.new(shipment_request)   # add new headers.
         | 
| 11 | 
            +
                @service.getPackageTypes(GetPackageTypes.new())
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              protected
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              def reset_service_instance
         | 
| 17 | 
            +
                @service = G4s.instance.utilities.service  # must make a new instance each time.
         | 
| 18 | 
            +
                @service.wiredump_dev=STDERR
         | 
| 19 | 
            +
                @service.options['protocol.http.ssl_config.verify_mode'] = OpenSSL::SSL::VERIFY_NONE
         | 
| 20 | 
            +
                @service.filterchain << G4sNamespaceFilter.new
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            end
         | 
    
        data/lib/g4s_client.rb
    CHANGED
    
    | @@ -14,10 +14,12 @@ | |
| 14 14 | 
             
              "g4s/utilities/defaultMappingRegistry",
         | 
| 15 15 | 
             
              "g4s/g4s",
         | 
| 16 16 | 
             
              "g4s/insured_ship",
         | 
| 17 | 
            +
              "g4s/insured_utilities",
         | 
| 17 18 | 
             
              "g4s/headers/custom_header",
         | 
| 18 19 | 
             
              "g4s/headers/g4si_auth_header",
         | 
| 19 20 | 
             
              "g4s/headers/shipment_request_header",
         | 
| 20 21 | 
             
              "g4s/headers/g4s_namespace_filter",
         | 
| 22 | 
            +
              "g4s/headers/commodity_list_header",
         | 
| 21 23 | 
             
              "version"].each{|f| require f}  
         | 
| 22 24 |  | 
| 23 25 | 
             
            module G4sClient
         | 
    
        data/lib/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: g4s_client
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 21
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 8 | 
             
              - 1
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0.1. | 
| 9 | 
            +
              - 7
         | 
| 10 | 
            +
              version: 0.1.7
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Rob Tierney
         | 
| @@ -35,11 +35,13 @@ files: | |
| 35 35 | 
             
            - Rakefile
         | 
| 36 36 | 
             
            - g4s_client.gemspec
         | 
| 37 37 | 
             
            - lib/g4s/g4s.rb
         | 
| 38 | 
            +
            - lib/g4s/headers/commodity_list_header.rb
         | 
| 38 39 | 
             
            - lib/g4s/headers/custom_header.rb
         | 
| 39 40 | 
             
            - lib/g4s/headers/g4s_namespace_filter.rb
         | 
| 40 41 | 
             
            - lib/g4s/headers/g4si_auth_header.rb
         | 
| 41 42 | 
             
            - lib/g4s/headers/shipment_request_header.rb
         | 
| 42 43 | 
             
            - lib/g4s/insured_ship.rb
         | 
| 44 | 
            +
            - lib/g4s/insured_utilities.rb
         | 
| 43 45 | 
             
            - lib/g4s/shipping/IPSShippingClient.rb
         | 
| 44 46 | 
             
            - lib/g4s/shipping/default.rb
         | 
| 45 47 | 
             
            - lib/g4s/shipping/defaultDriver.rb
         |