boty 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 21a4d56f540118ad8858dc94e9e2bd2e193ab74d
4
- data.tar.gz: db894f4d3e4a3c2b73ede86fc46270a25ace7ace
3
+ metadata.gz: 74d5b3c5eae3f0ce09247e0fd42830d3ec717f27
4
+ data.tar.gz: 2b0ef8bcf092a0dcc0d4054761c60e39274b4333
5
5
  SHA512:
6
- metadata.gz: b5c89bbaaafd1af6e2220b49c48723d472459eebc0e6d37ebce5d0fcd61469e03e16f642810984cc785eba23066704cec3138317f2a035921026058ea3055d5c
7
- data.tar.gz: 9a8da21b939af7e7d386b956bd63f1244bd13ecd04794d459432bdab17da262b83d19158f34589502685badfb00f9e7cdf56d72cfd2f1f9d036b8e0b521f11ac
6
+ metadata.gz: 3ab94e2b871edade5c5c0b5e6d1780c5a51b60d7cc0cf37896663ed6eb49539d911585904cfe84193dea3af8d2595f0886a13fadcf24cdbaba1f3a382973ef3c
7
+ data.tar.gz: df59c71175b656ab20c5944c7be14406e6b06fd7620919d952e84cfc1ce64daa4aa37c5a4ccdf9b979aa773f84731dcc5aee19f7fa736d8645ec8f9932703422
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- boty (0.0.10)
4
+ boty (0.0.11)
5
5
  eventmachine
6
6
  faye-websocket
7
+ i18n
7
8
  thor
8
9
 
9
10
  GEM
@@ -19,6 +20,7 @@ GEM
19
20
  websocket-driver (>= 0.5.1)
20
21
  foreman (0.78.0)
21
22
  thor (~> 0.19.1)
23
+ i18n (0.7.0)
22
24
  rake (10.4.2)
23
25
  rspec (3.4.0)
24
26
  rspec-core (~> 3.4.0)
data/bin/bot CHANGED
@@ -1,11 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
2
  require "./lib/boty"
3
3
 
4
+ Boty.locale = ARGV.pop || :en
5
+
4
6
  session = Boty::Session.new
5
7
  session.start do |bot|
