ruboty-gen 1.0.1 → 1.1.0

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: e8ce64a8d28166b80c90de6fecce18854e1223b6
4
- data.tar.gz: 066be0cf44a5a8e63363521c78f7a77658f65d50
3
+ metadata.gz: 008edf104512ebfafab0d77002e02c3e0f96d195
4
+ data.tar.gz: b7179803f61b57615355ec38896d723b73d2ec8b
5
5
  SHA512:
6
- metadata.gz: 358d3e8b841f7136604c927b2e87369ba13d635122210bddac62f989408aa14839f58e2c909227d70839e26b9ddff43eac5498c35c8c9d1c6a51065c8691ff0a
7
- data.tar.gz: 6c747f934ec84cdc41a1eefbf4f9e23be4718b1bfdf4381df6e8087cf1b912915918d00cea8f683a1d9a0944c9442c3714da50289b2f65482e092d08556c377b
6
+ metadata.gz: a34deaf81cf1af040b25bad3098c2e7d2a18e2888ee56f33c0d0eaba640fd3b492c5a16322945231cdd4b96b5cfb276d89175d14003c3e658adf0ca4def957dc
7
+ data.tar.gz: f21c86e410cbcdc61f8d6f2bc512909aa25968b50dcccf2183049a3061ab2aeb612c9a2c544a84f1919586a43794cbc250e7aafb503138223cc0b73212e0448d
data/README.md CHANGED
@@ -22,7 +22,7 @@ Or install it yourself as:
22
22
 
23
23
  ```
24
24
  ∩ ∩ ∠ i’m at ~/src/github.com/blockgiven
25
- ( ╹x╹) ruboty-gen gem yo
25
+ ( ╹x╹) ruboty-gen gem yo action1 action2
26
26
  create ruboty-yo/Gemfile
27
27
  create ruboty-yo/Rakefile
28
28
  create ruboty-yo/LICENSE.txt
@@ -33,7 +33,8 @@ Or install it yourself as:
33
33
  create ruboty-yo/lib/ruboty/yo/version.rb
34
34
  Initializing git repo in /Users/block_given/src/github.com/blockgiven/ruboty-yo
35
35
  create ruboty-yo/lib/ruboty/handlers/yo.rb
36
- create ruboty-yo/lib/ruboty/yo/actions/yo.rb
36
+ create ruboty-yo/lib/ruboty/yo/actions/action1.rb
37
+ create ruboty-yo/lib/ruboty/yo/actions/action2.rb
37
38
  ∩ ∩ ∠ i’m at ~/src/github.com/blockgiven
38
39
  ( ╹x╹) cd ruboty-yo
39
40
  ∩ ∩ ∠ i’m at ~/src/github.com/blockgiven/ruboty-yo [master] ✗
@@ -49,14 +50,83 @@ Initializing git repo in /Users/block_given/src/github.com/blockgiven/ruboty-yo
49
50
  │   │   └── yo.rb
50
51
  │   ├── yo
51
52
  │   │   ├── actions
52
- │   │   │   └── yo.rb
53
+ │   │   │   ├── action1.rb
54
+ │   │   │   └── action2.rb
53
55
  │   │   └── version.rb
54
56
  │   └── yo.rb
55
57
  └── ruboty-yo.gemspec
56
58
 
57
- 5 directories, 9 files
59
+ 5 directories, 10 files
58
60
  ```
59
-
61
+
62
+ * ./lib/ruboty/yo.rb (generated code)
63
+
64
+ ~~~ruby
65
+ require "ruboty/yo/version"
66
+ require "ruboty/handlers/yo"
67
+
68
+ module Ruboty
69
+ module Yo
70
+ # Your code goes here...
71
+ end
72
+ end
73
+ ~~~
74
+
75
+ * ./lib/ruboty/handlers/yo.rb (generated code)
76
+
77
+ ~~~ruby
78
+ require "ruboty/yo/actions/action1"
79
+ require "ruboty/yo/actions/action2"
80
+
81
+ module Ruboty
82
+ module Handlers
83
+ class Yo < Base
84
+ on /yo action1/, name: 'action1', description: 'TODO: write your description'
85
+ on /yo action2/, name: 'action2', description: 'TODO: write your description'
86
+
87
+ def action1(message)
88
+ Ruboty::Yo::Actions::Action1.new(message).call
89
+ end
90
+
91
+ def action2(message)
92
+ Ruboty::Yo::Actions::Action2.new(message).call
93
+ end
94
+ end
95
+ end
96
+ end
97
+ ~~~
98
+
99
+ * ./lib/ruboty/yo/actions/action1.rb (generated code)
100
+
101
+ ~~~ruby
102
+ module Ruboty
103
+ module Yo
104
+ module Actions
105
+ class Action1 < Ruboty::Actions::Base
106
+ def call
107
+ message.reply("TODO: write a message.")
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
113
+ ~~~
114
+
115
+ * ./lib/ruboty/yo/actions/action2.rb (generated code)
116
+
117
+ ~~~ruby
118
+ module Ruboty
119
+ module Yo
120
+ module Actions
121
+ class Action2 < Ruboty::Actions::Base
122
+ def call
123
+ message.reply("TODO: write a message.")
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
129
+ ~~~
60
130
 
61
131
  ## Contributing
62
132
 
@@ -20,9 +20,10 @@ module Ruboty
20
20
  end
21
21
 
22
22
  desc "gem GEM [OPTIONS]", "Creates a skeleton for creating a ruboty plugin"
