boty 0.0.10 → 0.0.11

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
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