hsume2-aka 0.3.2 → 0.4.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -3
  3. data/bin/aka +18 -0
  4. data/bin/build +37 -0
  5. data/bin/postinstall +3 -0
  6. data/bin/postremove +3 -0
  7. data/lib/aka/configuration.pb.rb +41 -0
  8. data/lib/aka/configuration.proto +20 -0
  9. data/lib/aka/link_manager.rb +30 -0
  10. data/lib/aka/man/aka-add.1 +1 -1
  11. data/lib/aka/man/aka-add.1.txt +1 -1
  12. data/lib/aka/man/aka-edit.1 +1 -1
  13. data/lib/aka/man/aka-edit.1.txt +1 -1
  14. data/lib/aka/man/aka-generate.1 +1 -1
  15. data/lib/aka/man/aka-generate.1.txt +1 -1
  16. data/lib/aka/man/aka-link.1 +1 -1
  17. data/lib/aka/man/aka-link.1.txt +1 -1
  18. data/lib/aka/man/aka-list.1 +1 -1
  19. data/lib/aka/man/aka-list.1.txt +1 -1
  20. data/lib/aka/man/aka-remove.1 +1 -1
  21. data/lib/aka/man/aka-remove.1.txt +1 -1
  22. data/lib/aka/man/aka-show.1 +1 -1
  23. data/lib/aka/man/aka-show.1.txt +1 -1
  24. data/lib/aka/man/aka-sync.1 +1 -1
  25. data/lib/aka/man/aka-sync.1.txt +1 -1
  26. data/lib/aka/man/aka-upgrade.1 +3 -3
  27. data/lib/aka/man/aka-upgrade.1.txt +3 -3
  28. data/lib/aka/man/aka.7 +4 -4
  29. data/lib/aka/man/aka.7.txt +4 -4
  30. data/lib/aka/shortcut.rb +43 -0
  31. data/lib/aka/{shortcuts.rb → shortcut_manager.rb} +16 -34
  32. data/lib/aka/store.rb +92 -39
  33. data/lib/aka/upgrader.rb +45 -12
  34. data/lib/aka/version.rb +1 -1
  35. data/lib/aka.rb +4 -3
  36. metadata +23 -74
  37. data/.gitignore +0 -11
  38. data/.ruby-version.example +0 -1
  39. data/.travis.yml +0 -4
  40. data/Gemfile +0 -8
  41. data/Guardfile +0 -6
  42. data/Rakefile +0 -98
  43. data/aka.gemspec +0 -28
  44. data/features/aka/add.feature +0 -199
  45. data/features/aka/edit.feature +0 -196
  46. data/features/aka/generate.feature +0 -117
  47. data/features/aka/help.feature +0 -112
  48. data/features/aka/link.feature +0 -339
  49. data/features/aka/list.feature +0 -62
  50. data/features/aka/remove.feature +0 -52
  51. data/features/aka/show.feature +0 -38
  52. data/features/aka/upgrade.feature +0 -137
  53. data/features/step_definitions/aka_steps.rb +0 -3
  54. data/features/support/env.rb +0 -80
  55. data/lib/aka/configuration.rb +0 -94
  56. data/lib/aka/links.rb +0 -33
  57. data/lib/aka/man/.gitkeep +0 -0
  58. data/man/aka-add.1.ronn +0 -32
  59. data/man/aka-edit.1.ronn +0 -67
  60. data/man/aka-generate.1.ronn +0 -51
  61. data/man/aka-link.1.ronn +0 -49
  62. data/man/aka-list.1.ronn +0 -51
  63. data/man/aka-remove.1.ronn +0 -21
  64. data/man/aka-show.1.ronn +0 -27
  65. data/man/aka-sync.1.ronn +0 -31
  66. data/man/aka-upgrade.1.ronn +0 -22
  67. data/man/aka.7.ronn +0 -120
  68. data/test/tc_something.rb +0 -7
data/lib/aka/store.rb CHANGED
@@ -7,9 +7,12 @@ module Aka
7
7
  class Store
8
8
  include Methadone::CLILogging
9
9
 
10
+ FORMAT = '3'
11
+
10
12
  def help(command, options)
11
13
  case command
12
14
  when nil then command = "aka.7"
15
+ when 'ls' then command = "aka.list.1"
13
16
  else command = "aka-#{command}.1"