23
- def gem(name)
23
+ def gem(name, *actions)
24
+ actions = [name] if actions.size.zero?
24
25
  Bundler::CLI::Gem.new(options, "ruboty-#{name}", self).run
25
- Ruboty::Gen::Gem.new(options, name, self).run
26
+ Ruboty::Gen::Gem.new(options, name, actions, self).run
26
27
  end
27
28
  end
28
29
  end
@@ -1,11 +1,12 @@
1
1
  module Ruboty
2
2
  module Gen
3
3
  class Gem
4
- attr_reader :options, :ruboty_plugin_name, :thor
4
+ attr_reader :options, :ruboty_plugin_name, :actions, :thor
5
5
 
6
- def initialize(options, ruboty_plugin_name, thor)
6
+ def initialize(options, ruboty_plugin_name, actions, thor)
7
7
  @options = options
8
8
  @ruboty_plugin_name = ruboty_plugin_name.chomp("/")
9
+ @actions = actions
9
10
  @thor = thor
10
11
  end
11
12
 
@@ -21,6 +22,8 @@ module Ruboty
21
22
  constant_array = constant_name.split('::')
22
23
  git_user_name = `git config user.name`.chomp
23
24
  git_user_email = `git config user.email`.chomp
25
+ constant_actions = actions.map { |e|camelize(e) }
26
+
24
27
  opts = {
25
28
  :name => name,
26
29
  :ruboty_plugin_name => ruboty_plugin_name,
@@ -33,11 +36,22 @@ module Ruboty
33
36
  :author => git_user_name.empty? ? "TODO: Write your name" : git_user_name,
34
37
  :email => git_user_email.empty? ? "TODO: Write your email address" : git_user_email,
35
38
  :test => options[:test],
36
- :ext => options[:ext]
39
+ :ext => options[:ext],
40
+ :actions => actions,
41
+ :constant_actions => constant_actions
37
42
  }
38
43
 
39
44
  thor.template(File.join('ruboty/handlers/newgem.rb.tt'), File.join(target, "lib/ruboty/handlers/#{ruboty_plugin_name}.rb"), opts)
40
- thor.template(File.join('ruboty/newgem/actions/newgem.rb.tt'), File.join(target, "lib/ruboty/#{ruboty_plugin_name}/actions/#{ruboty_plugin_name}.rb"), opts)
45
+ actions.each do |action|
46
+ opts[:constant_action] = camelize(action)
47
+ thor.template(File.join('ruboty/newgem/actions/newgem.rb.tt'), File.join(target, "lib/ruboty/#{ruboty_plugin_name}/actions/#{action}.rb"), opts)
48
+ end
49
+ end
50
+
51
+ private
52
+
53
+ def camelize(text)
54
+ text.split('_').map { |e|e.capitalize }.join
41
55
  end
42
56
  end
43
57
  end
@@ -1,5 +1,5 @@
1
1
  module Ruboty
2
2
  module Gen
3
- VERSION = "1.0.1"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
@@ -1,6 +1,5 @@
1
1
  require "<%=config[:namespaced_path]%>/version"
2
2
  require "ruboty/handlers/<%= config[:name].gsub(/^ruboty-/, '') %>"
3
- require "ruboty/<%= config[:name].gsub(/^ruboty-/, '') %>/actions/<%= config[:name].gsub(/^ruboty-/, '') %>"
4
3
  <%- if config[:ext] -%>
5
4
  require "<%=config[:namespaced_path]%>/<%=config[:underscored_name]%>"
6
5
  <%- end -%>
@@ -1,11 +1,21 @@
1
+ <%- if config[:actions] -%>
2
+ <%- config[:actions].each do |action| -%>
3
+ require "ruboty/<%= config[:name].gsub(/^ruboty-/, '') %>/actions/<%= action %>"
4
+ <%- end -%>
5
+ <%- end -%>
6
+
1
7
  module Ruboty
2
8
  module Handlers
3
9
  class <%= config[:ruboty_plugin_constant_name] %> < Base
4
- on /<%= config[:ruboty_plugin_name].gsub('_', ' ') %>/, name: 'todo', description: 'TODO: write your description'
10
+ <%- config[:actions].each do |action| -%>
11
+ on /<%= config[:ruboty_plugin_name].gsub('_', ' ') %> <%= action %>/, name: '<%= action %>', description: 'TODO: write your description'
12
+ <%- end -%>
13
+ <%- config[:actions].each_with_index do |action, i| -%>
5
14
 
6
- def todo(message)
7
- Ruboty::<%= config[:ruboty_plugin_constant_name] %>::Actions::<%= config[:ruboty_plugin_constant_name] %>.new(message).call
15
+ def <%= action %>(message)
16
+ Ruboty::<%= config[:ruboty_plugin_constant_name] %>::Actions::<%= config[:constant_actions][i]%>.new(message).call
8
17
  end
18
+ <%- end -%>
9
19
  end
10
20
  end
11
21
  end
@@ -1,7 +1,7 @@
1
1
  module Ruboty
2
2
  module <%= config[:ruboty_plugin_constant_name] %>
3
3
  module Actions
4
- class <%= config[:ruboty_plugin_constant_name] %> < Ruboty::Actions::Base
4
+ class <%= config[:constant_action] %> < Ruboty::Actions::Base
5
5
  def call
6
6
  message.reply("TODO: write a message.")
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruboty-gen
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - block_given?
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-15 00:00:00.000000000 Z
11
+ date: 2014-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler