Commit 31f9a34571b3b36ce9d9474ec1d2e9555060d4d8

Authored by Isaac Lewis
0 parents

init; some tests

.gitignore 0 → 100644
  1 +++ a/.gitignore
  1 +/.bundle/
  2 +/.yardoc
  3 +/_yardoc/
  4 +/coverage/
  5 +/doc/
  6 +/pkg/
  7 +/spec/reports/
  8 +/tmp/
  9 +
  10 +# rspec failure tracking
  11 +.rspec_status
... ...
.rspec 0 → 100644
  1 +++ a/.rspec
  1 +--format documentation
  2 +--color
  3 +--require spec_helper
... ...
.travis.yml 0 → 100644
  1 +++ a/.travis.yml
  1 +sudo: false
  2 +language: ruby
  3 +rvm:
  4 + - 2.3.1
  5 +before_install: gem install bundler -v 1.16.1
... ...
CODE_OF_CONDUCT.md 0 → 100644
  1 +++ a/CODE_OF_CONDUCT.md
  1 +# Contributor Covenant Code of Conduct
  2 +
  3 +## Our Pledge
  4 +
  5 +In the interest of fostering an open and welcoming environment, we as
  6 +contributors and maintainers pledge to making participation in our project and
  7 +our community a harassment-free experience for everyone, regardless of age, body
  8 +size, disability, ethnicity, gender identity and expression, level of experience,
  9 +nationality, personal appearance, race, religion, or sexual identity and
  10 +orientation.
  11 +
  12 +## Our Standards
  13 +
  14 +Examples of behavior that contributes to creating a positive environment
  15 +include:
  16 +
  17 +* Using welcoming and inclusive language
  18 +* Being respectful of differing viewpoints and experiences
  19 +* Gracefully accepting constructive criticism
  20 +* Focusing on what is best for the community
  21 +* Showing empathy towards other community members
  22 +
  23 +Examples of unacceptable behavior by participants include:
  24 +
  25 +* The use of sexualized language or imagery and unwelcome sexual attention or
  26 +advances
  27 +* Trolling, insulting/derogatory comments, and personal or political attacks
  28 +* Public or private harassment
  29 +* Publishing others' private information, such as a physical or electronic
  30 + address, without explicit permission
  31 +* Other conduct which could reasonably be considered inappropriate in a
  32 + professional setting
  33 +
  34 +## Our Responsibilities
  35 +
  36 +Project maintainers are responsible for clarifying the standards of acceptable
  37 +behavior and are expected to take appropriate and fair corrective action in
  38 +response to any instances of unacceptable behavior.
  39 +
  40 +Project maintainers have the right and responsibility to remove, edit, or
  41 +reject comments, commits, code, wiki edits, issues, and other contributions
  42 +that are not aligned to this Code of Conduct, or to ban temporarily or
  43 +permanently any contributor for other behaviors that they deem inappropriate,
  44 +threatening, offensive, or harmful.
  45 +
  46 +## Scope
  47 +
  48 +This Code of Conduct applies both within project spaces and in public spaces
  49 +when an individual is representing the project or its community. Examples of
  50 +representing a project or community include using an official project e-mail
  51 +address, posting via an official social media account, or acting as an appointed
  52 +representative at an online or offline event. Representation of a project may be
  53 +further defined and clarified by project maintainers.
  54 +
  55 +## Enforcement
  56 +
  57 +Instances of abusive, harassing, or otherwise unacceptable behavior may be
  58 +reported by contacting the project team at isaac@ike.io. All
  59 +complaints will be reviewed and investigated and will result in a response that
  60 +is deemed necessary and appropriate to the circumstances. The project team is
  61 +obligated to maintain confidentiality with regard to the reporter of an incident.
  62 +Further details of specific enforcement policies may be posted separately.
  63 +
  64 +Project maintainers who do not follow or enforce the Code of Conduct in good
  65 +faith may face temporary or permanent repercussions as determined by other
  66 +members of the project's leadership.
  67 +
  68 +## Attribution
  69 +
  70 +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
  71 +available at [http://contributor-covenant.org/version/1/4][version]
  72 +
  73 +[homepage]: http://contributor-covenant.org
  74 +[version]: http://contributor-covenant.org/version/1/4/
... ...
Gemfile 0 → 100644
  1 +++ a/Gemfile
  1 +source "https://rubygems.org"
  2 +
  3 +git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
  4 +
  5 +# Specify your gem's dependencies in syspro.gemspec
  6 +gemspec
... ...
LICENSE.txt 0 → 100644
  1 +++ a/LICENSE.txt
  1 +The MIT License (MIT)
  2 +
  3 +Copyright (c) 2018 Isaac Lewis
  4 +
  5 +Permission is hereby granted, free of charge, to any person obtaining a copy
  6 +of this software and associated documentation files (the "Software"), to deal
  7 +in the Software without restriction, including without limitation the rights
  8 +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  9 +copies of the Software, and to permit persons to whom the Software is
  10 +furnished to do so, subject to the following conditions:
  11 +
  12 +The above copyright notice and this permission notice shall be included in
  13 +all copies or substantial portions of the Software.
  14 +
  15 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17 +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  18 +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19 +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  20 +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  21 +THE SOFTWARE.
... ...
README.md 0 → 100644
  1 +++ a/README.md
  1 +# Syspro
  2 +
  3 +Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/syspro`. To experiment with that code, run `bin/console` for an interactive prompt.
  4 +
  5 +TODO: Delete this and the text above, and describe your gem
  6 +
  7 +## Installation
  8 +
  9 +Add this line to your application's Gemfile:
  10 +
  11 +```ruby
  12 +gem 'syspro'
  13 +```
  14 +
  15 +And then execute:
  16 +
  17 + $ bundle
  18 +
  19 +Or install it yourself as:
  20 +
  21 + $ gem install syspro
  22 +
  23 +## Usage
  24 +
  25 +TODO: Write usage instructions here
  26 +
  27 +## Development
  28 +
  29 +After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
  30 +
  31 +To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
  32 +
  33 +## Contributing
  34 +
  35 +Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/syspro. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
  36 +
  37 +## License
  38 +
  39 +The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
  40 +
  41 +## Code of Conduct
  42 +
  43 +Everyone interacting in the Syspro project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/syspro/blob/master/CODE_OF_CONDUCT.md).
... ...
Rakefile 0 → 100644
  1 +++ a/Rakefile
  1 +require "bundler/gem_tasks"
  2 +require "rspec/core/rake_task"
  3 +
  4 +RSpec::Core::RakeTask.new(:spec)
  5 +
  6 +task :default => :spec
... ...
bin/console 0 → 100755
  1 +++ a/bin/console
  1 +#!/usr/bin/env ruby
  2 +
  3 +require "bundler/setup"
  4 +require "syspro"
  5 +
  6 +# You can add fixtures and/or initialization code here to make experimenting
  7 +# with your gem easier. You can also use a different console, if you like.
  8 +
  9 +# (If you use this, don't forget to add pry to your Gemfile!)
  10 +# require "pry"
  11 +# Pry.start
  12 +
  13 +require "irb"
  14 +IRB.start(__FILE__)
... ...
bin/setup 0 → 100755
  1 +++ a/bin/setup
  1 +#!/usr/bin/env bash
  2 +set -euo pipefail
  3 +IFS=$'\n\t'
  4 +set -vx
  5 +
  6 +bundle install
  7 +
  8 +# Do any other automated setup that you need to do here
... ...
lib/syspro.rb 0 → 100644
  1 +++ a/lib/syspro.rb
  1 +require "syspro/version"
  2 +
  3 +module Syspro
  4 + # Your code goes here...
  5 +end
... ...
lib/syspro/version.rb 0 → 100644
  1 +++ a/lib/syspro/version.rb
  1 +module Syspro
  2 + VERSION = "0.1.0"
  3 +end
... ...
spec/spec_helper.rb 0 → 100644
  1 +++ a/spec/spec_helper.rb
  1 +require "bundler/setup"
  2 +require "syspro"
  3 +
  4 +RSpec.configure do |config|
  5 + # Enable flags like --only-failures and --next-failure
  6 + config.example_status_persistence_file_path = ".rspec_status"
  7 +
  8 + # Disable RSpec exposing methods globally on `Module` and `main`
  9 + config.disable_monkey_patching!
  10 +
  11 + config.expect_with :rspec do |c|
  12 + c.syntax = :expect
  13 + end
  14 +end
... ...
spec/syspro_spec.rb 0 → 100644
  1 +++ a/spec/syspro_spec.rb
  1 +RSpec.describe Syspro do
  2 + server_name = "dev3"
  3 +
  4 + Rspec.describe PrimitiveClient do
  5 + base_url = "http://#{server_name}/SYSPROWCFService"
  6 + binding = "RESTHttp"
  7 +
  8 + it "has a version number" do
  9 + expect(Syspro::VERSION).not_to be nil
  10 + end
  11 +
  12 + it "does something useful" do
  13 + expect(false).to eq(true)
  14 + end
  15 +
  16 + it "can be instantiated" do
  17 + expect {
  18 + sys = Syspro::PrimitiveClient.new(base_url, binding)
  19 + }.not_to raise_error
  20 + end
  21 +
  22 + it "can login to a syspro database" do
  23 + sys = Syspro::PrimitiveClient.new(base_url, binding)
  24 + login_reply = sys.login(operator_name, password, company_id, company_password)
  25 +
  26 + expect(login_reply).to eq(login_reply_example)
  27 + end
  28 +
  29 + it "can logoff from a syspro database" do
  30 + sys = Syspro::PrimitiveClient.new(base_url, binding)
  31 + logoff_reply = sys.logoff(user_id)
  32 +
  33 + expect(logoff_reply).to eq(logoff_reply_example)
  34 + end
  35 +
  36 + Rspec.describe Query do
  37 + sys = Syspro::PrimitiveClient.new(base_url, binding)
  38 +
  39 + it "can query browse" do
  40 + query_result = sys.query_browse(user_id, query_object)
  41 +
  42 + expect(query_result).to eq(query_result_example)
  43 + end
  44 +
  45 + it "can query fetch" do
  46 + query_result = sys.query_fetch(user_id, query_object)
  47 +
  48 + expect(query_result).to eq(query_result_example)
  49 + end
  50 +
  51 + it "can query query" do
  52 + query_result = sys.query_query(user_id, business_object, query_object)
  53 +
  54 + expect(query_result).to eq(query_result_example)
  55 + end
  56 + end
  57 +
  58 + Rspec.describe Setup do
  59 + sys = Syspro::PrimitiveClient.new(base_url, binding)
  60 +
  61 + it "can add" do
  62 + setup_result = sys.setup_add(user_id, business_object, params, query_object)
  63 +
  64 + expect(setup_result).to eq(setup_result_example)
  65 + end
  66 +
  67 + it "can delete" do
  68 + setup_result = sys.setup_delete(user_id, business_object, params, query_object)
  69 +
  70 + expect(setup_result).to eq(setup_result_example)
  71 + end
  72 +
  73 + it "can update" do
  74 + setup_result = sys.setup_update(user_id, business_object, params, query_object)
  75 +
  76 + expect(setup_result).to eq(setup_result_example)
  77 + end
  78 + end
  79 +
  80 + Rspec.describe Transaction do
  81 + sys = Syspro::PrimitiveClient.new(base_url, binding)
  82 +
  83 + it "can build" do
  84 + expect(sys.transaction_build(user_id, business_object, query_object)).to eq(transaction_result_example)
  85 + end
  86 +
  87 + it "can post" do
  88 + expect(sys.transaction_post(user_id, business_object, query_object)).to eq(transaction_result_example)
  89 + end
  90 + end
  91 +
  92 + Rspec.describe Asynchronous do
  93 + # TODO: Describe asynchronous versions of above methods
  94 + end
  95 +
  96 + end # Primitive
  97 +
  98 + Rpec.describe Client do
  99 + base_url = "http://#{server_name}/SYSPROWCFService"
  100 + binding = "RESTHttp"
  101 +
  102 + Rspec.describe Utilities do
  103 +
  104 + end
  105 +
  106 + Rspec.describe Query do
  107 + end
  108 +
  109 + Rspec.describe Setup do
  110 + end
  111 +
  112 + Rspec.describe Transaction do
  113 + end
  114 + end # Client
  115 +end
  116 +
... ...
syspro.gemspec 0 → 100644
  1 +++ a/syspro.gemspec
  1 +
  2 +lib = File.expand_path("../lib", __FILE__)
  3 +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
  4 +require "syspro/version"
  5 +
  6 +Gem::Specification.new do |spec|
  7 + spec.name = "syspro"
  8 + spec.version = Syspro::VERSION
  9 + spec.authors = ["Isaac Lewis"]
  10 + spec.email = ["isaac@ike.io"]
  11 +
  12 + spec.summary = %q{TODO: Write a short summary, because RubyGems requires one.}
  13 + spec.description = %q{TODO: Write a longer description or delete this line.}
  14 + spec.homepage = "TODO: Put your gem's website or public repo URL here."
  15 + spec.license = "MIT"
  16 +
  17 + # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
  18 + # to allow pushing to a single host or delete this section to allow pushing to any host.
  19 + if spec.respond_to?(:metadata)
  20 + spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
  21 + else
  22 + raise "RubyGems 2.0 or newer is required to protect against " \
  23 + "public gem pushes."
  24 + end
  25 +
  26 + spec.files = `git ls-files -z`.split("\x0").reject do |f|
  27 + f.match(%r{^(test|spec|features)/})
  28 + end
  29 + spec.bindir = "exe"
  30 + spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
  31 + spec.require_paths = ["lib"]
  32 +
  33 + spec.add_development_dependency "bundler", "~> 1.16"
  34 + spec.add_development_dependency "rake", "~> 10.0"
  35 + spec.add_development_dependency "rspec", "~> 3.0"
  36 +end
... ...