6
- bot.desc "Responds when someone asks for the #{bot.name} presence."
7
- bot.message(/#{bot.name}, are you there\?/i) do |message|
8
+ bot.desc I18n.t "template.presence", bot_name: bot.name
9
+ bot.message(/#{bot.name}/i) do |message|
8
10
  next if message.from? self
9
- say "Ohay <@#{message.user}>! I'm here, that's for sure."
11
+ say I18n.t "template.hello", user_name: message.user.name
10
12
  end
11
13
  end
data/boty.gemspec CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_runtime_dependency "eventmachine"
25
25
  spec.add_runtime_dependency "faye-websocket"
26
26
  spec.add_runtime_dependency "thor"
27
+ spec.add_runtime_dependency "i18n"
27
28
 
28
29
  spec.add_development_dependency "bundler", "~> 1.10"
29
30
  spec.add_development_dependency "rake", "~> 10.0"
@@ -0,0 +1,42 @@
1
+ require "logger"
2
+ module Boty
3
+ module Logger
4
+ attr_writer :logger
5
+
6
+ def self.adapter=(adapter)
7
+ @adapter = adapter
8
+ end
9
+
10
+ def self.adapter
11
+ @adapter ||= ::Logger.new(STDOUT).tap { |logger|
12
+ logger.level = ::Logger::DEBUG
13
+ }
14
+ end
15
+
16
+ def logger
17
+ Logger.adapter
18
+ end
19
+
20
+ def log_level(level)
21
+ logger.level = level
22
+ end
23
+
24
+ class Memory < ::Logger
25
+ attr_reader :logs
26
+
27
+ def initialize(*args)
28
+ @logs = []
29
+ end
30
+
31
+ def add(*args, &block)
32
+ _, _, message = args
33
+ @logs << message
34
+ end
35
+ end
36
+
37
+ class Null < ::Logger
38
+ def initialize(*args); end
39
+ def add(*args, &block); end
40
+ end
41
+ end
42
+ end
data/lib/boty/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Boty
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
data/lib/boty.rb CHANGED
@@ -9,28 +9,26 @@ begin
9
9
  rescue LoadError
10
10
  end
11
11
 
12
- require "logger"
13
12
  require "faye/websocket"
14
13
 
15
- module Boty
16
- module Logger
17
- attr_writer :logger
14
+ require "i18n"
15
+ locales = Dir[File.expand_path("../../locale/**/*", __FILE__)]
16
+ I18n.load_path += locales
18
17
 
19
- def logger
20
- @logger ||= ::Logger.new(STDOUT).tap { |logger|
21
- logger.level = ::Logger::DEBUG
22
- }
23
- end
18
+ $:.unshift File.expand_path("../../lib", __FILE__)
24
19
 
25
- def log_level(level)
26
- logger.level = level
27
- end
20
+ module Boty
21
+ def self.locale=(lang)
22
+ I18n.locale = lang
28
23
  end
29
- end
30
24
 
31
- $:.unshift File.expand_path("../../lib", __FILE__)
25
+ def self.locale
26
+ I18n.locale ||= :en
27
+ end
28
+ end
32
29
 
33
30
  require "boty/version"
31
+ require "boty/logger"
34
32
  require "boty/slack"
35
33
  require "boty/session"
36
34
  require "boty/message"
data/locale/en.yml ADDED
@@ -0,0 +1,10 @@
1
+ en:
2
+ template:
3
+ presence: "Responds when the bot name (%{bot_name}) is mentioned in a message."
4
+ hello: "Ohay <@%{user_name}>! I'm here, that's for sure."
5
+ scripts:
6
+ knows: "List all the commands known by this bot."
7
+ pugme: "Send some nice pug in the channel."
8
+ pugbomb: "Send X pugs in the channel."
9
+ remember: "Instructs %{name} about something happening with the user."
10
+ about: "Retrieves information stored in the brain section :user for \"julian\"."
data/locale/pt-br.yml ADDED
@@ -0,0 +1,9 @@
1
+ pt-br:
2
+ template:
3
+ presence: "Responde quando o nome do bot (%{bot_name}) é mencionado em uma mensagem."
4
+ scripts:
5
+ knows: "Lista os comandos conhecidos por esse bot."
6
+ pug_me: "Manda um belo pug no canal."
7
+ pug_bomb: "Manda X belos pugs no canal."
8
+ remember: "Ensina %{name} alguma informação fornecida pelo usuário."
9
+ about: "Busca informação no cérebro na seção :user para \"julian\"."
data/script/knows.rb CHANGED
@@ -1,4 +1,4 @@
1
- desc "knows", "list all the commands known by this bot."
1
+ desc I18n.t "scripts.knows"
2
2
  respond(/knows/i) do
3
3
  message = know_how.inject("") { |_message, command|
4
4
 
data/script/pug.rb CHANGED
@@ -1,10 +1,10 @@
1
- desc "Send some nice pug in the channel."
1
+ desc I18n.t "scripts.pug_me"
2
2
  respond(/pug me/i) do
3
3
  response = JSON.parse Net::HTTP.get(URI "http://pugme.herokuapp.com/random")
4
4
  say "<#{response["pug"]}>"
5
5
  end
6
6
 
7
- desc "pug bomb X", "Send X pugs in the channel."
7
+ desc "pug bomb X", I18n.t("scripts.pug_bomb")
8
8
  respond(/pug bomb( (\d+))?/i) do |message|
9
9
  count = message.match[2] || 5
10
10
  response = JSON.parse Net::HTTP.get(URI "http://pugme.herokuapp.com/bomb?count=#{count}")
data/script/remember.rb CHANGED
@@ -1,5 +1,4 @@
1
- desc "remember: I'm at the dentist",
2
- "Instructs #{name} about something happening with the user."
1
+ desc "remember: I'm at the dentist", I18n.t("scripts.remember", name: name)
3
2
  respond(/remember(:?) (.+)/i) do |message|
4
3
  brain[:user] ||= {}
5
4
  brain[:user][message.user.name] ||= []
@@ -7,8 +6,7 @@ respond(/remember(:?) (.+)/i) do |message|
7
6
  im "No worries, your secrets aren't safe with me... oh wait..."
8
7
  end
9
8
 
10
- desc "about user julian",
11
- "Retrieves information stored in the brain section :user for \"julian\"."
9
+ desc "about user julian", I18n.t("scripts.about")
12
10
  respond(/about (\w+\b)(:?) (.+)/i) do |message|
13
11
  user = message.match[3]
14
12
  im "I'm glad you need my knowlege on #{message.match[1]}, #{message.user.name}."
@@ -1,11 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
2
  require "./<%= bot_name %>"
3
3
 
4
+ Boty.locale = ARGV.pop || :en
5
+
4
6
  session = Boty::Session.new
5
7
  session.start do |bot|
6
- desc "Responds when the bot name (<%= bot_name %>) is mentioned in a message."
7
- bot.message(/<%= bot_name %>/i) do |message|
8
+ bot.desc I18n.t "template.presence", bot_name: bot.name
9
+ bot.message(/<%= bot.name %>/i) do |message|
8
10
  next if message.from? self
9
- say "Ohay <@#{message.user}>! I'm here, that's for sure."
11
+ say I18n.t "template.hello", user_name: message.user.name
10
12
  end
11
13
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo Valeriano
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: i18n
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: bundler
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -178,6 +192,7 @@ files:
178
192
  - lib/boty/bot.rb
179
193
  - lib/boty/cli.rb
180
194
  - lib/boty/dsl.rb
195
+ - lib/boty/logger.rb
181
196
  - lib/boty/message.rb
182
197
  - lib/boty/rspec.rb
183
198
  - lib/boty/session.rb
@@ -191,6 +206,8 @@ files:
191
206
  - lib/boty/slack/users.rb
192
207
  - lib/boty/version.rb
193
208
  - lib/tasks/.keep
209
+ - locale/en.yml
210
+ - locale/pt-br.yml
194
211
  - log/.keep
195
212
  - script/knows.rb
196
213
  - script/pug.rb