Commit 66e7be0

mo <mo.khan@gmail.com>
2018-05-11 23:00:19
rubocop -a
1 parent 24b789a
bin/console
@@ -1,7 +1,7 @@
 #!/usr/bin/env ruby
 
-require "bundler/setup"
-require "del"
+require 'bundler/setup'
+require 'del'
 
 # 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.
@@ -10,9 +10,9 @@ require "del"
 # require "pry"
 # Pry.start
 
-require "irb"
+require 'irb'
 
-settings = YAML.load(IO.read(Pathname.new(Dir.home).join(".delrc")))
-settings.merge!(start_server: false)
+settings = YAML.safe_load(IO.read(Pathname.new(Dir.home).join('.delrc')))
+settings[:start_server] = false
 Del.start(settings)
 IRB.start(__FILE__)
exe/del
@@ -1,5 +1,5 @@
 #!/usr/bin/env ruby
 
-require "del/cli"
+require 'del/cli'
 
 Del::CLI.start(ARGV)
lib/del/examples/routes.rb
@@ -1,17 +1,17 @@
 Del.configure do |x|
-  puts "Registering custom routes."
+  puts 'Registering custom routes.'
 
   x.router.register(/.*/) do |message|
-    Del.logger.info("Backwards!")
+    Del.logger.info('Backwards!')
     message.reply(message.text.reverse)
   end
 
   x.router.register(/^cowsay (.*)/) do |message, match_data|
-    Del.logger.info("COWSAY!")
+    Del.logger.info('COWSAY!')
     message.execute_shell(['cowsay', match_data[1]])
   end
 
   x.router.register(/^[Hh]ello/) do |message|
-    message.reply("Hi!")
+    message.reply('Hi!')
   end
 end
lib/del/configuration.rb
@@ -1,6 +1,6 @@
 module Del
   class Configuration
-    SOCKET_FILE="/tmp/del.sock"
+    SOCKET_FILE = '/tmp/del.sock'.freeze
     attr_accessor :default_rooms
     attr_accessor :host
     attr_accessor :jid
@@ -19,7 +19,7 @@ module Del
       @jid = settings.fetch(:jid)
       @logger = Logger.new(STDOUT)
       @logger.level = settings.fetch(:log_level, Logger::INFO).to_i
-      @muc_domain = settings.fetch(:muc_domain, "conf.hipchat.com")
+      @muc_domain = settings.fetch(:muc_domain, 'conf.hipchat.com')
       @name = settings.fetch(:full_name)
       @password = settings.fetch(:password)
       @router = DefaultRouter.new
lib/del/connection.rb
@@ -8,7 +8,7 @@ module Del
     end
 
     def connect(robot)
-      client.on_exception do |error, connection, error_source|
+      client.on_exception do |error, _connection, _error_source|
         Del.logger.error(error)
         disconnect
       end
@@ -16,7 +16,7 @@ module Del
       sleep 0.0001 until client.is_connected?
       client.auth(configuration.password)
       roster = Jabber::Roster::Helper.new(client, false)
-      roster.add_update_callback do |old_item, item|
+      roster.add_update_callback do |_old_item, item|
         configuration.users.upsert(item['jid'], item.attributes) if item
       end
       roster.get_roster
@@ -37,14 +37,14 @@ module Del
         @mucs[stripped_jid] = muc
         muc.on_message do |_, nickname, message|
           Del.logger.debug([nickname, message].inspect)
-          other_jid = roster.items.find { |jid, item| item.iname == nickname }
+          other_jid = roster.items.find { |_jid, item| item.iname == nickname }
           robot.receive(message, source: Source.new(user: User.new(other_jid[0], other_jid[1]), room: stripped_jid))
         end
         muc.join(room_jid)
       end
-      #list_rooms(configuration.muc_domain).each do |room|
-        #rooms.upsert(room)
-      #end
+      # list_rooms(configuration.muc_domain).each do |room|
+      # rooms.upsert(room)
+      # end
     end
 
     def deliver(jid, message)
