babot 0.5.0 → 0.6.1

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.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/babot.gemspec +1 -1
  4. data/bin/babot +8 -21
  5. data/lib/babot.rb +13 -0
  6. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9295ef726b80c0331e9f8dd6b8e876ebc27f085c
4
- data.tar.gz: c54d60d9c405903fca825e9ba9ba6fabd33f3a97
3
+ metadata.gz: 80b98f4de939c7811071478086b09917a822e1ff
4
+ data.tar.gz: b2615a3ddd93ba9e9a23ac06b6bbf813d7cc8d62
5
5
  SHA512:
6
- metadata.gz: 116fac133309287a44816f1c50e2a8758beb010b1454b7e626c3c5878ec2243db83000539ebfeca00d8e7fef3c9857a6df12b4d7327b8b17b88b83562de3fbcd
7
- data.tar.gz: bf2376b52d5b166c60d20937bd3aed5609bc6e24bd14939a50800dddfda4ab76822f054911ea06b90ad5578b311a6d140306850e8d14964e5a2cb53a291a9958
6
+ metadata.gz: f31996231a66c38259f21103fc091e85996a5cf34da9f8c71dbb138f965b4fabe47408e650a3654936637c693c9fc88e5cafc9d97a68e6c5b8fe7eb622b62f92
7
+ data.tar.gz: 447aa32774423316b8d38fc5f432091d9aabee8bfbb37763108327036a1248b6208b97ad403f4a67aea28b1d1d823d5c9c511c1b1c1b6b890a7f2bd9def8891f
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- babot (0.4.1)
4
+ babot (0.6.1)
5
5
  boson
6
6
  twitter
7
7
  whenever
@@ -20,7 +20,7 @@ GEM
20
20
  chronic (0.9.1)
21
21
  faraday (0.8.8)
22
22
  multipart-post (~> 1.2.0)
23
- i18n (0.6.4)
23
+ i18n (0.6.5)
24
24
  minitest (4.7.5)
25
25
  multi_json (1.7.9)
26
26
  multipart-post (1.2.0)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'babot'
3
- s.version = '0.5.0'
3
+ s.version = '0.6.1'
4
4
  s.date = '2013-11-08'
5
5
  s.summary = "Babot"
6
6
  s.description = "A simple tool to manage Twitter bots"
data/bin/babot CHANGED
@@ -19,10 +19,8 @@ class BabotRunner < Boson::Runner
19
19
  cmd "mkdir -p '#{root}'"
20
20
  end
21
21
 
22
- desc "Add bot from [repository]"
23
- def add(repository)
24
- name = File.basename repository
25
-
22
+ desc "Add bot [name] from [repository]"
23
+ def add(name, repository)
26
24
  if File.directory? repository
27
25
  cmd "ln -s '#{File.realpath repository}' '#{root.join(name)}'"
28
26
  else
@@ -33,7 +31,6 @@ class BabotRunner < Boson::Runner
33
31
  File.open(root.join(name, "config", "credentials.yml").to_s, 'w') do |config|
34
32
  config.write DEFAULT_CONFIG.to_yaml
35
33
  end
36
- configure name
37
34
  end
38
35
 
39
36
  desc "Update bot [name]"
@@ -41,24 +38,14 @@ class BabotRunner < Boson::Runner
41
38
  cmd "cd '#{root.join(name)}' && git pull --rebase origin master && bundle install"
42
39
  end
43
40
 
44
- desc "Update crontab"
45
- def schedule
46
- `ls #{root}`.split.each do |name|
47
- cmd "whenever -i #{name} -f #{root.join(name, 'config', 'schedule.rb')}"
48
- end
41
+ desc "Set run date of the bot [name] with [cron] syntax with [options]"
42
+ def schedule(name, cron, *options)
43
+ cmd "printf \"every '#{cron}' do\ncommand 'babot run #{name} \"#{options.join("\" \"")}\"'\nend\" > #{root.join name, 'config', 'schedule.rb'}"
49
44
  end
50
45
 
51
46
  desc "Run bot [name]"
52
- def run(name)
53
- options = YAML::load_file root.join(name, "config", 'credentials.yml')
54
-
55
- Twitter.configure do |config|
56
- config.consumer_key = options['consumer_key']
57
- config.consumer_secret = options['consumer_secret']
58
- config.oauth_token = options['oauth_token']
59
- config.oauth_token_secret = options['oauth_token_secret']
60
- end
61
- load root.join(name, 'babot.run').to_s
47
+ def run(name, *options)
48
+ cmd "cd '#{root.join name}' && bundle exec ruby 'babot.run' \"#{options.join("\" \"")}\""
62
49
  end
63
50
 
64
51
  desc "Delete bot [name]"
@@ -81,7 +68,7 @@ class BabotRunner < Boson::Runner
81
68
  cmd "ssh '#{remote}' 'rm -rf ~/.babot'"
82
69
  cmd "scp -qr '#{root}' '#{remote}:~/.'"
83
70
  `ls -1 '#{root}'`.split.each do |name|
84
- cmd "ssh '#{remote}' 'cd ~/.babot/#{name} && bundle install'"
71
+ cmd "ssh '#{remote}' 'cd ~/.babot/#{name} && bundle install && whenever -i #{name} -f ~/.babot/#{name}/config/schedule.rb'"
85
72
  end
86
73
  cmd "ssh '#{remote}' 'babot schedule'"
87
74
  end
@@ -4,4 +4,17 @@ class Babot
4
4
  def Babot.run!
5
5
  new.call
6
6
  end
7
+
8
+ def twitter
9
+ return @twitter if @twitter
10
+
11
+ options = YAML::load_file "config/credentials.yml"
12
+
13
+ @twitter = Twitter::REST::Client.new do |config|
14
+ config.consumer_key = options['consumer_key']
15
+ config.consumer_secret = options['consumer_secret']
16
+ config.oauth_token = options['oauth_token']
17
+ config.oauth_token_secret = options['oauth_token_secret']
18
+ end
19
+ end
7
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: babot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Goya