DEV: add some basic gem infrastructure

DEV: add some basic gem infrastructure

  • Support for guard
  • Support for rake tasks
  • Support for travis
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..0775c67
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,18 @@
+language: ruby
+rvm:
+  - ruby-head
+  - 2.5
+  - 2.6
+
+before_install:
+  - gem install bundler
+
+cache: bundler
+sudo: false
+
+services:
+  - redis-server
+
+matrix:
+  allow_failures:
+    - rvm: ruby-head
diff --git a/Guardfile b/Guardfile
new file mode 100644
index 0000000..b53060f
--- /dev/null
+++ b/Guardfile
@@ -0,0 +1,43 @@
+# A sample Guardfile
+# More info at https://github.com/guard/guard#readme
+
+## Uncomment and set this to only include directories you want to watch
+# directories %w(app lib config test spec features) \
+#  .select{|d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist")}
+
+## Note: if you are using the `directories` clause above and you are not
+## watching the project directory ('.'), then you will want to move
+## the Guardfile to a watched dir and symlink it back, e.g.
+#
+#  $ mkdir config
+#  $ mv Guardfile config/
+#  $ ln -s config/Guardfile .
+#
+# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
+
+# Note: The cmd option is now required due to the increasing number of ways
+#       rspec may be run, below are examples of the most common uses.
+#  * bundler: 'bundle exec rspec'
+#  * bundler binstubs: 'bin/rspec'
+#  * spring: 'bin/rspec' (This will use spring if running and you have
+#                          installed the spring binstubs per the docs)
+#  * zeus: 'zeus rspec' (requires the server to be started separately)
+#  * 'just' rspec: 'rspec'
+
+guard :rspec, cmd: "bundle exec rspec" do
+  require "guard/rspec/dsl"
+  dsl = Guard::RSpec::Dsl.new(self)
+
+  # Feel free to open issues for suggestions and improvements
+
+  # RSpec files
+  rspec = dsl.rspec
+  watch(rspec.spec_helper) { rspec.spec_dir }
+  watch(rspec.spec_support) { rspec.spec_dir }
+  watch(rspec.spec_files)
+
+  # Ruby files
+  ruby = dsl.ruby
+  dsl.watch_spec_files_for(ruby.lib_files)
+
+end
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 0000000..c92b11e
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,6 @@
+require "bundler/gem_tasks"
+require "rspec/core/rake_task"
+
+RSpec::Core::RakeTask.new(:spec)
+
+task default: :spec
diff --git a/mini_scheduler.gemspec b/mini_scheduler.gemspec
index b1b6100..8808ff5 100644
--- a/mini_scheduler.gemspec
+++ b/mini_scheduler.gemspec
@@ -28,5 +28,8 @@ Gem::Specification.new do |spec|
   spec.add_development_dependency "activesupport", ">= 5.2"
   spec.add_development_dependency "rspec"
   spec.add_development_dependency "mocha"
+  spec.add_development_dependency "guard"
+  spec.add_development_dependency "guard-rspec"
   spec.add_development_dependency "mock_redis"
+  spec.add_development_dependency "rake"
 end

GitHub sha: dfad38c3