@@ -59,7 +59,7 @@ module Del
     end
 
     def disconnect
-      Del.logger.info("byte me!")
+      Del.logger.info('byte me!')
       client.close
     rescue IOError, SystemCallError => error
       Del.logger.error(error)
@@ -72,17 +72,17 @@ module Del
     end
 
     def jid
-      @jid ||= jid_for(configuration.jid, "chat.hipchat.com", "bot")
+      @jid ||= jid_for(configuration.jid, 'chat.hipchat.com', 'bot')
     end
 
-    #def list_rooms(muc_domain)
-      #Jabber::MUC::MUCBrowser.new(client).muc_rooms(muc_domain).map do |jid, name|
-        #jid.to_s
-      #end
-    #end
+    # def list_rooms(muc_domain)
+    # Jabber::MUC::MUCBrowser.new(client).muc_rooms(muc_domain).map do |jid, name|
+    # jid.to_s
+    # end
+    # end
 
     def encode_string(s)
-      s.to_s.encode("UTF-8", invalid: :replace, undef: :replace)
+      s.to_s.encode('UTF-8', invalid: :replace, undef: :replace)
     end
 
     def jid_for(jid, domain, resource)
lib/del/default_router.rb
@@ -10,12 +10,11 @@ module Del
 
     def route(message)
       @routes.each do |route|
-        if matches = route[:pattern].match(message.text)
-          begin
-            route[:command].call(message, matches)
-          rescue StandardError => error
-            Del.logger.error(error)
-          end
+        next unless matches = route[:pattern].match(message.text)
+        begin
+          route[:command].call(message, matches)
+        rescue StandardError => error
+          Del.logger.error(error)
         end
       end
     end
lib/del/message.rb
@@ -1,6 +1,6 @@
 module Del
   class Message
-    PREFIX = "/code"
+    PREFIX = '/code'.freeze
     attr_reader :text, :robot, :source
 
     def initialize(text, robot:, source:)
lib/del/robot.rb
@@ -9,7 +9,7 @@ module Del
     end
 
     def get_funky!(start_server: true)
-      Del.logger.info("๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ")
+      Del.logger.info('๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ')
       xmpp_connection.connect(self)
       socket_server.run(self) if start_server
     rescue Interrupt
@@ -33,9 +33,9 @@ module Del
       case request['command']
       when 'send_message'
         send_message(request['jid'], request['message'])
-        "Sent!"
+        'Sent!'
       else
-        "Unknown"
+        'Unknown'
       end
     end
 
lib/del/shell_command.rb
@@ -5,7 +5,7 @@ module Del
     end
 
     def run
-      Open3.popen3(@command) do |stdin, stdout, stderr, wait_thr|
+      Open3.popen3(@command) do |_stdin, stdout, stderr, wait_thr|
         stdout.each_line { |line| yield line }
         stderr.each_line { |line| yield line }
         wait_thr.value.success?
lib/del/version.rb
@@ -1,3 +1,3 @@
 module Del
-  VERSION = "0.1.16"
+  VERSION = '0.1.16'.freeze
 end
lib/del.rb
@@ -1,26 +1,26 @@
-require "json"
-require "logger"
-require "net/hippie"
-require "open3"
-require "socket"
-require "xmpp4r"
-require "xmpp4r/muc/helper/mucbrowser"
-require "xmpp4r/muc/helper/simplemucclient"
-require "xmpp4r/roster/helper/roster"
-require "yaml"
+require 'json'
+require 'logger'
+require 'net/hippie'
+require 'open3'
+require 'socket'
+require 'xmpp4r'
+require 'xmpp4r/muc/helper/mucbrowser'
+require 'xmpp4r/muc/helper/simplemucclient'
+require 'xmpp4r/roster/helper/roster'
+require 'yaml'
 