14
17
  end
15
18
 
@@ -37,27 +40,37 @@ module Aka
37
40
  end
38
41
 
39
42
  def add(options)
40
- found = configuration.shortcuts.find(options)
41
-
43
+ shortcut = Configuration::Shortcut.new({
44
+ :shortcut => options[:shortcut],
45
+ :command => options[:command],
46
+ :tag => options[:tag],
47
+ :description => options[:description],
48
+ :function => options[:function]
49
+ })
50
+
51
+ found = shortcut_manager.find(options)
42
52
  if found.length > 0
43
53
  unless options[:force]
44
54
  abort %{Shortcut "#{options[:shortcut]}" exists. Pass --force to overwrite. Or provide a new --tag.}
45
55
  else
46
- found.each do |n, row|
47
- configuration.shortcuts.replace(n, Configuration::Shortcut.parse(options))
56
+ found.each do |row|
57
+ [:shortcut, :command, :description, :function].each do |key|
58
+ row.send(:"#{key}=", options[key])
59
+ end
60
+ row.tag = options[:tag] || []
48
61
  end
49
- configuration.save
62
+ save
50
63
  puts "Overwrote shortcut."
51
64
  end
52
65
  else
53
- configuration.shortcuts.append(Configuration::Shortcut.parse(options))
54
- configuration.save
66
+ shortcut_manager.add(shortcut)
67
+ save
55
68
  puts "Created shortcut."
56
69
  end
57
70
  end
58
71
 
59
72
  def list(options)
