babot 0.5.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
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