From 560295baf8c2bddbc4c1d3ebfb127d2bb33798bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rojas?= Date: Mon, 30 May 2016 15:33:20 -0300 Subject: [PATCH] Turn project into a gem See also: dblock/slack-bot-server#3 --- .gitignore | 3 + Gemfile | 42 +-- Gemfile.lock | 335 ------------------ Rakefile | 5 +- config.ru | 4 +- config/application.rb | 17 +- config/boot.rb | 2 +- config/environment.rb | 4 +- config/initializers/grape/sort_extension.rb | 12 +- .../slack-bot-server.rb | 14 +- .../slack-bot-server}/api.rb | 0 .../slack-bot-server}/api/endpoints.rb | 0 .../api/endpoints/root_endpoint.rb | 0 .../api/endpoints/status_endpoint.rb | 0 .../api/endpoints/teams_endpoint.rb | 0 .../slack-bot-server}/api/helpers.rb | 0 .../api/helpers/cursor_helpers.rb | 0 .../api/helpers/error_helpers.rb | 0 .../api/helpers/pagination_parameters.rb | 0 .../api/helpers/sort_helpers.rb | 0 .../slack-bot-server}/api/middleware.rb | 2 + .../slack-bot-server}/api/presenters.rb | 0 .../api/presenters/paginated_presenter.rb | 0 .../api/presenters/root_presenter.rb | 0 .../api/presenters/status_presenter.rb | 0 .../api/presenters/team_presenter.rb | 0 .../api/presenters/teams_presenter.rb | 0 .../slack-bot-server}/app.rb | 0 .../slack-bot-server}/commands.rb | 0 .../slack-bot-server}/commands/help.rb | 0 .../slack-bot-server}/commands/whoami.rb | 0 .../slack-bot-server}/info.rb | 0 .../slack-bot-server}/models.rb | 0 .../slack-bot-server}/models/team.rb | 0 .../slack-bot-server}/server.rb | 0 .../slack-bot-server}/service.rb | 0 .../slack-bot-server}/version.rb | 0 script/console | 8 +- slack-bot-server.gemspec | 56 +++ spec/spec_helper.rb | 3 +- 40 files changed, 89 insertions(+), 418 deletions(-) delete mode 100644 Gemfile.lock rename slack-bot-server.rb => lib/slack-bot-server.rb (53%) rename {slack-bot-server => lib/slack-bot-server}/api.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/endpoints.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/endpoints/root_endpoint.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/endpoints/status_endpoint.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/endpoints/teams_endpoint.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/helpers.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/helpers/cursor_helpers.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/helpers/error_helpers.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/helpers/pagination_parameters.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/helpers/sort_helpers.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/middleware.rb (90%) rename {slack-bot-server => lib/slack-bot-server}/api/presenters.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/presenters/paginated_presenter.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/presenters/root_presenter.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/presenters/status_presenter.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/presenters/team_presenter.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/api/presenters/teams_presenter.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/app.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/commands.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/commands/help.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/commands/whoami.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/info.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/models.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/models/team.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/server.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/service.rb (100%) rename {slack-bot-server => lib/slack-bot-server}/version.rb (100%) create mode 100644 slack-bot-server.gemspec diff --git a/.gitignore b/.gitignore index aea4ab7..8d808e1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ .bundle log .env +*.swp +Gemfile.lock +.ruby-version diff --git a/Gemfile b/Gemfile index 6259595..b06da71 100644 --- a/Gemfile +++ b/Gemfile @@ -1,43 +1,5 @@ -source 'http://rubygems.org' +source 'https://rubygems.org' ruby '2.2.4' -gem 'slack-ruby-bot', '~> 0.8.0' -gem 'celluloid-io', require: 'celluloid/current' -gem 'mongoid', '~> 5.0.0' -gem 'unicorn' -gem 'grape', '~> 0.15.0' -gem 'grape-swagger', '~> 0.10.0' -gem 'grape-roar' -gem 'rack-cors' -gem 'kaminari', '~> 0.16.1', require: 'kaminari/grape' -gem 'mongoid-scroll' -gem 'rack-robotz' -gem 'newrelic_rpm' -gem 'newrelic-slack-ruby-bot' -gem 'rack-rewrite' -gem 'rack-server-pages' - -group :development, :test do - gem 'rake', '~> 10.4' - gem 'rubocop', '0.35.1' - gem 'foreman' -end - -group :development do - gem 'mongoid-shell' - gem 'heroku' -end - -group :test do - gem 'rspec' - gem 'rack-test' - gem 'webmock' - gem 'vcr' - gem 'fabrication' - gem 'faker' - gem 'database_cleaner' - gem 'hyperclient' - gem 'capybara' - gem 'selenium-webdriver' -end +gemspec diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 2b69e8d..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,335 +0,0 @@ -GEM - remote: http://rubygems.org/ - specs: - actionpack (4.2.6) - actionview (= 4.2.6) - activesupport (= 4.2.6) - rack (~> 1.6) - rack-test (~> 0.6.2) - rails-dom-testing (~> 1.0, >= 1.0.5) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (4.2.6) - activesupport (= 4.2.6) - builder (~> 3.1) - erubis (~> 2.7.0) - rails-dom-testing (~> 1.0, >= 1.0.5) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - activemodel (4.2.6) - activesupport (= 4.2.6) - builder (~> 3.1) - activesupport (4.2.6) - i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - addressable (2.4.0) - ast (2.2.0) - astrolabe (1.3.1) - parser (~> 2.2) - axiom-types (0.1.1) - descendants_tracker (~> 0.0.4) - ice_nine (~> 0.11.0) - thread_safe (~> 0.3, >= 0.3.1) - bson (4.1.1) - builder (3.2.2) - capybara (2.7.1) - addressable - mime-types (>= 1.16) - nokogiri (>= 1.3.3) - rack (>= 1.0.0) - rack-test (>= 0.5.4) - xpath (~> 2.0) - celluloid (0.17.3) - celluloid-essentials - celluloid-extras - celluloid-fsm - celluloid-pool - celluloid-supervision - timers (>= 4.1.1) - celluloid-essentials (0.20.5) - timers (>= 4.1.1) - celluloid-extras (0.20.5) - timers (>= 4.1.1) - celluloid-fsm (0.20.5) - timers (>= 4.1.1) - celluloid-io (0.17.3) - celluloid (>= 0.17.2) - nio4r (>= 1.1) - timers (>= 4.1.1) - celluloid-pool (0.20.5) - timers (>= 4.1.1) - celluloid-supervision (0.20.5) - timers (>= 4.1.1) - childprocess (0.5.9) - ffi (~> 1.0, >= 1.0.11) - coercible (1.0.0) - descendants_tracker (~> 0.0.1) - crack (0.4.3) - safe_yaml (~> 1.0.0) - database_cleaner (1.5.3) - descendants_tracker (0.0.4) - thread_safe (~> 0.3, >= 0.3.1) - diff-lcs (1.2.5) - equalizer (0.0.11) - erubis (2.7.0) - excon (0.49.0) - fabrication (2.15.0) - faker (1.6.3) - i18n (~> 0.5) - faraday (0.9.2) - multipart-post (>= 1.2, < 3) - faraday-digestauth (0.2.1) - faraday (~> 0.7) - net-http-digest_auth (~> 1.4) - faraday_hal_middleware (0.0.1) - faraday_middleware (>= 0.9, < 0.10) - faraday_middleware (0.9.2) - faraday (>= 0.7.4, < 0.10) - faraday_middleware-parse_oj (0.3.0) - faraday (~> 0.9.0) - faraday_middleware (~> 0.9.1) - oj (~> 2.0) - ffi (1.9.10) - foreman (0.81.0) - thor (~> 0.19.1) - futuroscope (0.1.11) - giphy (2.0.2) - faraday (~> 0.9) - faraday_middleware (~> 0.9) - faraday_middleware-parse_oj (~> 0.3) - launchy (~> 2.4) - gli (2.13.4) - grape (0.15.0) - activesupport - builder - hashie (>= 2.1.0) - multi_json (>= 1.3.2) - multi_xml (>= 0.5.2) - rack (>= 1.3.0) - rack-accept - rack-mount - virtus (>= 1.0.0) - grape-entity (0.4.8) - activesupport - multi_json (>= 1.3.2) - grape-roar (0.3.0) - grape - roar (>= 1.0) - grape-swagger (0.10.5) - grape (>= 0.10.0) - grape-entity (< 0.5.0) - hashdiff (0.3.0) - hashie (3.4.4) - heroku (3.43.2) - heroku-api (= 0.4.2) - launchy (= 2.4.3) - multi_json (= 1.11.2) - net-ssh (= 2.9.2) - net-ssh-gateway (= 1.2.0) - netrc (= 0.10.3) - rest-client (= 1.6.8) - rubyzip (= 1.1.7) - heroku-api (0.4.2) - excon (~> 0.45) - multi_json (~> 1.8) - hitimes (1.2.4) - hyperclient (0.8.1) - faraday - faraday-digestauth - faraday_hal_middleware - faraday_middleware - futuroscope - net-http-digest_auth - uri_template - i18n (0.7.0) - ice_nine (0.11.2) - json (1.8.3) - kaminari (0.16.3) - actionpack (>= 3.0.0) - activesupport (>= 3.0.0) - kgio (2.10.0) - launchy (2.4.3) - addressable (~> 2.3) - loofah (2.0.3) - nokogiri (>= 1.5.9) - mime-types (1.25.1) - mini_portile2 (2.0.0) - minitest (5.8.4) - mongo (2.2.5) - bson (~> 4.0) - mongoid (5.0.2) - activemodel (~> 4.0) - mongo (~> 2.1) - origin (~> 2.1) - tzinfo (>= 0.3.37) - mongoid-compatibility (0.3.1) - activesupport - mongoid (>= 2.0) - mongoid-scroll (0.3.4) - i18n - mongoid (>= 3.0) - mongoid-compatibility - mongoid-shell (0.4.2) - i18n - mongoid (>= 3.0.0) - mongoid-compatibility - multi_json (1.11.2) - multi_xml (0.5.5) - multipart-post (2.0.0) - net-http-digest_auth (1.4) - net-ssh (2.9.2) - net-ssh-gateway (1.2.0) - net-ssh (>= 2.6.5) - netrc (0.10.3) - newrelic-slack-ruby-bot (0.1.0) - newrelic_rpm - slack-ruby-bot - newrelic_rpm (3.15.2.317) - nio4r (1.2.1) - nokogiri (1.6.7.2) - mini_portile2 (~> 2.0.0.rc2) - oj (2.15.0) - origin (2.2.0) - parser (2.3.1.0) - ast (~> 2.2) - powerpack (0.1.1) - rack (1.6.4) - rack-accept (0.4.5) - rack (>= 0.4) - rack-cors (0.4.0) - rack-mount (0.8.3) - rack (>= 1.0.0) - rack-rewrite (1.5.1) - rack-robotz (0.0.4) - rack - rack-server-pages (0.0.6) - rack - rack-test (0.6.3) - rack (>= 1.0) - rails-deprecated_sanitizer (1.0.3) - activesupport (>= 4.2.0.alpha) - rails-dom-testing (1.0.7) - activesupport (>= 4.2.0.beta, < 5.0) - nokogiri (~> 1.6.0) - rails-deprecated_sanitizer (>= 1.0.1) - rails-html-sanitizer (1.0.3) - loofah (~> 2.0) - rainbow (2.1.0) - raindrops (0.16.0) - rake (10.5.0) - rdoc (4.2.2) - json (~> 1.4) - representable (2.3.0) - uber (~> 0.0.7) - rest-client (1.6.8) - mime-types (~> 1.16) - rdoc (>= 2.4.2) - roar (1.0.4) - representable (>= 2.0.1, < 2.4.0) - rspec (3.4.0) - rspec-core (~> 3.4.0) - rspec-expectations (~> 3.4.0) - rspec-mocks (~> 3.4.0) - rspec-core (3.4.4) - rspec-support (~> 3.4.0) - rspec-expectations (3.4.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.4.0) - rspec-mocks (3.4.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.4.0) - rspec-support (3.4.1) - rubocop (0.35.1) - astrolabe (~> 1.3) - parser (>= 2.2.3.0, < 3.0) - powerpack (~> 0.1) - rainbow (>= 1.99.1, < 3.0) - ruby-progressbar (~> 1.7) - tins (<= 1.6.0) - ruby-progressbar (1.8.1) - rubyzip (1.1.7) - safe_yaml (1.0.4) - selenium-webdriver (2.53.0) - childprocess (~> 0.5) - rubyzip (~> 1.0) - websocket (~> 1.0) - slack-ruby-bot (0.8.0) - activesupport - giphy (~> 2.0.2) - hashie - slack-ruby-client (>= 0.6.0) - slack-ruby-client (0.7.3) - activesupport - faraday - faraday_middleware - gli - hashie - json - websocket-driver - thor (0.19.1) - thread_safe (0.3.5) - timers (4.1.1) - hitimes - tins (1.6.0) - tzinfo (1.2.2) - thread_safe (~> 0.1) - uber (0.0.15) - unicorn (5.1.0) - kgio (~> 2.6) - raindrops (~> 0.7) - uri_template (0.7.0) - vcr (3.0.1) - virtus (1.0.5) - axiom-types (~> 0.1) - coercible (~> 1.0) - descendants_tracker (~> 0.0, >= 0.0.3) - equalizer (~> 0.0, >= 0.0.9) - webmock (2.0.1) - addressable (>= 2.3.6) - crack (>= 0.3.2) - hashdiff - websocket (1.2.3) - websocket-driver (0.6.3) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.2) - xpath (2.0.0) - nokogiri (~> 1.3) - -PLATFORMS - ruby - -DEPENDENCIES - capybara - celluloid-io - database_cleaner - fabrication - faker - foreman - grape (~> 0.15.0) - grape-roar - grape-swagger (~> 0.10.0) - heroku - hyperclient - kaminari (~> 0.16.1) - mongoid (~> 5.0.0) - mongoid-scroll - mongoid-shell - newrelic-slack-ruby-bot - newrelic_rpm - rack-cors - rack-rewrite - rack-robotz - rack-server-pages - rack-test - rake (~> 10.4) - rspec - rubocop (= 0.35.1) - selenium-webdriver - slack-ruby-bot (~> 0.8.0) - unicorn - vcr - webmock - -BUNDLED WITH - 1.11.2 diff --git a/Rakefile b/Rakefile index bb58ada..520ba66 100644 --- a/Rakefile +++ b/Rakefile @@ -1,7 +1,4 @@ -require 'rubygems' -require 'bundler' - -Bundler.setup :default, :development +require_relative 'config/environment' unless ENV['RACK_ENV'] == 'production' require 'rspec/core' diff --git a/config.ru b/config.ru index ea541d7..96882cc 100644 --- a/config.ru +++ b/config.ru @@ -1,6 +1,4 @@ -$LOAD_PATH.unshift(File.dirname(__FILE__)) - -require 'slack-bot-server' +require_relative 'config/environment' if ENV['RACK_ENV'] == 'development' puts 'Loading NewRelic in developer mode ...' diff --git a/config/application.rb b/config/application.rb index a1125a4..e797a25 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,16 +1,3 @@ -$LOAD_PATH.unshift(File.dirname(__FILE__)) +require_relative 'boot' -require 'boot' - -Bundler.require :default, ENV['RACK_ENV'] - -['config/initializers', 'api', 'models', 'app'].each do |path| - path = File.expand_path(File.join(File.dirname(__FILE__), '..', path)) - $LOAD_PATH.unshift path - Dir["#{path}/**/*.rb"].sort.each do |f| - require f - end -end - -require 'server' -require 'app' +require 'slack-bot-server' diff --git a/config/boot.rb b/config/boot.rb index b92444f..002b02c 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,2 +1,2 @@ -require 'rubygems' +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) require 'bundler/setup' diff --git a/config/environment.rb b/config/environment.rb index e1b44f6..65b45f5 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,3 +1,3 @@ -ENV['RACK_ENV'] ||= 'test' +ENV['RACK_ENV'] ||= 'development' -require File.expand_path('../application', __FILE__) +require_relative 'application' diff --git a/config/initializers/grape/sort_extension.rb b/config/initializers/grape/sort_extension.rb index 0c64e6f..8074c8b 100644 --- a/config/initializers/grape/sort_extension.rb +++ b/config/initializers/grape/sort_extension.rb @@ -1,12 +1,8 @@ module Grape - module Extensions - module SortExtension - def sort(value) - route_setting :sort, sort: value - value - end - - Grape::API.extend self + class API + def self.sort(value) + route_setting :sort, sort: value + value end end end diff --git a/slack-bot-server.rb b/lib/slack-bot-server.rb similarity index 53% rename from slack-bot-server.rb rename to lib/slack-bot-server.rb index 4fe68aa..d1ecc68 100644 --- a/slack-bot-server.rb +++ b/lib/slack-bot-server.rb @@ -1,15 +1,15 @@ -ENV['RACK_ENV'] ||= 'development' - -require 'bundler/setup' -Bundler.require :default, ENV['RACK_ENV'] +require 'celluloid/current' +require 'kaminari/grape' +require 'mongoid-scroll' +require 'grape-swagger' +require 'slack-ruby-bot' -Dir[File.expand_path('../config/initializers', __FILE__) + '/**/*.rb'].each do |file| +Dir[File.expand_path('../../config/initializers', __FILE__) + '/**/*.rb'].each do |file| require file end -Mongoid.load! File.expand_path('../config/mongoid.yml', __FILE__), ENV['RACK_ENV'] +Mongoid.load! File.expand_path('../../config/mongoid.yml', __FILE__), ENV['RACK_ENV'] -require 'slack-ruby-bot' require 'slack-bot-server/version' require 'slack-bot-server/info' require 'slack-bot-server/models' diff --git a/slack-bot-server/api.rb b/lib/slack-bot-server/api.rb similarity index 100% rename from slack-bot-server/api.rb rename to lib/slack-bot-server/api.rb diff --git a/slack-bot-server/api/endpoints.rb b/lib/slack-bot-server/api/endpoints.rb similarity index 100% rename from slack-bot-server/api/endpoints.rb rename to lib/slack-bot-server/api/endpoints.rb diff --git a/slack-bot-server/api/endpoints/root_endpoint.rb b/lib/slack-bot-server/api/endpoints/root_endpoint.rb similarity index 100% rename from slack-bot-server/api/endpoints/root_endpoint.rb rename to lib/slack-bot-server/api/endpoints/root_endpoint.rb diff --git a/slack-bot-server/api/endpoints/status_endpoint.rb b/lib/slack-bot-server/api/endpoints/status_endpoint.rb similarity index 100% rename from slack-bot-server/api/endpoints/status_endpoint.rb rename to lib/slack-bot-server/api/endpoints/status_endpoint.rb diff --git a/slack-bot-server/api/endpoints/teams_endpoint.rb b/lib/slack-bot-server/api/endpoints/teams_endpoint.rb similarity index 100% rename from slack-bot-server/api/endpoints/teams_endpoint.rb rename to lib/slack-bot-server/api/endpoints/teams_endpoint.rb diff --git a/slack-bot-server/api/helpers.rb b/lib/slack-bot-server/api/helpers.rb similarity index 100% rename from slack-bot-server/api/helpers.rb rename to lib/slack-bot-server/api/helpers.rb diff --git a/slack-bot-server/api/helpers/cursor_helpers.rb b/lib/slack-bot-server/api/helpers/cursor_helpers.rb similarity index 100% rename from slack-bot-server/api/helpers/cursor_helpers.rb rename to lib/slack-bot-server/api/helpers/cursor_helpers.rb diff --git a/slack-bot-server/api/helpers/error_helpers.rb b/lib/slack-bot-server/api/helpers/error_helpers.rb similarity index 100% rename from slack-bot-server/api/helpers/error_helpers.rb rename to lib/slack-bot-server/api/helpers/error_helpers.rb diff --git a/slack-bot-server/api/helpers/pagination_parameters.rb b/lib/slack-bot-server/api/helpers/pagination_parameters.rb similarity index 100% rename from slack-bot-server/api/helpers/pagination_parameters.rb rename to lib/slack-bot-server/api/helpers/pagination_parameters.rb diff --git a/slack-bot-server/api/helpers/sort_helpers.rb b/lib/slack-bot-server/api/helpers/sort_helpers.rb similarity index 100% rename from slack-bot-server/api/helpers/sort_helpers.rb rename to lib/slack-bot-server/api/helpers/sort_helpers.rb diff --git a/slack-bot-server/api/middleware.rb b/lib/slack-bot-server/api/middleware.rb similarity index 90% rename from slack-bot-server/api/middleware.rb rename to lib/slack-bot-server/api/middleware.rb index 7611c65..e6e24e8 100644 --- a/slack-bot-server/api/middleware.rb +++ b/lib/slack-bot-server/api/middleware.rb @@ -1,3 +1,5 @@ +%w(rack/cors rack/robotz rack-rewrite rack-server-pages).each { |l| require l } + module Api class Middleware def self.logger diff --git a/slack-bot-server/api/presenters.rb b/lib/slack-bot-server/api/presenters.rb similarity index 100% rename from slack-bot-server/api/presenters.rb rename to lib/slack-bot-server/api/presenters.rb diff --git a/slack-bot-server/api/presenters/paginated_presenter.rb b/lib/slack-bot-server/api/presenters/paginated_presenter.rb similarity index 100% rename from slack-bot-server/api/presenters/paginated_presenter.rb rename to lib/slack-bot-server/api/presenters/paginated_presenter.rb diff --git a/slack-bot-server/api/presenters/root_presenter.rb b/lib/slack-bot-server/api/presenters/root_presenter.rb similarity index 100% rename from slack-bot-server/api/presenters/root_presenter.rb rename to lib/slack-bot-server/api/presenters/root_presenter.rb diff --git a/slack-bot-server/api/presenters/status_presenter.rb b/lib/slack-bot-server/api/presenters/status_presenter.rb similarity index 100% rename from slack-bot-server/api/presenters/status_presenter.rb rename to lib/slack-bot-server/api/presenters/status_presenter.rb diff --git a/slack-bot-server/api/presenters/team_presenter.rb b/lib/slack-bot-server/api/presenters/team_presenter.rb similarity index 100% rename from slack-bot-server/api/presenters/team_presenter.rb rename to lib/slack-bot-server/api/presenters/team_presenter.rb diff --git a/slack-bot-server/api/presenters/teams_presenter.rb b/lib/slack-bot-server/api/presenters/teams_presenter.rb similarity index 100% rename from slack-bot-server/api/presenters/teams_presenter.rb rename to lib/slack-bot-server/api/presenters/teams_presenter.rb diff --git a/slack-bot-server/app.rb b/lib/slack-bot-server/app.rb similarity index 100% rename from slack-bot-server/app.rb rename to lib/slack-bot-server/app.rb diff --git a/slack-bot-server/commands.rb b/lib/slack-bot-server/commands.rb similarity index 100% rename from slack-bot-server/commands.rb rename to lib/slack-bot-server/commands.rb diff --git a/slack-bot-server/commands/help.rb b/lib/slack-bot-server/commands/help.rb similarity index 100% rename from slack-bot-server/commands/help.rb rename to lib/slack-bot-server/commands/help.rb diff --git a/slack-bot-server/commands/whoami.rb b/lib/slack-bot-server/commands/whoami.rb similarity index 100% rename from slack-bot-server/commands/whoami.rb rename to lib/slack-bot-server/commands/whoami.rb diff --git a/slack-bot-server/info.rb b/lib/slack-bot-server/info.rb similarity index 100% rename from slack-bot-server/info.rb rename to lib/slack-bot-server/info.rb diff --git a/slack-bot-server/models.rb b/lib/slack-bot-server/models.rb similarity index 100% rename from slack-bot-server/models.rb rename to lib/slack-bot-server/models.rb diff --git a/slack-bot-server/models/team.rb b/lib/slack-bot-server/models/team.rb similarity index 100% rename from slack-bot-server/models/team.rb rename to lib/slack-bot-server/models/team.rb diff --git a/slack-bot-server/server.rb b/lib/slack-bot-server/server.rb similarity index 100% rename from slack-bot-server/server.rb rename to lib/slack-bot-server/server.rb diff --git a/slack-bot-server/service.rb b/lib/slack-bot-server/service.rb similarity index 100% rename from slack-bot-server/service.rb rename to lib/slack-bot-server/service.rb diff --git a/slack-bot-server/version.rb b/lib/slack-bot-server/version.rb similarity index 100% rename from slack-bot-server/version.rb rename to lib/slack-bot-server/version.rb diff --git a/script/console b/script/console index c560d5b..c3f972b 100755 --- a/script/console +++ b/script/console @@ -1,5 +1,9 @@ -#!/usr/bin/env bash +#!/usr/bin/env ruby + +require_relative '../config/environment' + # Usage: script/console # Starts an IRB console with slack-bot-server loaded. -exec bundle exec irb -I . -r "slack-bot-server" +require 'irb' +IRB.start diff --git a/slack-bot-server.gemspec b/slack-bot-server.gemspec new file mode 100644 index 0000000..11e5ab8 --- /dev/null +++ b/slack-bot-server.gemspec @@ -0,0 +1,56 @@ +# coding: utf-8 +lib = File.expand_path('../lib', __FILE__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require 'slack-bot-server/version' + +Gem::Specification.new do |spec| + # "slack-bot-server" is already taken, but that's ok since this is going to be + # broken up into different projects according to + # https://github.com/dblock/slack-bot-server/issues/3 + spec.name = 'slack_bot_server' + spec.version = SlackBotServer::VERSION + spec.authors = ['Daniel Doubrovkine'] + spec.email = ['dblock@dblock.org'] + + spec.summary = 'A Grape API serving a Slack bot to multiple teams.' + spec.homepage = 'https://github.com/dblock/slack-bot-server' + + spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } + spec.bindir = 'exe' + spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } + spec.require_paths = ['lib'] + + spec.add_dependency 'slack-ruby-bot', '~> 0.8.0' + spec.add_dependency 'celluloid-io' + spec.add_dependency 'mongoid', '~> 5.0.0' + spec.add_dependency 'unicorn' + spec.add_dependency 'grape', '~> 0.15.0' + spec.add_dependency 'grape-swagger', '~> 0.10.0' + spec.add_dependency 'grape-roar' + spec.add_dependency 'rack-cors' + spec.add_dependency 'kaminari', '~> 0.16.1' + spec.add_dependency 'mongoid-scroll' + spec.add_dependency 'rack-robotz' + spec.add_dependency 'newrelic_rpm' + spec.add_dependency 'newrelic-slack-ruby-bot' + spec.add_dependency 'rack-rewrite' + spec.add_dependency 'rack-server-pages' + spec.add_dependency 'foreman' + + spec.add_development_dependency 'bundler', '~> 1.12' + spec.add_development_dependency 'rake', '~> 10.0' + spec.add_development_dependency 'rspec', '~> 3.0' + spec.add_development_dependency 'rubocop', '~> 0.35.1' + spec.add_development_dependency 'byebug' + spec.add_development_dependency 'mongoid-shell' + spec.add_development_dependency 'heroku' + spec.add_development_dependency 'rack-test' + spec.add_development_dependency 'webmock' + spec.add_development_dependency 'vcr' + spec.add_development_dependency 'fabrication' + spec.add_development_dependency 'faker' + spec.add_development_dependency 'database_cleaner' + spec.add_development_dependency 'hyperclient' + spec.add_development_dependency 'capybara' + spec.add_development_dependency 'selenium-webdriver' +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 08ccd51..6b6ab2a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,5 +1,6 @@ -$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..')) +$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__) +require 'byebug' require 'fabrication' require 'faker' require 'hyperclient'