ruboty 1.2.1 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2b5e573ac386655befe4cd3e1bc64f8d475804d5
4
- data.tar.gz: 40f229bf0684ae1fb36cf14b38560060b230847b
2
+ SHA256:
3
+ metadata.gz: ec54bcc0403dac7136b366e3a6e2ab709c763aef91b459ae1f2f2ecc2e3324dc
4
+ data.tar.gz: cc0cb0a79dbe93896e854ba66971aed2e5b001010263561835d46a5550d88933
5
5
  SHA512:
6
- metadata.gz: 55aa5a748ffa69af647d33fe09a822f9f9b90d6dc1fc04c0db531026155dd660822c568f68ff4ea618e05650064965dcf30ef4016cfcca0200611cc583699643
7
- data.tar.gz: fdb2f35abd87618475104ad4c5ee675fad30ea94dba8e50f30676ccf105e98d73e03e5138a0a8f453506ac860a3343c8a622e7d3a3677a9071ef4712ddc5406a
6
+ metadata.gz: 347f987239002a95e7dc94c19358cd187aafbfb07a59dba0e6c0f04f989752041f01b4fa9891e3e2e63827339caa93ff33ec4776d32d61047a325c9a2c93c2cf
7
+ data.tar.gz: 646abd7e05b42051e27201a818c9e80b0c2a0285daf35d11923adfc94da08f0a3fc4c2a69ad06e02a28ac88ed4dd9f30380c91ac7661af2cec4b07de4f78fbec
@@ -1,5 +1,5 @@
1
1
  rvm:
2
- - 2.0.0
2
+ - 2.3.1
3
3
  branches:
4
4
  only:
5
5
  - master
@@ -1,124 +1,185 @@
1
+ ## 1.3.1
2
+
3
+ - Support unicode spaces like U+00a0 (thx @sugi)
4
+
5
+ ## 1.3.0
6
+
7
+ - Add --daemonize option
8
+ - Add --pid option
9
+ - Require Ruby 2.2.2 or later for ActiveSupport
10
+
11
+ ## 1.2.4
12
+
13
+ - Improve help command output (thx @k0kubun)
14
+
15
+ ## 1.2.3
16
+
17
+ - User default Logger class (thx @eagletmt)
18
+
19
+ ## 1.2.2
20
+
21
+ - Support ^D on shell adapter (thx @suu-g)
22
+
1
23
  ## 1.2.1
24
+
2
25
  - Refer Bundler from top-level
3
26
 
4
27
  ## 1.2.0
28
+
5
29
  - Add DISABLE_DEFAULT_HANDLERS env
6
30
  - Get away from help message indentation
7
31
  - Support filter query on help handler (e.g. `@ruboty help ping`)
8
32
 
9
33
  ## 1.1.9
34
+
10
35
  - Support slop both version 3 and 4
11
36
 
12
37
  ## 1.1.8
38
+
13
39
  - Fix shell adapter
14
40
 
15
41
  ## 1.1.7
42
+
16
43
  - Enable sync option of stdout to prevent buffering
17
44
 
18
45
  ## 1.1.6
46
+
19
47
  - Add LOG_LEVEL env
20
48
 
21
49
  ## 1.1.5
50
+
22
51
  - Use slop version 4 or higher
23
52
  - Fix --load option (thx @amacou)
24
53
 
25
54
  ## 1.1.4
55
+
26
56
  - Support slop version 4
27
57
 
28
58
  ## 1.1.3
59
+
29
60
  - Fix slop version (thx @parroty)
30
61
 
31
62
  ## 1.1.2
63
+
32
64
  - Fix message matching pattern so that "rubotyping" is not responded
33
65
 
34
66
  ## 1.1.1
67
+
35
68
  - Use action's returned-value to check if :missing action is invoked or not
36
69
 
37
70
  ## 1.1.0
71
+
38
72
  - Add :missing option for handler to respond with messages that didn't match any handlers
39
73
 
40
74
  ## 1.0.4
75
+
41
76
  - Support RUBOTY_NAME and obsolete ROBOT_NAME
42
77
 
43
78
  ## 1.0.3
79
+
44
80
  - Fix help handler
45
81
 
46
82
  ## 1.0.2
