twitter_bot_generator 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.coveralls.yml +1 -0
- data/.gitignore +2 -0
- data/.travis.yml +14 -0
- data/README.md +7 -16
- data/lib/twitter_bot_generator/templates/.gitignore.erb +3 -0
- data/lib/twitter_bot_generator/templates/Gemfile.erb +3 -0
- data/lib/twitter_bot_generator/templates/Procfile.erb +1 -0
- data/lib/twitter_bot_generator/templates/README.md.erb +5 -0
- data/lib/twitter_bot_generator/templates/bot.rb.erb +16 -0
- data/lib/twitter_bot_generator/templates/lib/greetings.txt.erb +0 -0
- data/lib/twitter_bot_generator/templates/spec.rb.erb +3 -0
- data/lib/twitter_bot_generator/templates/src/test_bot.rb.erb +23 -0
- data/lib/twitter_bot_generator/templates/test/test_bot_test.rb.erb +18 -0
- data/lib/twitter_bot_generator/templates/test.rb.erb +3 -0
- data/lib/twitter_bot_generator/version.rb +1 -1
- data/lib/twitter_bot_generator.rb +35 -10
- data/test/scaffold_generator_test.rb +2 -0
- data/twitter_bot_generator.gemspec +4 -3
- metadata +31 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3314105065eff21b575c914a34c27f4c159f741f
|
4
|
+
data.tar.gz: 0fbd347a06f02e3df058772709c22c2915b991fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 137196d8d1e69cf1c10c8810452eb9d641b05e47d0843a576c4e5c319f7072e7d53a9863a37bfb197f3043b8dac355cc9c662730ff22bb595e7200483baed4a1
|
7
|
+
data.tar.gz: b584831e8dced00c6cea23e3a4bf3152c4e85fcac30070c921207cf7c46df72de17d20dfd7edc5add9b4bb79e1fdea4a383c040b723b62e6e274ad77d396aa24
|
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
service_name: travis-ci
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# twitter_bot_generator
|
2
2
|
|
3
|
-
|
3
|
+
[watch this terrible hour long clicky screencast to see it in action!](https://vimeo.com/105286654)
|
4
4
|
|
5
5
|
#### I GENERATE TWITTER BOTS! RUBY IS JOY!
|
6
6
|
|
@@ -11,27 +11,18 @@
|
|
11
11
|
## Usage
|
12
12
|
|
13
13
|
$ twitter_bot_generator yr_bot_name_snake_case_style_yes
|
14
|
-
|
14
|
+
|
15
15
|
This will create a skeleton class named YrBotNameSnakeCaseStyleYes, some smokescreen minitest::unit tests, and a variety of other "ruby app on free heroku instance" boiler plate.
|
16
16
|
|
17
|
-
You will need to manually set the config variables with yr twitter api keys on heroku for deployment. For development I recommend writing some minitests or just doing it manually on the command line if the bot is simple enough. Testing the bot "live" can run into potential "twitter banning yr bot before
|
17
|
+
You will need to manually set the config variables with yr twitter api keys on heroku for deployment. For development I recommend writing some minitests or just doing it manually on the command line if the bot is simple enough. Testing the bot "live" can run into potential "twitter banning yr bot before
|
18
18
|
|
19
19
|
This gem was made for use in the twitter-art-robot-[tutorial](http://github.com/coleww/twitter-art-tutorial) and more details and documentation and such will be there when things happen. :dancers:
|
20
20
|
|
21
|
-
##
|
22
|
-
|
23
|
-
ADD test for load lines, push greetings to a txt file, etc.
|
24
|
-
|
25
|
-
add help dialog
|
26
|
-
|
27
|
-
docs on getting/setting twitter keys? heroku deployment? (link to tut?)
|
28
|
-
|
29
|
-
handle CLI errors better
|
21
|
+
## Contribute
|
30
22
|
|
31
|
-
|
23
|
+
all kinds of issues in the thing to the upper right! =>
|
24
|
+
comment on something if it sounds cool to u
|
32
25
|
|
33
|
-
--db flag to get a mini AR::Base thing. migrations? HOW TO DO THAT.
|
34
26
|
|
35
|
-
--no-tests cuz sometimes, like, y? uno?
|
36
27
|
|
37
|
-
|
28
|
+
http://stackoverflow.com/questions/1338960/ruby-templates-how-to-pass-variables-into-inlined-erb
|
@@ -0,0 +1 @@
|
|
1
|
+
bot: ruby bot.rb
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative 'src/<%= bot_name %>.rb'
|
2
|
+
require 'twitter'
|
3
|
+
twitter = Twitter::REST::Client.new do |config|
|
4
|
+
config.consumer_key = ENV['TWITTER_CONSUMER_KEY']
|
5
|
+
config.consumer_secret = ENV['TWITTER_CONSUMER_SECRET']
|
6
|
+
config.access_token = ENV['TWITTER_ACCESS_TOKEN']
|
7
|
+
config.access_token_secret = ENV['TWITTER_ACCESS_SECRET']
|
8
|
+
end
|
9
|
+
|
10
|
+
loop do
|
11
|
+
begin
|
12
|
+
twitter.update <%= class_name %>.generate
|
13
|
+
ensure
|
14
|
+
sleep 10800 + (rand 5400)
|
15
|
+
end
|
16
|
+
end
|
File without changes
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class <%= class_name %>
|
2
|
+
|
3
|
+
class << self
|
4
|
+
|
5
|
+
def generate
|
6
|
+
greetings.sample
|
7
|
+
end
|
8
|
+
|
9
|
+
protected
|
10
|
+
|
11
|
+
def greetings
|
12
|
+
['Hello World!', 'Hello Twitter!', 'Hello Ruby!']
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def load_txt_file file_name
|
18
|
+
(File.readlines (File.join 'lib', file_name)).map &:strip
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require_relative '../src/<%= bot_name %>.rb'
|
3
|
+
|
4
|
+
class Test<%= class_name %> < MiniTest::Test
|
5
|
+
|
6
|
+
def test_generate_returns_hello_world
|
7
|
+
assert_match /Hello/, <%= class_name %>.generate
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_hides_greetings
|
11
|
+
refute_respond_to <%= class_name %>, :greetings
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_hides_io_metal
|
15
|
+
refute_respond_to <%= class_name %>, :load_txt_file
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -1,4 +1,6 @@
|
|
1
1
|
require_relative 'twitter_bot_generator/version.rb'
|
2
|
+
require 'erb'
|
3
|
+
require 'ostruct'
|
2
4
|
|
3
5
|
class TwitterBotGenerator
|
4
6
|
|
@@ -27,31 +29,54 @@ class TwitterBotGenerator
|
|
27
29
|
puts 'HAVE FUN BE SAFE PLAY NICE'
|
28
30
|
end
|
29
31
|
|
30
|
-
|
32
|
+
protected
|
31
33
|
|
32
34
|
def folders
|
33
35
|
%w(lib src test)
|
34
36
|
end
|
35
37
|
|
36
38
|
def files bot_name
|
39
|
+
varz = grab_a_binding_for bot_name
|
37
40
|
{
|
38
|
-
'bot.rb' =>
|
39
|
-
'.gitignore' =>
|
40
|
-
'Gemfile' =>
|
41
|
-
'README.md' =>
|
42
|
-
'Procfile' =>
|
43
|
-
'spec.rb' =>
|
44
|
-
'test.rb' =>
|
45
|
-
"test/#{bot_name}_test.rb" =>
|
46
|
-
"src/#{bot_name}.rb" =>
|
41
|
+
'bot.rb' => (render_code 'bot.rb', varz),
|
42
|
+
'.gitignore' => (render_code '.gitignore', varz),
|
43
|
+
'Gemfile' => (render_code 'Gemfile', varz),
|
44
|
+
'README.md' => (render_code 'README.md', varz),
|
45
|
+
'Procfile' => (render_code 'Procfile', varz),
|
46
|
+
'spec.rb' => (render_code 'spec.rb', varz),
|
47
|
+
'test.rb' => (render_code 'test.rb', varz),
|
48
|
+
"test/#{bot_name}_test.rb" => (render_code 'test/test_bot_test.rb', varz),
|
49
|
+
"src/#{bot_name}.rb" => (render_code 'src/test_bot.rb', varz),
|
47
50
|
'lib/.gitkeep' => 'lol'
|
48
51
|
}
|
49
52
|
end
|
50
53
|
|
54
|
+
def grab_a_binding_for bot_name
|
55
|
+
openstructicon = OpenStruct.new bot_name: bot_name, class_name: (camelize bot_name)
|
56
|
+
openstructicon.instance_eval { binding }
|
57
|
+
end
|
58
|
+
|
59
|
+
def render_code file_name, varz
|
60
|
+
(get_template file_name).result varz
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
51
65
|
def camelize str
|
52
66
|
((str.split '_').map &:capitalize).join
|
53
67
|
end
|
54
68
|
|
69
|
+
def get_template file_name
|
70
|
+
template = read_file file_name
|
71
|
+
ERB.new template, nil, "%"
|
72
|
+
end
|
73
|
+
|
74
|
+
def read_file file_name
|
75
|
+
home_sweet_home = File.expand_path File.dirname __FILE__
|
76
|
+
ultimate_pathway = File.join home_sweet_home, '/twitter_bot_generator/templates/', "#{file_name}.erb"
|
77
|
+
File.read ultimate_pathway
|
78
|
+
end
|
79
|
+
|
55
80
|
end
|
56
81
|
|
57
82
|
end
|
@@ -8,9 +8,9 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = TwitterBotGenerator::VERSION
|
9
9
|
spec.authors = ["Cole Willsea"]
|
10
10
|
spec.email = ["coleww@gmail.com"]
|
11
|
-
spec.summary = %q{
|
12
|
-
spec.description = %q{
|
13
|
-
spec.homepage = ""
|
11
|
+
spec.summary = %q{Generates a twitter bot template from command line.}
|
12
|
+
spec.description = %q{gem install twitter_bot_generator && twitter_bot_generator new_twitter_bot}
|
13
|
+
spec.homepage = "https://github.com/coleww/twitter_bot_generator"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -22,4 +22,5 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
spec.add_development_dependency 'test_construct'
|
24
24
|
spec.add_development_dependency 'minitest'
|
25
|
+
spec.add_development_dependency 'coveralls'
|
25
26
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twitter_bot_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cole Willsea
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,8 +66,21 @@ dependencies:
|
|
66
66
|
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
|
70
|
-
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: coveralls
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: gem install twitter_bot_generator && twitter_bot_generator new_twitter_bot
|
71
84
|
email:
|
72
85
|
- coleww@gmail.com
|
73
86
|
executables:
|
@@ -75,17 +88,29 @@ executables:
|
|
75
88
|
extensions: []
|
76
89
|
extra_rdoc_files: []
|
77
90
|
files:
|
91
|
+
- .coveralls.yml
|
78
92
|
- .gitignore
|
93
|
+
- .travis.yml
|
79
94
|
- Gemfile
|
80
95
|
- LICENSE.txt
|
81
96
|
- README.md
|
82
97
|
- Rakefile
|
83
98
|
- bin/twitter_bot_generator
|
84
99
|
- lib/twitter_bot_generator.rb
|
100
|
+
- lib/twitter_bot_generator/templates/.gitignore.erb
|
101
|
+
- lib/twitter_bot_generator/templates/Gemfile.erb
|
102
|
+
- lib/twitter_bot_generator/templates/Procfile.erb
|
103
|
+
- lib/twitter_bot_generator/templates/README.md.erb
|
104
|
+
- lib/twitter_bot_generator/templates/bot.rb.erb
|
105
|
+
- lib/twitter_bot_generator/templates/lib/greetings.txt.erb
|
106
|
+
- lib/twitter_bot_generator/templates/spec.rb.erb
|
107
|
+
- lib/twitter_bot_generator/templates/src/test_bot.rb.erb
|
108
|
+
- lib/twitter_bot_generator/templates/test.rb.erb
|
109
|
+
- lib/twitter_bot_generator/templates/test/test_bot_test.rb.erb
|
85
110
|
- lib/twitter_bot_generator/version.rb
|
86
111
|
- test/scaffold_generator_test.rb
|
87
112
|
- twitter_bot_generator.gemspec
|
88
|
-
homepage:
|
113
|
+
homepage: https://github.com/coleww/twitter_bot_generator
|
89
114
|
licenses:
|
90
115
|
- MIT
|
91
116
|
metadata: {}
|
@@ -108,6 +133,6 @@ rubyforge_project:
|
|
108
133
|
rubygems_version: 2.3.0
|
109
134
|
signing_key:
|
110
135
|
specification_version: 4
|
111
|
-
summary:
|
136
|
+
summary: Generates a twitter bot template from command line.
|
112
137
|
test_files:
|
113
138
|
- test/scaffold_generator_test.rb
|