added algorithm gem

This commit is contained in:
booboy 2019-02-06 23:45:18 -06:00
parent 507f8fe048
commit 18e1985d5d
16 changed files with 207 additions and 9 deletions

11
algorithms/.gitignore vendored Normal file
View file

@ -0,0 +1,11 @@
/.bundle/
/.yardoc
/_yardoc/
/coverage/
/doc/
/pkg/
/spec/reports/
/tmp/
# rspec failure tracking
.rspec_status

3
algorithms/.rspec Normal file
View file

@ -0,0 +1,3 @@
--format documentation
--color
--require spec_helper

7
algorithms/.travis.yml Normal file
View file

@ -0,0 +1,7 @@
---
sudo: false
language: ruby
cache: bundler
rvm:
- 2.6.1
before_install: gem install bundler -v 2.0.1

4
algorithms/Gemfile Normal file
View file

@ -0,0 +1,4 @@
source "https://rubygems.org"
# Specify your gem's dependencies in algorithms.gemspec
gemspec

41
algorithms/Gemfile.lock Normal file
View file

@ -0,0 +1,41 @@
PATH
remote: .
specs:
algorithms (0.1.0)
GEM
remote: https://rubygems.org/
specs:
coderay (1.1.2)
diff-lcs (1.3)
method_source (0.9.2)
pry (0.12.2)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
rake (10.5.0)
rspec (3.8.0)
rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0)
rspec-mocks (~> 3.8.0)
rspec-core (3.8.0)
rspec-support (~> 3.8.0)
rspec-expectations (3.8.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.8.0)
rspec-mocks (3.8.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.8.0)
rspec-support (3.8.0)
PLATFORMS
ruby
DEPENDENCIES
algorithms!
bundler (~> 2.0)
pry (~> 0.12.2)
rake (~> 10.0)
rspec (~> 3.0)
BUNDLED WITH
2.0.1

35
algorithms/README.md Normal file
View file

@ -0,0 +1,35 @@
# Algorithms
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/algorithms`. To experiment with that code, run `bin/console` for an interactive prompt.
TODO: Delete this and the text above, and describe your gem
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'algorithms'
```
And then execute:
$ bundle
Or install it yourself as:
$ gem install algorithms
## Usage
TODO: Write usage instructions here
## Development
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.
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).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/algorithms.

6
algorithms/Rakefile Normal file
View file

@ -0,0 +1,6 @@
require "bundler/gem_tasks"
require "rspec/core/rake_task"
RSpec::Core::RakeTask.new(:spec)
task :default => :spec

View file

@ -0,0 +1,41 @@
lib = File.expand_path("../lib", __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require "algorithms/version"
Gem::Specification.new do |spec|
spec.name = "algorithms"
spec.version = Algorithms::VERSION
spec.authors = ["booboy"]
spec.email = ["bpmcdevitt@thelinuxspace.com"]
spec.summary = %q{Various algorithms written in Ruby.}
spec.homepage = "https://git.mcdevitt.tech/bpmcdevitt/misc_rbtools/algorithms"
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
# to allow pushing to a single host or delete this section to allow pushing to any host.
if spec.respond_to?(:metadata)
spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
spec.metadata["homepage_uri"] = spec.homepage
spec.metadata["source_code_uri"] = "https://git.mcdevitt.tech/bpmcdevitt/misc_rbtools/algorithms"
spec.metadata["changelog_uri"] = "https://git.mcdevitt.tech/bpmcdevitt/misc_rbtools/README.md"
else
raise "RubyGems 2.0 or newer is required to protect against " \
"public gem pushes."
end
# Specify which files should be added to the gem when it is released.
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
end
spec.bindir = "exe"
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]
spec.add_development_dependency "bundler", "~> 2.0"
spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "rspec", "~> 3.0"
spec.add_development_dependency "pry", "~> 0.12.2"
end

View file

@ -1,9 +0,0 @@
# im going to learn algorithms by makin a giant module that covers a different algorithm.
# i will link the resources i am learning the algorithm from in my code.
module Algorithms
class Sorting
def selection
end
end
end

11
algorithms/bin/console Executable file
View file

@ -0,0 +1,11 @@
#!/usr/bin/env ruby
require "bundler/setup"
require "algorithms"
# You can add fixtures and/or initialization code here to make experimenting
# with your gem easier. You can also use a different console, if you like.
# (If you use this, don't forget to add pry to your Gemfile!)
require "pry"
Pry.start

8
algorithms/bin/setup Executable file
View file

@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
set -vx
bundle install
# Do any other automated setup that you need to do here

View file

@ -0,0 +1,7 @@
require "algorithms/version"
require "algorithms/sorting"
module Algorithms
class Error < StandardError; end
# Your code goes here...
end

View file

@ -0,0 +1,7 @@
module Algorithms
class Sorting
def selection(a, n)
puts 'insert code for selection sort here'
end
end
end

View file

@ -0,0 +1,3 @@
module Algorithms
VERSION = "0.1.0"
end

View file

@ -0,0 +1,9 @@
RSpec.describe Algorithms do
it "has a version number" do
expect(Algorithms::VERSION).not_to be nil
end
it "does something useful" do
expect(false).to eq(true)
end
end

View file

@ -0,0 +1,14 @@
require "bundler/setup"
require "algorithms"
RSpec.configure do |config|
# Enable flags like --only-failures and --next-failure
config.example_status_persistence_file_path = ".rspec_status"
# Disable RSpec exposing methods globally on `Module` and `main`
config.disable_monkey_patching!
config.expect_with :rspec do |c|
c.syntax = :expect
end
end