-require "del/configuration"
-require "del/connection"
-require "del/default_router"
-require "del/message"
-require "del/repository"
-require "del/robot"
-require "del/shell_command"
-require "del/socket_connection"
-require "del/socket_server"
-require "del/source"
-require "del/user"
-require "del/version"
+require 'del/configuration'
+require 'del/connection'
+require 'del/default_router'
+require 'del/message'
+require 'del/repository'
+require 'del/robot'
+require 'del/shell_command'
+require 'del/socket_connection'
+require 'del/socket_server'
+require 'del/source'
+require 'del/user'
+require 'del/version'
 
 module Del
   def self.start(settings)
spec/default_router_spec.rb
@@ -1,7 +1,7 @@
 RSpec.describe Del::DefaultRouter do
   subject { described_class.new }
 
-  describe "#route" do
+  describe '#route' do
     let(:recorder) { [] }
     before :each do
       subject.register(/^Hello World!$/) do |message|
@@ -24,8 +24,8 @@ RSpec.describe Del::DefaultRouter do
     end
 
     it 'passes captures to the block' do
-      subject.route(double(text: "cowsay HELLO"))
-      matches = /^cowsay (.*)$/.match("cowsay HELLO")
+      subject.route(double(text: 'cowsay HELLO'))
+      matches = /^cowsay (.*)$/.match('cowsay HELLO')
       expect(recorder).to match_array([text: 'cowsay HELLO', match_data: matches])
     end
   end
spec/message_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe Del::Message do
   let(:source) { instance_double(Del::Source) }
   let(:text) { SecureRandom.hex(16) }
 
-  describe "#reply" do
+  describe '#reply' do
     before { allow(source).to receive(:reply) }
 
     it 'delegates to the source to reply' do
@@ -15,7 +15,7 @@ RSpec.describe Del::Message do
     end
   end
 
-  describe "#execute_shell" do
+  describe '#execute_shell' do
     before { allow(source).to receive(:reply) }
 
     it 'executes the command' do
@@ -24,17 +24,17 @@ RSpec.describe Del::Message do
     end
 
     it 'returns false when the shell command fails' do
-      expect(subject.execute_shell(['exit', '1'])).to be_falsey
+      expect(subject.execute_shell(%w[exit 1])).to be_falsey
     end
 
     it 'replies with the stdout content' do
-      subject.execute_shell(['echo', 'hello'])
+      subject.execute_shell(%w[echo hello])
       expect(source).to have_received(:reply).with(robot, "/code hello\n")
     end
 
     it 'yields each line to stdout' do
       @called = false
-      subject.execute_shell(['echo', 'hello']) do |line|
+      subject.execute_shell(%w[echo hello]) do |line|
         @called = true
         expect(line).to eql("hello\n")
       end
@@ -56,7 +56,7 @@ RSpec.describe Del::Message do
     end
   end
 
-  describe "#to_s" do
+  describe '#to_s' do
     specify { expect(subject.to_s).to include(source.to_s) }
     specify { expect(subject.to_s).to include(text) }
   end
spec/repository_spec.rb
@@ -2,10 +2,10 @@ require 'spec_helper'
 
 RSpec.describe Del::Repository do
   subject { described_class.new(storage: storage, mapper: mapper) }
-  let(:storage) { Hash.new }
+  let(:storage) { {} }
   let(:mapper) { double(:mapper, map_from: nil) }
 
-  describe "#[]" do
+  describe '#[]' do
     let(:jid) { SecureRandom.uuid }
     let(:attributes) { { 'jid' => jid, 'name' => 'Teren Delvon Jones' } }
     let(:user) { instance_double(Del::User) }
@@ -20,7 +20,7 @@ RSpec.describe Del::Repository do
     specify { expect(subject.find(SecureRandom.uuid)).to be_nil }
   end
 
-  describe "#all" do
+  describe '#all' do
     let(:del_attributes) { { 'name' => 'Teren Delvon Jones' } }
     let(:ice_cube_attributes) { { 'name' => "O'Shea Jackson Sr." } }
     let(:del) { instance_double(Del::User) }