83
+
47
84
  - Add RUBOTY_ENV to change bundled gems with environment
48
85
 
49
86
  ## 1.0.1
87
+
50
88
  - Ignore if no Gemfile found in current directory or given path
51
89
 
52
90
  ## 1.0.0
91
+
53
92
  - Rename: Ellen -> Ruboty
54
93
 
55
94
  ## 0.2.8
95
+
56
96
  - Use Ruboty::Message#from_name in whoami action
57
97
 
58
98
  ## 0.2.7
99
+
59
100
  - Add Ruboty::Message#from_name for rich chat service
60
101
 
61
102
  ## 0.2.6
103
+
62
104
  - Add `who am i?` handler
63
105
  - Sort commands in help message
64
106
 
65
107
  ## 0.2.5
108
+
66
109
  - Hide action defined with `:hidden` option in Help message
67
110
 
68
111
  ## 0.2.4
112
+
69
113
  - Reveal message prefix pattern as a class method
70
114
 
71
115
  ## 0.2.3
116
+
72
117
  - Help message is formatted if adapter supported
73
118
 
74
119
  ## 0.2.2
120
+
75
121
  - Now `Ruboty::Robot#say(message)` can use `message[:original]`
76
122
 
77
123
  ## 0.2.1
124
+
78
125
  - Store shell history in ~/.ruboty_history
79
126
 
80
127
  ## 0.2.0
128
+
81
129
  - Change adapter & message interface
82
130
 
83
131
  ## 0.1.3
132
+
84
133
  - Change Ruboty::Message interface
85
134
 
86
135
  ## 0.1.2
136
+
87
137
  - Make Handler validatable
88
138
 
89
139
  ## 0.1.1
140
+
90
141
  - Improve Brain interface
91
142
 
92
143
  ## 0.1.0
144
+
93
145
  - Deprecate --adapter option
94
146
 
95
147
  ## 0.0.9
148
+
96
149
  - Adapt mention name to `@<name>: <text>` format
97
150
 
98
151
  ## 0.0.8
152
+
99
153
  - Mount Brain
100
154
  - Change handler interface
101
155
 
102
156
  ## 0.0.7
157
+
103
158
  - Add PING handler
104
159
 
105
160
  ## 0.0.6
161
+
106
162
  - `ruboty help` to show actions list
107
163
 
108
164
  ## 0.0.5
165
+
109
166
  - Now Action can access to MatchData object via Message
110
167
  - ENV["ROBOT_NAME"] or "ruboty" is default name
111
168
  - Robot only responds to mention unless :all option specified
112
169
 
113
170
  ## 0.0.4
171
+
114
172
  - Add --dotenv option to load .env before running
115
173
 
116
174
  ## 0.0.3
175
+
117
176
  - Add env DSL to define adapter
118
177
 
119
178
  ## 0.0.2
179
+
120
180
  - Add Handler DSL Syntax
121
181
  - Add --load option to load a ruby file before running
122
182
 
123
183
  ## 0.0.1
184
+
124
185
  - 1st release
