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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f4caaab716dce5e7e7173a70249785cdfb71f248
4
- data.tar.gz: d27d1d4e05c4f97addb5e2a40c95e3ddaab78ed1
3
+ metadata.gz: 3314105065eff21b575c914a34c27f4c159f741f
4
+ data.tar.gz: 0fbd347a06f02e3df058772709c22c2915b991fe
5
5
  SHA512:
6
- metadata.gz: 69f09d4940022c13808b0aa9e641e62cae01c8cb6465760bd027b0c5f176bd14f2e1608d543a789fc6aabd84c26251ddefc09b4b7baabbc7eaa038861d41b191
7
- data.tar.gz: 0f9ff53e7304a200282aab82541caa79bbe0d27720f07b5caaafdcdabf12d2dae8ea365728c4993418362d7e5726193b0edd55cb19143d89ad64f86c759283f6
6
+ metadata.gz: 137196d8d1e69cf1c10c8810452eb9d641b05e47d0843a576c4e5c319f7072e7d53a9863a37bfb197f3043b8dac355cc9c662730ff22bb595e7200483baed4a1
7
+ data.tar.gz: b584831e8dced00c6cea23e3a4bf3152c4e85fcac30070c921207cf7c46df72de17d20dfd7edc5add9b4bb79e1fdea4a383c040b723b62e6e274ad77d396aa24
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.gitignore CHANGED
@@ -20,3 +20,5 @@ tmp
20
20
  *.o
21
21
  *.a
22
22
  mkmf.log
23
+ .DS_Store
24
+ */.DS_Store
data/.travis.yml ADDED
@@ -0,0 +1,14 @@
1
+ language: ruby
2
+ cache: bundler
3
+
4
+ rvm:
5
+ - 2.0.0
6
+
7
+ script: 'bundle exec rake'
8
+
9
+ notifications:
10
+ email:
11
+ recipients:
12
+ - coleww+twitbotgem@email.com
13
+ on_failure: change
14
+ on_success: never
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # twitter_bot_generator
2
2
 
3
- ### wip no docs have fun lol!
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
- ## TODO
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
- --markov flag. chuck .txt in lib and then set it loose
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
- --streaming. set up a simple regex listener thing on timeline or gardenhose
28
+ http://stackoverflow.com/questions/1338960/ruby-templates-how-to-pass-variables-into-inlined-erb
@@ -0,0 +1,3 @@
1
+ .DS_Store
2
+ */.DS_Store
3
+ notes.todo
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+ ruby '2.0.0'
3
+ gem 'twitter'
@@ -0,0 +1 @@
1
+ bot: ruby bot.rb
@@ -0,0 +1,5 @@
1
+ # <%= bot_name %>
2
+ A Twitter Bot
3
+
4
+ > bundle install
5
+ > ruby test.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
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative 'src/<%= bot_name %>'
3
+ 12.times { puts <%= class_name %>.generate }
@@ -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
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Dir.glob('./test/*_test.rb').each { |file| require file }
@@ -1,4 +1,4 @@
1
1
  class TwitterBotGenerator
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
4
4
 
@@ -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
- private
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' => "require_relative 'src/#{bot_name}.rb'\nrequire 'twitter'\ntwitter = Twitter::REST::Client.new do |config|\n config.consumer_key = ENV['TWITTER_CONSUMER_KEY']\n config.consumer_secret = ENV['TWITTER_CONSUMER_SECRET']\n config.access_token = ENV['TWITTER_ACCESS_TOKEN']\n config.access_token_secret = ENV['TWITTER_ACCESS_SECRET']\nend\n\nloop do\n begin\n twitter.update #{camelize bot_name}.generate\n ensure\n sleep 10800 + (rand 5400)\n end\nend\n",
39
- '.gitignore' => ".DS_Store\n*/.DS_Store\nnotes.todo\n",
40
- 'Gemfile' => "source 'https://rubygems.org'\nruby '2.0.0'\ngem 'twitter'\n",
41
- 'README.md' => "\# #{bot_name}\nA Twitter Bot\n\n[Template created with Twitter_Bot_Generator#{}](https://github.com/coleww/twitter_bot_generator)",
42
- 'Procfile' => "bot: ruby bot.rb\n",
43
- 'spec.rb' => "#!/usr/bin/env ruby\nrequire_relative 'src/#{bot_name}'\n12.times { puts #{camelize bot_name}.generate }",
44
- 'test.rb' => "#!/usr/bin/env ruby\n\nDir.glob('./test/*_test.rb').each { |file| require file }",
45
- "test/#{bot_name}_test.rb" => "require 'minitest/autorun'\nrequire_relative '../src/#{bot_name}.rb'\n\nclass Test#{camelize bot_name} < MiniTest::Test\n def test_generate_returns_hello_world\n assert_match /Hello/, #{camelize bot_name}.generate\n end\n def test_hides_greetings\n refute_respond_to #{camelize bot_name}, :greetings\n end\n def test_hides_io_metal\n refute_respond_to #{camelize bot_name}, :load_txt_file\n end\nend",
46
- "src/#{bot_name}.rb" => "class #{camelize bot_name}\n\n class << self\n\n def generate\n greetings.sample\n end\n\n protected\n\n def greetings\n ['Hello World!', 'Hello Twitter!', 'Hello Ruby!']\n end\n\n private\n\n def load_txt_file file_name\n (File.readlines (File.join 'lib', file_name)).map &:strip\n end\n\n end\n\nend\n",
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
@@ -1,6 +1,8 @@
1
1
  require 'minitest/autorun'
2
2
  require 'minitest/autorun'
3
3
  require 'minitest/pride'
4
+ require 'coveralls'
5
+ Coveralls.wear!
4
6
 
5
7
  require_relative "../lib/twitter_bot_generator.rb"
6
8
 
@@ -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{WIP DONUT USE! Generates a twitter bot template from command line.}
12
- spec.description = %q{WIP DONUT USE! gem install twitter_bot_generator && twitter_bot_generator new_twitter_bot}
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.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-04 00:00:00.000000000 Z
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
- description: WIP DONUT USE! gem install twitter_bot_generator && twitter_bot_generator
70
- new_twitter_bot
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: WIP DONUT USE! Generates a twitter bot template from command line.
136
+ summary: Generates a twitter bot template from command line.
112
137
  test_files:
113
138
  - test/scaffold_generator_test.rb