TINCheck

Overview

This gem provides a simple interface for interacting with TINCheck's SOAP API. It doesn't use any SOAP library and the response object is a glorified hash that merges all the keys from the various Result elements.

Installation

Pretty standard gem stuff.

$ gem install tincheck

When using Bundler or requiring this library in general, it's important to note that this gem will attempt to load its XML add-ons by default if Ox or Nokogiri is already defined, it will use them in that order. Otherwise, it will use the default of REXML. The only consideration is that REXML will get required if neither optional library is already required.

So, ensure you load your project's XML libs (if you're using them) first.

Configuration

Generally, you'll just configure a username and password. Unfortunately, TINCheck doesn't have any sort of a sandbox. Happy testing.

ENV

Prefix any configuration option with tincheck_ and it will be automatically set:

  • ENV['tincheck_password']
  • ENV['tincheck_proxy_url']
  • ENV['tincheck_username']
  • ENV['tincheck_xml_lib']

You can return the configuration set by the environment with TINCheck.env_config which might be useful in situations where you want multiple configurations modified from a default set by the environment.

With a Hash

TINCheck.configure(
  password: 'password',
  username: '[email protected]'
)

With a Block

TINCheck.configure do
  password 'password'
  username '[email protected]'
end

Making Requests

Basic requests can be made using TINCheck.request. This will take the supplied hash, wrap it in a SOAP envelop and inject the proper credentials. You should probably never do this directly.

TINCheck only supports for different services and this gem currently supports only two of those, each with its own method.

Check Service Status

If you want to just make sure everything is working:

response = TINCheck.status # => #<TINCheck::Response>

Check a TIN and a Name

response = TINCheck.tin_name(name: 'John Q Person', tin: '000000000') # => #<TINCheck::Response>
response.name_and_tin_match? # => true
response.death_record? # => false

Contributing

Issue Guidelines

GitHub issues are for bugs, not support. As of right now, there is no official support for this gem. You can try reaching out to the author, Joshua Hansen if you're really stuck, but there's a pretty high chance that won't go anywhere at the moment or you'll get a response like this:

Hi. I'm super busy. It's nothing personal. Check the README first if you haven't already. If you don 't find your answer there, it's time to start reading the source. Have fun! Let me know if I screwed something up.

Pull Request Guidelines

  • Include tests with your PRs. (Wouldn't it be nice if I included some?)
  • Run rubocop to ensure your style fits with the rest of the project.

Code of Conduct

Be nice. After all, this is free code. I have a day job.

License

See LICENSE.txt.

What if I stop maintaining this?

The codebase isn't huge. If you opt to rely on this code and I die/get bored/find enlightenment you should be able to maintain it. Sadly, that's the only guarantee at the moment!