data/README.md CHANGED
@@ -1,44 +1,55 @@
1
- # Ruboty [![Build Status](https://travis-ci.org/r7kamura/ruboty.png)](https://travis-ci.org/r7kamura/ruboty) [![Code Climate](https://codeclimate.com/github/r7kamura/ruboty.png)](https://codeclimate.com/github/r7kamura/ruboty) [![Code Climate](https://codeclimate.com/github/r7kamura/ruboty/coverage.png)](https://codeclimate.com/github/r7kamura/ruboty)
1
+ # Ruboty
2
+
3
+ [![Gem](https://img.shields.io/gem/v/ruboty.svg)](https://rubygems.org/gems/ruboty)
4
+ [![Build Status](https://travis-ci.org/r7kamura/ruboty.svg)](https://travis-ci.org/r7kamura/ruboty)
2
5
 
3
6
  Ruby + Bot = Ruboty.
4
7
 
5
8
  ## Dependencies
6
- * Ruby 1.9.3+
9
+
10
+ - Ruby 2.2.2
7
11
 
8
12
  ## Adapter
9
- Adapter hooks up your robot to chat services.
10
13
 
11
- * [ruboty-hipchat](https://github.com/r7kamura/ruboty-hipchat)
12
- * [ruboty-idobata](https://github.com/hanachin/ruboty-idobata)
13
- * [ruboty-slack](https://github.com/r7kamura/ruboty-slack)
14
- * [ruboty-twitter](https://github.com/r7kamura/ruboty-twitter)
14
+ Adapter hooks up ruboty to chat services.
15
+
16
+ - Slack
17
+ - [ruboty-slack](https://github.com/r7kamura/ruboty-slack) (XMPP gateway)
18
+ - [ruboty-slack_rtm](https://github.com/rosylilly/ruboty-slack_rtm) (Bot RTM API)
19
+ - [ruboty-twitter](https://github.com/r7kamura/ruboty-twitter)
20
+ - [ruboty-hipchat](https://github.com/r7kamura/ruboty-hipchat)
21
+ - [ruboty-idobata](https://github.com/hanachin/ruboty-idobata)
22
+ - [ruboty-chatwork](https://github.com/mhag/ruboty-chatwork)
23
+ - [ruboty-discord](https://github.com/ykzts/ruboty-discord)
15
24
 
16
25
  ## Brain
17
- Brain persists your robot's memory.
18
26
 
19
- * [ruboty-leveldb](https://github.com/nownabe/ruboty-leveldb)
20
- * [ruboty-redis](https://github.com/r7kamura/ruboty-redis)
27
+ Brain persists memories.
28
+
29
+ - [ruboty-leveldb](https://github.com/nownabe/ruboty-leveldb)
30
+ - [ruboty-redis](https://github.com/r7kamura/ruboty-redis)
21
31
 
22
32
  ## Handler
23
- Handler provides various behaviors to your robot.
24
-
25
- * [ruboty-alias](https://github.com/r7kamura/ruboty-alias)
26
- * [ruboty-cron](https://github.com/r7kamura/ruboty-cron)
27
- * [ruboty-echo](https://github.com/taiki45/ruboty-echo)
28
- * [ruboty-github](https://github.com/r7kamura/ruboty-github)
29
- * [ruboty-google_image](https://github.com/r7kamura/ruboty-google_image)
30
- * [ruboty-japan_weather](https://github.com/taiki45/ruboty-japan_weather)
31
- * [ruboty-kokodeikku](https://github.com/r7kamura/ruboty-kokodeikku)
32
- * [ruboty-lgtm](https://github.com/negipo/ruboty-lgtm)
33
- * [ruboty-syoboi_calendar](https://github.com/r7kamura/ruboty-syoboi_calendar)
34
- * [ruboty-talk](https://github.com/r7kamura/ruboty-talk)
33
+
34
+ Handler provides various behaviors.
35
+
36
+ - [ruboty-alias](https://github.com/r7kamura/ruboty-alias)
37
+ - [ruboty-cron](https://github.com/r7kamura/ruboty-cron)
38
+ - [ruboty-echo](https://github.com/taiki45/ruboty-echo)
39
+ - [ruboty-github](https://github.com/r7kamura/ruboty-github)
40
+ - [ruboty-google_image](https://github.com/r7kamura/ruboty-google_image)
41
+ - [ruboty-kokodeikku](https://github.com/r7kamura/ruboty-kokodeikku)
42
+ - [ruboty-lgtm](https://github.com/negipo/ruboty-lgtm)
43
+ - [ruboty-syoboi_calendar](https://github.com/r7kamura/ruboty-syoboi_calendar)
44
+ - [ruboty-talk](https://github.com/r7kamura/ruboty-talk)
35
45
 
36
46
  [Other plugins are hosted on Rubygems.](https://rubygems.org/search?utf8=%E2%9C%93&query=ruboty-)
37
47
 
38
48
  ## Configuration
49
+
39
50
  Store configuration value in envorinment variables.
40
51
  They are easy to change between deploys without changing any code.
41
- We recommend to put `.env` and run with `ruboty --dotenv` option to manage them.
52
+ We recommend to put `.env` and run with `ruboty --dotenv` option to manage them .
42
53
 
43
54
  All you need to use your favorite plugins is to write their names into Gemfile.
44
55
  Ruboty will load them before running.
@@ -52,6 +63,7 @@ gem "ruboty-slack"
52
63
  ```
53
64
 
54
65
  ## ENV
66
+
55
67
  ```
56
68
  DISABLE_DEFAULT_HANDLERS - Pass 1 to disable default handlers (default: nil)
57
69
  LOG_LEVEL - Log level for debug (default: 3)
@@ -60,6 +72,7 @@ RUBOTY_NAME - Name to respond to mention (default: ruboty)
60
72
  ```
61
73
 
62
74
  ## Deploy
75
+
63
76
  See [r7kamura/ruboty-template](https://github.com/r7kamura/ruboty-template) for example.
64
77
 
65
78
  [![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/r7kamura/ruboty-template)
@@ -3,6 +3,7 @@ require "active_support/core_ext/module/delegation"
3
3
  require "active_support/core_ext/string/inflections"
4
4
  require "bundler"
5
5
  require "dotenv"
6
+ require "logger"
6
7
  require "mem"
7
8
  require "slop"
8
9
 
@@ -13,7 +14,7 @@ module Ruboty
13
14
  def logger
14
15
  @logger ||= begin
15
16
  $stdout.sync = true
16
- logger = Ruboty::Logger.new($stdout)
17
+ logger = Logger.new($stdout)
17
18
  logger.level = ENV["LOG_LEVEL"] ? ENV["LOG_LEVEL"].to_i : Logger::INFO
18
19
  logger
19
20
  end
@@ -55,7 +56,6 @@ require "ruboty/commands/generate"
55
56
  require "ruboty/commands/help"
56
57
  require "ruboty/commands/run"
57
58
  require "ruboty/handlers/base"
58
- require "ruboty/logger"
59
59
  require "ruboty/message"
60
60
  require "ruboty/robot"
61
61
  require "ruboty/version"
@@ -1,7 +1,7 @@
1
1
  module Ruboty
2
2
  class Action
3
3
  def self.prefix_pattern(robot_name)
4
- /\A@?#{Regexp.escape(robot_name)}:?\s+/
4
+ /\A@?#{Regexp.escape(robot_name)}:?[[:space:]]+/
5
5
  end
6
6
 
7
7
  attr_reader :options, :pattern
@@ -2,19 +2,24 @@ module Ruboty
2
2
  module Actions
3
3
  class Help < Base
4
4
  def call
5
- message.reply(body, code: true)
5
+ descriptions = filtered_descriptions
6
+ if descriptions.empty?
7
+ message.reply("No description matched to '#{message[:filter]}'")
8
+ else
9
+ message.reply(descriptions.join("\n"), code: true)
10
+ end
6
11
  end
7
12
 
8
13
  private
9
14
 
10
- def body
15
+ def filtered_descriptions
11
16
  descriptions = all_descriptions
12
17
  if message[:filter]
13
18
  descriptions.select! do |description|
14
19
  description.include?(message[:filter])
15
20
  end
16
21
  end
17
- descriptions.join("\n")
22
+ descriptions
18
23
  end
19
24
 
20
25
  def all_descriptions
@@ -28,7 +28,7 @@ module Ruboty
28
28
  private
29
29
 
30
30
  def explain
31
- Ruboty.logger.info(USAGE)
31
+ puts USAGE
32
32
  end
33
33
 
34
34
  def read
@@ -45,7 +45,7 @@ module Ruboty
45
45
 
46
46
  def step
47
47
  case body = read
48
- when "exit", "quit"
48
+ when "exit", "quit", nil
49
49
  stop
50
50
  else
51
51
  robot.receive(body: body, source: SOURCE)
@@ -27,13 +27,16 @@ module Ruboty
27
27
 
28
28
  def options
29
29
  Slop.parse(arguments) do |options|
30
+ options.on("--daemon", "Run as a daemon.")
30
31
  options.on("--dotenv", "Load .env before running.")
31
32
  options.on("-g", "--generate", "Generate a new chatterbot with ./ruboty/ directory if specified.")
32
33
  options.on("-h", "--help", "Display this help message.")
33
34
  if Slop::VERSION >= "4.0.0"
34
35
  options.string("-l", "--load", "Load a ruby file before running.")
36
+ options.string("--pid", "Write the PID to a file.")
35
37
  else
36
38
  options.on("-l", "--load=", "Load a ruby file before running.")
39
+ options.on("--pid=", "Write the PID to a file.")
37
40
  end
38
41
  end
39
42
  end
@@ -14,9 +14,11 @@ module Ruboty
14
14
  end
15
15
 
16
16
  def run
17
+ daemon
17
18
  dotenv
18
19
  bundle
19
20
  setup
21
+ pid
20
22
  remember
21
23
  handle
22
24
  adapt
@@ -69,6 +71,10 @@ module Ruboty
69
71
  end
70
72
  memoize :env
71
73
 
74
+ def daemon
75
+ Process.daemon(true, false) if options[:daemon]
76
+ end
77
+
72
78
  def dotenv
73
79
  Dotenv.load if options[:dotenv]
74
80
  end
@@ -89,5 +95,13 @@ module Ruboty
89
95
  def handle
90
96
  handlers
91
97
  end
98
+
99
+ def pid
100
+ path = options[:pid]
101
+ if path
102
+ File.open(path, "w") { |f| f.write(Process.pid) }
103
+ at_exit { File.unlink(path) }
104
+ end
105
+ end
92
106
  end
93
107
  end
@@ -1,3 +1,3 @@
1
1
  module Ruboty
2
- VERSION = "1.2.1"
2
+ VERSION = "1.3.1"
3
3
  end
@@ -16,13 +16,14 @@ Gem::Specification.new do |spec|
16
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
17
  spec.require_paths = ["lib"]
18
18
 
19
+ spec.required_ruby_version = ">= 2.2.2"
20
+
19
21
  spec.add_dependency "activesupport"
20
22
  spec.add_dependency "bundler"
21
23
  spec.add_dependency "dotenv"
22
24
  spec.add_dependency "mem"
23
25
  spec.add_dependency "slop"
24
- spec.add_development_dependency "codeclimate-test-reporter", ">= 0.3.0"
25
26
  spec.add_development_dependency "rake"
26
- spec.add_development_dependency "rspec", "2.14.1"
27
+ spec.add_development_dependency "rspec", "3.4.0"
27
28
  spec.add_development_dependency "simplecov"
28
29
  end
@@ -12,7 +12,7 @@ describe Ruboty::AdapterBuilder do
12
12
  describe "#build" do
13
13
  context "with no other adapter class definition" do
14
14
  it "returns a Ruboty::Adapters::Shell as a default adapter" do
15
- builder.build.should be_a Ruboty::Adapters::Shell
15
+ expect(builder.build).to be_a Ruboty::Adapters::Shell
16
16
  end
17
17
  end
18
18
 
@@ -29,7 +29,7 @@ describe Ruboty::AdapterBuilder do
29
29
  end
30
30
 
31
31
  it "returns an instance of that adapter class" do
32
- builder.build.should be_a another_adapter_class
32
+ expect(builder.build).to be_a another_adapter_class
33
33
  end
34
34
  end
35
35
  end
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  describe Ruboty::Adapters::Shell do
4
4
  before do
5
- Ruboty.logger.stub(:info)
5
+ allow(Ruboty.logger).to receive(:info)
6
6
  end
7
7
 
8
8
  let(:adapter) do
@@ -16,32 +16,40 @@ describe Ruboty::Adapters::Shell do
16
16
  describe "#run" do
17
17
  context "with `exit`" do
18
18
  it "stops" do
19
- Readline.stub(readline: "exit")
20
- adapter.should_receive(:stop).and_call_original
19
+ allow(Readline).to receive(:readline).and_return("exit")
20
+ expect(adapter).to receive(:stop).and_call_original
21
21
  adapter.run
22
22
  end
23
23
  end
24
24
 
25
25
  context "with `quit`" do
26
26
  it "stops" do
27
- Readline.stub(readline: "quit")
28
- adapter.should_receive(:stop).and_call_original
27
+ allow(Readline).to receive(:readline).and_return("quit")
28
+ expect(adapter).to receive(:stop).and_call_original
29
+ adapter.run
30
+ end
31
+ end
32
+
33
+ context "with EOF" do
34
+ it "stops" do
35
+ allow(Readline).to receive(:readline).and_return(nil)
36
+ expect(adapter).to receive(:stop).and_call_original
29
37
  adapter.run
30
38
  end
31
39
  end
32
40
 
33
41
  context "with Inturrupt from console" do
34
42
  it "stops" do
35
- Readline.stub(:readline).and_raise(Interrupt)
36
- adapter.should_receive(:stop).and_call_original
43
+ allow(Readline).to receive(:readline).and_raise(Interrupt)
44
+ expect(adapter).to receive(:stop).and_call_original
37
45
  adapter.run
38
46
  end
39
47
  end
40
48
 
41
49
  context "without `exit` nor `quit`" do
42
50
  it "passes given message to robot" do
43
- Readline.stub(:readline).and_return("a", "exit")
44
- robot.should_receive(:receive).with(body: "a", source: described_class::SOURCE)
51
+ allow(Readline).to receive(:readline).and_return("a", "exit")
52
+ expect(robot).to receive(:receive).with(body: "a", source: described_class::SOURCE)
45
53
  adapter.run
46
54
  end
47
55
  end
@@ -21,7 +21,7 @@ describe Ruboty::Commands::Generate do
21
21
  context "with normal condition" do
22
22
  it "generates ./ruboty/ directory from our templates" do
23
23
  call
24
- File.exist?("./ruboty/").should == true
24
+ expect(File).to be_exist("./ruboty/")
25
25
  end
26
26
  end
27
27
 
@@ -31,7 +31,7 @@ describe Ruboty::Commands::Generate do
31
31
  end
32
32
 
33
33
  it "exits process with dying message" do
34
- Ruboty.logger.should_receive(:error).with("Error: ./ruboty/ already exists.")
34
+ expect(Ruboty.logger).to receive(:error).with("Error: ./ruboty/ already exists.")
35
35
  expect { call }.to raise_error(SystemExit)
36
36
  end
37
37
  end
@@ -15,7 +15,7 @@ describe Ruboty::Commands::Run do
15
15
  end
16
16
 
17
17
  it "creates an adapter and calls .run to it" do
18
- Ruboty::Adapters::Shell.any_instance.should_receive(:run)
18
+ expect_any_instance_of(Ruboty::Adapters::Shell).to receive(:run)
19
19
  call
20
20
  end
21
21
  end
@@ -39,8 +39,8 @@ describe Ruboty::Env::Validatable do
39
39
  describe "#validate!" do
40
40
  context "without required ENV" do
41
41
  it "dies with usage as erorr message" do
42
- Ruboty.logger.should_receive(:error).with(/description of A/)
43
- Ruboty.should_receive(:exit)
42
+ expect(Ruboty.logger).to receive(:error).with(/description of A/)
43
+ expect(Ruboty).to receive(:exit)
44
44
  instance.validate!
45
45
  end
46
46
  end
@@ -21,7 +21,7 @@ describe Ruboty::Handlers::Base do
21
21
 
22
22
  describe ".on" do
23
23
  it "registers an action to the handler" do
24
- robot.should_receive(:say).with(2)
24
+ expect(robot).to receive(:say).with(2)
25
25
  robot.receive(body: "1 + 1")
26
26
  end
27
27
  end
@@ -24,7 +24,7 @@ describe Ruboty::Handlers::Help do
24
24
  end
25
25
 
26
26
  it "responds to `@ruboty help` and says each handler's description" do
27
- robot.should_receive(:say).with(
27
+ expect(robot).to receive(:say).with(
28
28
  body: body,
29
29
  code: true,
30
30
  from: to,
@@ -42,7 +42,7 @@ describe Ruboty::Handlers::Help do
42
42
 
43
43
  context "with filter" do
44
44
  it "filters descriptions by given filter" do
45
- robot.should_receive(:say).with(
45
+ expect(robot).to receive(:say).with(
46
46
  hash_including(
47
47
  body: "ruboty /ping\\z/i - Return PONG to PING",
48
48
  ),
@@ -23,7 +23,7 @@ describe Ruboty::Handlers::Ping do
23
23
  end
24
24
 
25
25
  it "returns PONG to PING" do
26
- robot.should_receive(:say).with(
26
+ expect(robot).to receive(:say).with(
27
27
  body: replied,
28
28
  from: to,
29
29
  to: from,
@@ -19,7 +19,7 @@ describe Ruboty::Handlers::Whoami do
19
19
  end
20
20
 
21
21
  it "returns PONG to PING" do
22
- robot.should_receive(:say).with(
22
+ expect(robot).to receive(:say).with(
23
23
  body: from,
24
24
  from: to,
25
25
  to: from,
@@ -12,12 +12,12 @@ describe Ruboty::Robot do
12
12
  describe "#brain" do
13
13
  context "without any Brain class" do
14
14
  it "returns a Ruboty::Brains::Memory" do
15
- instance.brain.should be_a Ruboty::Brains::Memory
15
+ expect(instance.brain).to be_a Ruboty::Brains::Memory
16
16
  end
17
17
 
18
18
  it "can be used as a Hash object" do
19
19
  instance.brain.data["a"] = 1
20
- instance.brain.data["a"].should == 1
20
+ expect(instance.brain.data["a"]).to eq 1
21
21
  end
22
22
  end
23
23
 
@@ -31,7 +31,7 @@ describe Ruboty::Robot do
31
31
  end
32
32
 
33
33
  it "returns its instance as a Brain" do
34
- instance.brain.should be_a another_brain_class
34
+ expect(instance.brain).to be_a another_brain_class
35
35
  end
36
36
  end
37
37
  end
@@ -1,16 +1,10 @@
1
1
  require "simplecov"
2
2
  SimpleCov.start
3
3
 
4
- if ENV["CI"]
5
- require "codeclimate-test-reporter"
6
- CodeClimate::TestReporter.start
7
- end
8
-
9
4
  require "active_support/core_ext/string/strip"
10
5
  require "ruboty"
11
6
 
12
7
  RSpec.configure do |config|
13
- config.treat_symbols_as_metadata_keys_with_true_values = true
14
8
  config.run_all_when_everything_filtered = true
15
9
  config.filter_run :focus
16
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruboty
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakamura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-10 00:00:00.000000000 Z
11
+ date: 2020-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: codeclimate-test-reporter
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 0.3.0
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 0.3.0
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: rake
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +100,14 @@ dependencies:
114
100
  requirements:
115
101
  - - '='
116
102
  - !ruby/object:Gem::Version
117
- version: 2.14.1
103
+ version: 3.4.0
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
108
  - - '='
123
109
  - !ruby/object:Gem::Version
124
- version: 2.14.1
110
+ version: 3.4.0
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: simplecov
127
113
  requirement: !ruby/object:Gem::Requirement
@@ -176,7 +162,6 @@ files:
176
162
  - lib/ruboty/handlers/help.rb
177
163
  - lib/ruboty/handlers/ping.rb
178
164
  - lib/ruboty/handlers/whoami.rb
179
- - lib/ruboty/logger.rb
180
165
  - lib/ruboty/message.rb
181
166
  - lib/ruboty/robot.rb
182
167
  - lib/ruboty/version.rb
@@ -205,15 +190,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
205
190
  requirements:
206
191
  - - ">="
207
192
  - !ruby/object:Gem::Version
208
- version: '0'
193
+ version: 2.2.2
209
194
  required_rubygems_version: !ruby/object:Gem::Requirement
210
195
  requirements:
211
196
  - - ">="
212
197
  - !ruby/object:Gem::Version
213
198
  version: '0'
214
199
  requirements: []
215
- rubyforge_project:
216
- rubygems_version: 2.4.5
200
+ rubygems_version: 3.0.3
217
201
  signing_key:
218
202
  specification_version: 4
219
203
  summary: Ruby + Bot = Ruboty
@@ -229,4 +213,3 @@ test_files:
229
213
  - spec/ruboty/handlers/whoami_spec.rb
230
214
  - spec/ruboty/robot_spec.rb
231
215
  - spec/spec_helper.rb
232
- has_rdoc:
@@ -1,10 +0,0 @@
1
- require "logger"
2
-
3
- module Ruboty
4
- class Logger < Logger
5
- def initialize(*)
6
- super
7
- @formatter = ->(severity, time, name, message) { "#{message}\n" }
8
- end
9
- end
10
- end