60
- excluded = configuration.shortcuts.match_by_tag(options[:tag] || []) do |tag, rows|
73
+ excluded = shortcut_manager.match_by_tag(options[:tag] || []) do |tag, rows|
61
74
  puts %{##{tag}}
62
75
  puts ''.ljust(tag.length + 1, '=')
63
76
  rows.each do |row|
@@ -66,14 +79,16 @@ module Aka
66
79
  puts
67
80
  end
68
81
 
69
- if configuration.links.any?
82
+ if link_manager.any?
70
83
  puts "====="
71
84
  puts "Links"
72
85
  puts "====="
73
86
  puts
74
87
 
75
- configuration.links.each do |index, link|
88
+ index = 1
89
+ link_manager.each do |link|
76
90
  puts "[#{index}] #{link.output}: #{link.tag.map { |tag| "##{tag}" }.join(', ')}"
91
+ index += 1
77
92
  end
78
93
  end
79
94
 
@@ -81,14 +96,14 @@ module Aka
81
96
  end
82
97
 
83
98
  def remove(options)
84
- found = configuration.shortcuts.find(options)
99
+ found = shortcut_manager.find(options)
85
100
 
86
101
  if found.length > 0
87
- found.each do |n, row|
88
- configuration.shortcuts.delete(n)
102
+ found.each do |shortcut|
103
+ shortcut_manager.remove(shortcut)
89
104
  end
90
105
 
91
- configuration.save
106
+ save
92
107
 
93
108
  puts "Removed shortcut."
94
109
  else
@@ -97,27 +112,38 @@ module Aka
97
112
  end
98
113
 
99
114
  def generate(options)
100
- excluded = configuration.shortcuts.generate(options)
115
+ excluded = shortcut_manager.generate(options)
101
116
 
102
117
  excluded_output(excluded)
103
118
  end
104
119
 
105
120
  def link(options)
106
- configuration.links.add(options)
107
- configuration.save
121
+ unless options[:tag] && options[:output]
122
+ abort("Invalid link.")
123
+ end
124
+
125
+ new_link = Configuration::Link.new({
126
+ :tag => options[:tag],
127
+ :output => options[:output]
128
+ })
129
+
130
+ link_manager.add(new_link)
131
+ save
108
132
  puts "Saved link."
109
133
  end
110
134
 
111
135
  def unlink(key)
112
- configuration.links.delete(key)
113
- configuration.save
136
+ link_manager.remove(key)
137
+ save
114
138
  puts "Deleted link."
115
139
  end
116
140
 
117
141
  def sync(match)
118
- configuration.links.each do |index, config|
142
+ index = 0
143
+ link_manager.each do |config|
144
+ index += 1
119
145
  next if match && match != index
120
- excluded = configuration.shortcuts.generate(config.marshal_dump)
146
+ excluded = shortcut_manager.generate({ :tag => config.tag, :output => config.output })
121
147
  excluded_output(excluded)
122
148
  end
123
149
  end
@@ -125,9 +151,7 @@ module Aka
125
151
  def edit(options)
126
152
  result = nil
127
153
 
128
- found = configuration.shortcuts.find(options)
129
-
130
- index, row = found.first
154
+ row = shortcut_manager.find(options).first
131
155
 
132
156
  unless row
133
157
  abort "Shortcut not found."
@@ -170,17 +194,14 @@ module Aka
170
194
 
171
195
  if result
172
196
  parse_row_txt(row, result)
173
- configuration.shortcuts.replace(index, row)
174
- configuration.save
197
+ save
175
198
  puts "Saved shortcut."
176
199
  else
177
200
  end
178
201
  end
179
202
 
180
203
  def show(options)
181
- found = configuration.shortcuts.find(options)
182
-
183
- _, row = found.first
204
+ row = shortcut_manager.find(options).first
184
205
 
185
206
  if row
186
207
  puts show_output(row)
@@ -190,17 +211,54 @@ module Aka
190
211
  end
191
212
 
192
213
  def upgrade(options)
193
- configuration.upgrade
214
+ configuration
215
+
216
+ if !@version
217
+ Upgrader::FromV0ToV1.run(aka_db)
218
+ elsif @version == '1'
219
+ Upgrader::FromV1ToV2.run(aka_db)
220
+ elsif @version == '2'
221
+ Upgrader::FromV2ToV3.run(aka_db)
222
+ end
223
+ end
224
+
225
+ def save
226
+ File.open(aka_db, 'w+') do |f|
227
+ f.write configuration.encode
228
+ end
194
229
  end
195
230
 
196
231
  private
197
232
 
198
233
  def configuration
199
- @configuration ||= Configuration.new
234
+ @configuration ||= begin
235
+ if File.exist?(aka_db)
236
+ begin
237
+ Configuration.decode(File.read(aka_db))
238
+ rescue Protobuf::InvalidWireType => e
239
+ YAML::load_file(aka_db).tap do |result|
240
+ if result[:version]
241
+ @version = result[:version]
242
+ end
243
+ end
244
+ Configuration.new(:version => @version)
245
+ end
246
+ else
247
+ Configuration.new(:version => FORMAT)
248
+ end
249
+ end
250
+ end
251
+
252
+ def shortcut_manager
253
+ @shortcuts ||= ShortcutManager.new(configuration.shortcuts)
254
+ end
255
+
256
+ def link_manager
257
+ @link_manager ||= LinkManager.new(configuration.links)
200
258
  end
201
259
 
202
- def shortcuts
203
- configuration.shortcuts.all
260
+ def aka_db
261
+ ENV['AKA'] || File.expand_path('~/.aka.db')
204
262
  end
205
263
 
206
264
  def excluded_output(excluded)
@@ -211,11 +269,7 @@ module Aka
211
269
  end
212
270
 
213
271
  def list_output(row)
214
- if row.function
215
- description = row.description || row.command
216
- else
217
- description = row.command
218
- end
272
+ description = row.description.length > 0 ? row.description : row.command
219
273
 
220
274
  if description
221
275
  description = description.split("\n").map(&:strip).join("; ")
@@ -240,7 +294,6 @@ module Aka
240
294
  end
241
295
  if txt =~ /^Tags:(.*)$/
242
296
  row.tag = $1.strip.split(',').map(&:strip)
243
- row.delete_field('tag') if row.tag.empty?
244
297
  end
245
298
  if txt =~ /^Command:(.*)$/m
246
299
  row.command = $1.strip
data/lib/aka/upgrader.rb CHANGED
@@ -1,27 +1,27 @@
1
1
  module Aka
2
2
  module Upgrader
3
3
  module FromV0ToV1
4
- def self.run(aka_yml)
5
- v0 = YAML::load_file(aka_yml)
4
+ def self.run(aka_db)
5
+ v0 = YAML::load_file(aka_db)
6
6
 
7
7
  current = {
8
8
  :version => '1',
9
9
  :shortcuts => v0
10
10
  }
11
11
 
12
- FileUtils.cp(aka_yml, "#{aka_yml}.backup")
13
- puts "Backed up to #{aka_yml}.backup."
12
+ FileUtils.cp(aka_db, "#{aka_db}.backup")
13
+ puts "Backed up to #{aka_db}.backup."
14
14
 
15
- File.open(aka_yml, 'w+') do |f|
15
+ File.open(aka_db, 'w+') do |f|
16
16
  f.write current.to_yaml
17
17
  end
18
- puts "Upgraded #{aka_yml}."
18
+ puts "Upgraded #{aka_db}."
19
19
  end
20
20
  end
21
21
 
22
22
  module FromV1ToV2
23
- def self.run(aka_yml)
24
- v1 = YAML::load_file(aka_yml)
23
+ def self.run(aka_db)
24
+ v1 = YAML::load_file(aka_db)
25
25
 
26
26
  v2 = v1.merge(:version => '2')
27
27
  links = v2.delete(:links)
@@ -34,13 +34,46 @@ module Aka
34
34
  end
35
35
  end
36
36
 
37
- FileUtils.cp(aka_yml, "#{aka_yml}.backup")
38
- puts "Backed up to #{aka_yml}.backup."
37
+ FileUtils.cp(aka_db, "#{aka_db}.backup")
38
+ puts "Backed up to #{aka_db}.backup."
39
39
 
40
- File.open(aka_yml, 'w+') do |f|
40
+ File.open(aka_db, 'w+') do |f|
41
41
  f.write v2.to_yaml
42
42
  end
43
- puts "Upgraded #{aka_yml}."
43
+ puts "Upgraded #{aka_db}."
44
+ end
45
+ end
46
+
47
+ module FromV2ToV3
48
+ def self.run(aka_db)
49
+ v2 = YAML::load_file(aka_db)
50
+
51
+ v3 = Configuration.new(:version => '3')
52
+
53
+ v2[:shortcuts].each do |_, shortcut|
54
+ v3.shortcuts << Configuration::Shortcut.new({
55
+ :shortcut => shortcut[:shortcut],
56
+ :command => shortcut[:command],
57
+ :tag => shortcut[:tag],
58
+ :description => shortcut[:description],
59
+ :function => shortcut[:function]
60
+ })
61
+ end
62
+
63
+ (v2[:links] || {}).each do |_, link|
64
+ v3.links << Configuration::Link.new({
65
+ :tag => link[:tag],
66
+ :output => link[:output]
67
+ })
68
+ end
69
+
70
+ FileUtils.cp(aka_db, "#{aka_db}.backup")
71
+ puts "Backed up to #{aka_db}.backup."
72
+
73
+ File.open(aka_db, 'w+') do |f|
74
+ f.write v3.encode
75
+ end
76
+ puts "Upgraded #{aka_db}."
44
77
  end
45
78
  end
46
79
  end
data/lib/aka/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Aka
2
- VERSION = "0.3.2"
2
+ VERSION = "0.4.1"
3
3
  end
data/lib/aka.rb CHANGED
@@ -1,6 +1,7 @@
1
- require "aka/shortcuts"
2
- require "aka/links"
3
- require "aka/configuration"
1
+ require 'aka/configuration.pb'
2
+ require "aka/shortcut"
3
+ require "aka/shortcut_manager"
4
+ require "aka/link_manager"
4
5
  require "aka/upgrader"
5
6
  require "aka/store"
6
7
  require "aka/version"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hsume2-aka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henry Hsu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-14 00:00:00.000000000 Z
11
+ date: 2016-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -39,41 +39,27 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.9.2
41
41
  - !ruby/object:Gem::Dependency
42
- name: rdoc
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: aruba
42
+ name: methadone
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
- - - ">="
45
+ - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
47
+ version: 1.3.1
48
+ type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
- - - ">="
52
+ - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: '0'
54
+ version: 1.3.1
69
55
  - !ruby/object:Gem::Dependency
70
- name: ronn
56
+ name: protobuf
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - ">="
74
60
  - !ruby/object:Gem::Version
75
61
  version: '0'
76
- type: :development
62
+ type: :runtime
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
@@ -81,19 +67,19 @@ dependencies:
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
- name: methadone
70
+ name: activesupport
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: 1.3.1
75
+ version: '4.0'
90
76
  type: :runtime
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: 1.3.1
82
+ version: '4.0'
97
83
  description: Manage Shell Keyboard Shortcuts
98
84
  email:
99
85
  - hhsu@zendesk.com
@@ -102,32 +88,17 @@ executables:
102
88
  extensions: []
103
89
  extra_rdoc_files: []
104
90
  files:
105
- - ".gitignore"
106
- - ".ruby-version.example"
107
- - ".travis.yml"
108
- - Gemfile
109
- - Guardfile
110
91
  - LICENSE.txt
111
92
  - README.md
112
- - Rakefile
113
- - aka.gemspec
114
93
  - bin/aka
115
- - features/aka/add.feature
116
- - features/aka/edit.feature
117
- - features/aka/generate.feature
118
- - features/aka/help.feature
119
- - features/aka/link.feature
120
- - features/aka/list.feature
121
- - features/aka/remove.feature
122
- - features/aka/show.feature
123
- - features/aka/upgrade.feature
124
- - features/step_definitions/aka_steps.rb
125
- - features/support/env.rb
94
+ - bin/build
95
+ - bin/postinstall
96
+ - bin/postremove
126
97
  - lib/aka.rb
127
98
  - lib/aka/app.rb
128
- - lib/aka/configuration.rb
129
- - lib/aka/links.rb
130
- - lib/aka/man/.gitkeep
99
+ - lib/aka/configuration.pb.rb
100
+ - lib/aka/configuration.proto
101
+ - lib/aka/link_manager.rb
131
102
  - lib/aka/man/aka-add.1
132
103
  - lib/aka/man/aka-add.1.txt
133
104
  - lib/aka/man/aka-edit.1
@@ -148,21 +119,11 @@ files:
148
119
  - lib/aka/man/aka-upgrade.1.txt
149
120
  - lib/aka/man/aka.7
150
121
  - lib/aka/man/aka.7.txt
151
- - lib/aka/shortcuts.rb
122
+ - lib/aka/shortcut.rb
123
+ - lib/aka/shortcut_manager.rb
152
124
  - lib/aka/store.rb
153
125
  - lib/aka/upgrader.rb
154
126
  - lib/aka/version.rb
155
- - man/aka-add.1.ronn
156
- - man/aka-edit.1.ronn
157
- - man/aka-generate.1.ronn
158
- - man/aka-link.1.ronn
159
- - man/aka-list.1.ronn
160
- - man/aka-remove.1.ronn
161
- - man/aka-show.1.ronn
162
- - man/aka-sync.1.ronn
163
- - man/aka-upgrade.1.ronn
164
- - man/aka.7.ronn
165
- - test/tc_something.rb
166
127
  homepage: ''
167
128
  licenses:
168
129
  - MIT
@@ -183,20 +144,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
144
  version: '0'
184
145
  requirements: []
185
146
  rubyforge_project:
186
- rubygems_version: 2.2.2
147
+ rubygems_version: 2.4.5.1
187
148
  signing_key:
188
149
  specification_version: 4
189
150
  summary: Manage Shell Keyboard Shortcuts
190
- test_files:
191
- - features/aka/add.feature
192
- - features/aka/edit.feature
193
- - features/aka/generate.feature
194
- - features/aka/help.feature
195
- - features/aka/link.feature
196
- - features/aka/list.feature
197
- - features/aka/remove.feature
198
- - features/aka/show.feature
199
- - features/aka/upgrade.feature
200
- - features/step_definitions/aka_steps.rb
201
- - features/support/env.rb
202
- - test/tc_something.rb
151
+ test_files: []
data/.gitignore DELETED
@@ -1,11 +0,0 @@
1
- .DS_Store
2
- results.html
3
- pkg
4
- html
5
- tmp
6
- Gemfile.lock
7
- .bundle
8
- .ruby-version
9
-
10
- # output from ronn
11
- lib/aka/man/
@@ -1 +0,0 @@
1
- 2.0.0-p353
data/.travis.yml DELETED
@@ -1,4 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - "ruby-2.1.1"
4
- bundler_args: --without guard
data/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
4
-
5
- group :guard do
6
- gem 'guard'
7
- gem 'guard-cucumber'
8
- end
data/Guardfile DELETED
@@ -1,6 +0,0 @@
1
- guard 'cucumber', :cli => '--no-profile --color --format progress --strict --tags ~@interactive' do
2
- watch(%r{^lib/.+\.rb$})
3
- watch(%r{^features/.+\.feature$})
4
- watch(%r{^features/support/.+$}) { 'features' }
5
- watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
6
- end
data/Rakefile DELETED
@@ -1,98 +0,0 @@
1
- def dump_load_path
2
- puts $LOAD_PATH.join("\n")
3
- found = nil
4
- $LOAD_PATH.each do |path|
5
- if File.exists?(File.join(path,"rspec"))
6
- puts "Found rspec in #{path}"
7
- if File.exists?(File.join(path,"rspec","core"))
8
- puts "Found core"
9
- if File.exists?(File.join(path,"rspec","core","rake_task"))
10
- puts "Found rake_task"
11
- found = path
12
- else
13
- puts "!! no rake_task"
14
- end
15
- else
16
- puts "!!! no core"
17
- end
18
- end
19
- end
20
- if found.nil?
21
- puts "Didn't find rspec/core/rake_task anywhere"
22
- else
23
- puts "Found in #{path}"
24
- end
25
- end
26
- require 'bundler'
27
- require 'rake/clean'
28
-
29
- require 'rake/testtask'
30
-
31
- require 'cucumber'
32
- require 'cucumber/rake/task'
33
- gem 'rdoc' # we need the installed RDoc gem, not the system one
34
- require 'rdoc/task'
35
-
36
- include Rake::DSL
37
-
38
- Bundler::GemHelper.install_tasks
39
-
40
-
41
- Rake::TestTask.new do |t|
42
- t.pattern = 'test/tc_*.rb'
43
- end
44
-
45
-
46
- CUKE_RESULTS = 'results.html'
47
- CLEAN << CUKE_RESULTS
48
- Cucumber::Rake::Task.new(:features) do |t|
49
- t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty --no-source -x --tags ~@interactive"
50
- t.fork = false
51
- end
52
-
53
- Rake::RDocTask.new do |rd|
54
-
55
- rd.main = "README.rdoc"
56
-
57
- rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
58
- end
59
-
60
- begin
61
- require 'ronn'
62
-
63
- namespace :man do
64
- directory "lib/aka/man"
65
-
66
- Dir["man/*.ronn"].each do |ronn|
67
- basename = File.basename(ronn, ".ronn")
68
- roff = "lib/aka/man/#{basename}"
69
-
70
- file roff => ["lib/aka/man", ronn] do
71
- sh "#{Gem.ruby} -S ronn --roff --pipe #{ronn} > #{roff}"
72
- end
73
-
74
- file "#{roff}.txt" => roff do
75
- sh "groff -Wall -mtty-char -mandoc -Tascii #{roff} | col -b > #{roff}.txt"
76
- end
77
-
78
- task :build_all_pages => "#{roff}.txt"
79
- end
80
-
81
- desc "Build the man pages"
82
- task :build => "man:build_all_pages"
83
-
84
- desc "Clean up from the built man pages"
85
- task :clean do
86
- rm_rf "lib/aka/man"
87
- end
88
- end
89
-
90
- rescue LoadError
91
- namespace :man do
92
- task(:build) { abort "Install the ronn gem to be able to release!" }
93
- task(:clean) { abort "Install the ronn gem to be able to release!" }
94
- end
95
- end
96
-
97
- task :default => ["man:build", :test, :features]
98
-
data/aka.gemspec DELETED
@@ -1,28 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'aka/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "hsume2-aka"
8
- spec.version = Aka::VERSION
9
- spec.authors = ["Henry Hsu"]
10
- spec.email = ["hhsu@zendesk.com"]
11
- spec.summary = %q{Manage Shell Keyboard Shortcuts}
12
- spec.description = %q{Manage Shell Keyboard Shortcuts}
13
- spec.homepage = ""
14
- spec.license = "MIT"
15
-
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.files += Dir.glob('lib/aka/man/**/*') # man/ is ignored by git
18
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
- spec.require_paths = ["lib"]
21
-
22
- spec.add_development_dependency("bundler", "~> 1.5")
23
- spec.add_development_dependency('rake', '~> 0.9.2')
24
- spec.add_development_dependency('rdoc')
25
- spec.add_development_dependency('aruba')
26
- spec.add_development_dependency('ronn')
27
- spec.add_dependency('methadone', '~> 1.3.1')
28
- end