@@ -32,7 +32,7 @@ RSpec.describe Del::Repository do
       allow(mapper).to receive(:map_from).with(del_attributes).and_return(del)
       allow(mapper).to receive(:map_from).with(ice_cube_attributes).and_return(cube)
 
-      expect(subject.all).to match_array([ del, cube ])
+      expect(subject.all).to match_array([del, cube])
     end
   end
 end
spec/spec_helper.rb
@@ -1,9 +1,9 @@
-require "bundler/setup"
-require "del"
+require 'bundler/setup'
+require 'del'
 
 RSpec.configure do |config|
   # Enable flags like --only-failures and --next-failure
-  config.example_status_persistence_file_path = ".rspec_status"
+  config.example_status_persistence_file_path = '.rspec_status'
 
   # Disable RSpec exposing methods globally on `Module` and `main`
   config.disable_monkey_patching!
spec/user_spec.rb
@@ -1,7 +1,7 @@
 require 'spec_helper'
 
 RSpec.describe Del::User do
-  describe ".map_from" do
+  describe '.map_from' do
     subject { described_class }
     let(:attributes) { { 'jid' => SecureRandom.uuid } }
 
del.gemspec
@@ -1,32 +1,32 @@
 
-lib = File.expand_path("../lib", __FILE__)
+lib = File.expand_path('lib', __dir__)
 $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
-require "del/version"
+require 'del/version'
 
 Gem::Specification.new do |spec|
-  spec.name          = "del"
+  spec.name          = 'del'
   spec.version       = Del::VERSION
-  spec.authors       = ["mo"]
-  spec.email         = ["mo@mokhan.ca"]
+  spec.authors       = ['mo']
+  spec.email         = ['mo@mokhan.ca']
 
-  spec.summary       = %q{Del is a funky robosapien.}
-  spec.description   = %q{Del is a funky robosapien.}
-  spec.homepage      = "https://www.mokhan.ca"
-  spec.license       = "MIT"
+  spec.summary       = 'Del is a funky robosapien.'
+  spec.description   = 'Del is a funky robosapien.'
+  spec.homepage      = 'https://www.mokhan.ca'
+  spec.license       = 'MIT'
 
   spec.files         = `git ls-files -z`.split("\x0").reject do |f|
     f.match(%r{^(test|spec|features)/})
   end
-  spec.bindir        = "exe"
+  spec.bindir        = 'exe'
   spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
-  spec.require_paths = ["lib"]
+  spec.require_paths = ['lib']
 
-  spec.add_dependency "bundler-audit", "~> 0.6"
-  spec.add_dependency "net-hippie", "~> 0.1"
-  spec.add_dependency "rubocop", "~> 0.55"
-  spec.add_dependency "thor", "~> 0.20"
-  spec.add_dependency "xmpp4r", "~> 0.5"
-  spec.add_development_dependency "bundler", "~> 1.16"
-  spec.add_development_dependency "rake", "~> 10.0"
-  spec.add_development_dependency "rspec", "~> 3.0"
+  spec.add_dependency 'bundler-audit', '~> 0.6'
+  spec.add_dependency 'net-hippie', '~> 0.1'
+  spec.add_dependency 'rubocop', '~> 0.55'
+  spec.add_dependency 'thor', '~> 0.20'
+  spec.add_dependency 'xmpp4r', '~> 0.5'
+  spec.add_development_dependency 'bundler', '~> 1.16'
+  spec.add_development_dependency 'rake', '~> 10.0'
+  spec.add_development_dependency 'rspec', '~> 3.0'
 end
Gemfile
@@ -1,6 +1,6 @@
-source "https://rubygems.org"
+source 'https://rubygems.org'
 
-git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
+git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
 
 # Specify your gem's dependencies in del.gemspec
 gemspec
Rakefile
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
-require "bundler/gem_tasks"
-require "rspec/core/rake_task"
+require 'bundler/gem_tasks'
+require 'rspec/core/rake_task'
 require 'rubocop/rake_task'
 require 'bundler/audit/task'