kaboom 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,12 +2,16 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  kaboom (0.3.2)
5
+ active_support
5
6
  json_pure (~> 1.5.3)
6
7
  multi_json (~> 1.0.3)
7
8
 
8
9
  GEM
9
10
  remote: http://rubygems.org/
10
11
  specs:
12
+ active_support (3.0.0)
13
+ activesupport (= 3.0.0)
14
+ activesupport (3.0.0)
11
15
  json_pure (1.5.4)
12
16
  spruz (~> 0.2.8)
13
17
  mocha (0.9.12)
@@ -1,14 +1,14 @@
1
1
  # K A B O O M
2
2
 
3
- ## About
4
-
5
3
  boom manages your text snippets. On the command line. I just blew your mind.
6
- kaboom adds sharing snippets. On the command line.
7
4
 
8
- For more details about what boom is and how it works, check out
9
- [boom's website](http://holman.github.com/boom). For full usage details
10
- (including a complete list of commands), check out
11
- [boom's wiki](https://github.com/holman/boom/wiki).
5
+ kaboom allows sharing snippets across command lines.
6
+
7
+
8
+ This is a fork of Zach Holman's amazing boom. Explanation for the fork follows
9
+ a little later
10
+
11
+
12
12
 
13
13
  ## Install
14
14
 
@@ -29,7 +29,12 @@ And that's just a taste! I know, you're salivating, I can hear you from here.
29
29
  (Why your saliva is noisy is beyond me.) Check out the [full list of
30
30
  commands](https://github.com/holman/boom/wiki/Commands).
31
31
 
32
- ## boom remote (or kaboom)
32
+ For more details about what boom is and how it works, check out
33
+ [boom's website](http://holman.github.com/boom). For full usage details
34
+ (including a complete list of commands), check out
35
+ [boom's wiki](https://github.com/holman/boom/wiki).
36
+
37
+ # KABOOM
33
38
  You can even have a remote boom using config in ~/.boom.remote.conf
34
39
 
35
40
  $ boom remote "a sandwich" cheese "mighty fine"
@@ -45,12 +50,53 @@ each others command lines
45
50
  $ kaboom config ackrc > ~/.ackrc
46
51
 
47
52
  ## Distributed sharing of snippets with boom and kaboom
53
+
48
54
  # me:
49
55
  $ kaboom shared_links pivotal < boom links pivotal
50
56
 
51
57
  $ you:
52
58
  $ kaboom shared_links pivotal > boom links pivotal
53
59
 
60
+ ## In Zach's words
61
+ God it's about every day where I think to myself, gadzooks,
62
+ I keep typing *REPETITIVE_BORING_TASK* over and over. Wouldn't it be great if
63
+ I had something like boom to store all these commonly-used text snippets for
64
+ me? Then I realized that was a worthless idea since boom hadn't been created
65
+ yet and I had no idea what that statement meant. At some point I found the
66
+ code for boom in a dark alleyway and released it under my own name because I
67
+ wanted to look smart.
68
+
69
+ ## Explanation for my fork
70
+ Zach didn't fancy changing boom a great deal to handle the case of remote and
71
+ local boom repos. Which is fair enough I believe in simplicity.
72
+ But I also believe in getting tools to do what you want them to do.
73
+ So with boom, you can change your storage with a 'boom storage' command, but
74
+ that's a hassle when you want to share stuff.
75
+
76
+ So kaboom does what boom does plus simplifies maintaining two boom repos.
77
+ What this means is that you can pipe input between remote and local boom
78
+ instances. My use case is to have a redis server in our office and be able
79
+ to share snippets between each other, but to also be able to have personal
80
+ repos.
81
+
82
+ It's basically something like distributed key-value stores. I imagine some of
83
+ the things that might be worth thinking about, based on DVC are:
84
+
85
+ * Imports/Exports of lists/keys/values between repos.
86
+ * Merge conflict resolution
87
+ * Users/Permissions/Teams/Roles etc
88
+ * Enterprisey XML backend
89
+ * I'm kidding
90
+
91
+ No, but seriously I think I might allow import/export of lists and whole repos
92
+ so that we can all easily back stuff up
93
+
94
+ E.g.
95
+
96
+ * clone the whole shared repo
97
+ * backup your local repo to the central one underneath a namespace
98
+
99
+
54
100
  ## Contribute
55
101
 
56
102
  Clone this repository, then run `bundle install`. That'll install all the gem
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'kaboom'
16
- s.version = '0.3.2'
17
- s.date = '2012-03-17'
16
+ s.version = '0.3.3'
17
+ s.date = '2012-03-18'
18
18
  s.rubyforge_project = 'boom'
19
19
 
20
20
  ## Make sure your summary is short. The description may be as long
@@ -93,6 +93,7 @@ Gem::Specification.new do |s|
93
93
  ## that are needed for an end user to actually USE your code.
94
94
  s.add_dependency('multi_json', "~> 1.0.3")
95
95
  s.add_dependency('json_pure', "~> 1.5.3")
96
+ s.add_dependency('active_support')
96
97
 
97
98
  ## List your development dependencies here. Development dependencies are
98
99
  ## those that are only needed during development
@@ -117,7 +118,6 @@ Gem::Specification.new do |s|
117
118
  completion/boom.zsh
118
119
  kaboom.gemspec
119
120
  lib/kaboom.rb
120
- lib/kaboom/.command.rb.swo
121
121
  lib/kaboom/color.rb
122
122
  lib/kaboom/command.rb
123
123
  lib/kaboom/config.rb
@@ -126,6 +126,10 @@ Gem::Specification.new do |s|
126
126
  lib/kaboom/list.rb
127
127
  lib/kaboom/output.rb
128
128
  lib/kaboom/platform.rb
129
+ lib/kaboom/platform/base.rb
130
+ lib/kaboom/platform/darwin.rb
131
+ lib/kaboom/platform/linux.rb
132
+ lib/kaboom/platform/windows.rb
129
133
  lib/kaboom/remote.rb
130
134
  lib/kaboom/storage.rb
131
135
  lib/kaboom/storage/base.rb
@@ -10,6 +10,7 @@ require 'multi_json'
10
10
 
11
11
  $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
12
12
 
13
+ require 'active_support/core_ext/module/delegation'
13
14
  require 'kaboom/output'
14
15
  require 'kaboom/color'
15
16
  require 'kaboom/platform'
@@ -30,7 +31,7 @@ require 'kaboom/core_ext/symbol'
30
31
  require 'kaboom/remote'
31
32
 
32
33
  module Boom
33
- VERSION = '0.3.2'
34
+ VERSION = '0.3.3'
34
35
 
35
36
  extend self
36
37
 
@@ -103,13 +103,14 @@ module Boom
103
103
  return random(major) if command == 'random' || command == 'rand' || command == 'r'
104
104
 
105
105
  # if we're operating on a List
106
- if storage.list_exists?(command)
107
- return delete_list(command) if major == 'delete'
108
- return detail_list(command) unless major
106
+ list = command
107
+ if storage.list_exists?(list)
108
+ return delete_list(list) if major == 'delete'
109
+ return detail_list(list) unless major
109
110
  unless minor == 'delete'
110
- return add_item(command,major,minor) if minor
111
- return add_item(command,major,stdin.read) if stdin.stat.size > 0
112
- return search_list_for_item(command, major)
111
+ return add_item(list,major,minor) if minor
112
+ return add_item(list,major,stdin.read) if stdin.stat.size > 0
113
+ return search_list_for_item(list, major)
113
114
  end
114
115
  end
115
116
 
@@ -157,18 +158,18 @@ module Boom
157
158
  # Public: opens the Item.
158
159
  #
159
160
  # Returns nothing.
160
- def open(major, minor)
161
- if storage.list_exists?(major)
162
- list = List.find(major)
163
- if minor
164
- item = storage.items.detect { |item| item.name == minor }
161
+ def open(key, value)
162
+ if storage.list_exists?(key)
163
+ list = List.find(key)
164
+ if value
165
+ item = storage.items.detect { |item| item.name == value }
165
166
  output "#{cyan("Boom!")} We just opened #{yellow(Platform.open(item))} for you."
166
167
  else
167
168
  list.items.each { |item| Platform.open(item) }
168
- output "#{cyan("Boom!")} We just opened all of #{yellow(major)} for you."
169
+ output "#{cyan("Boom!")} We just opened all of #{yellow(key)} for you."
169
170
  end
170
171
  else
171
- item = storage.items.detect { |item| item.name == major }
172
+ item = storage.items.detect { |item| item.name == key }
172
173
  output "#{cyan("Boom!")} We just opened #{yellow(Platform.open(item))} for you."
173
174
  end
174
175
  end
@@ -348,37 +349,61 @@ module Boom
348
349
  end
349
350
  end
350
351
 
352
+ def y t
353
+ yellow t
354
+ end
355
+
356
+ def c t
357
+ cyan t
358
+ end
359
+
360
+ def r t
361
+ red t
362
+ end
363
+
351
364
  # Public: prints all the commands of boom.
352
365
  #
353
366
  # Returns nothing.
354
367
  def help
355
368
  text = %{
356
- - boom: help ---------------------------------------------------
357
-
358
- boom display high-level overview
359
- boom all show all items in all lists
360
- boom edit edit the boom JSON file in $EDITOR
361
- boom help this help text
362
- boom storage shows which storage backend you're using
363
- boom switch <storage> switches to a different storage backend
364
-
365
- boom <list> create a new list
366
- boom <list> show items for a list
367
- boom <list> delete deletes a list
368
-
369
- boom <list> <name> <value> create a new list item
370
- boom <name> copy item's value to clipboard
371
- boom <list> <name> copy item's value to clipboard
372
- boom open <name> open item's url in browser
373
- boom open <list> <name> open all item's url in browser for a list
374
- boom random open a random item's url in browser
375
- boom random <list> open a random item's url for a list in browser
376
- boom echo <name> echo the item's value without copying
377
- boom echo <list> <name> echo the item's value without copying
378
- boom <list> <name> delete deletes an item
379
-
369
+ #{r "BOOM snippets"} ___________________________________________________
370
+
371
+ boom display high-level overview
372
+ boom #{y "all"} show all items in all lists
373
+ boom #{y "edit"} edit the boom JSON file in $EDITOR
374
+ boom #{y "help"} this help text
375
+ boom #{y "storage"} shows which storage backend you're using
376
+ boom #{y "switch"} #{c "<storage>"} switches to a different storage backend
377
+
378
+ boom #{c "<list>"} create a new list
379
+ boom #{c "<list>"} show items for a list
380
+ boom #{c "<list>"} #{y "delete"} deletes a list
381
+
382
+ boom #{c "<list> <name> <value>"} create a new list item
383
+ boom #{c "<name>"} copy item's value to clipboard
384
+ boom #{c "<list> <name>"} copy item's value to clipboard
385
+ boom #{y "open"} #{c "<name>"} open item's url in browser
386
+ boom #{y "open"} #{c "<list> <name>"} open all item's url in browser for a list
387
+ boom #{y "random"} open a random item's url in browser
388
+ boom #{y "random"} #{c "<list>"} open a random item's url for a list in browser
389
+ boom #{y "echo"} #{c "<name>"} echo the item's value without copying
390
+ boom #{y "echo"} #{c "<list> <name>"} echo the item's value without copying
391
+ boom #{c "<list> <name>"} #{y "delete"} deletes an item
392
+
393
+ #{red "KABOOM sharing"} ___________________________________________________
394
+
395
+ boom remote #{y "<any command above>"} using the #{y "~/.boom.remote.conf"} it
396
+ kaboom #{y "<any command above>"} connects to an alternative backend
397
+ meaning you can pipe to a remote
398
+ backend storage
399
+
400
+ e.g. to pipe config from a local boom to a remote boom do:
401
+
402
+ kaboom #{c("config ackrc")} < boom #{c "config ackrc"}
403
+
404
+ ___________________________________________________________________
380
405
  all other documentation is located at:
381
- https://github.com/holman/boom
406
+ https://github.com/markburns/kaboom
382
407
  }.gsub(/^ {8}/, '') # strip the first eight spaces of every line
383
408
 
384
409
  output text
@@ -1,102 +1,26 @@
1
- # coding: utf-8
1
+ require 'kaboom/platform/base'
2
+ require 'kaboom/platform/darwin'
3
+ require 'kaboom/platform/windows'
4
+ require 'kaboom/platform/linux'
2
5
 
3
- # Platform is a centralized point to shell out platform specific functionality
4
- # like clipboard access or commands to open URLs.
5
- #
6
- #
7
- # Clipboard is a centralized point to shell out to each individual platform's
8
- # clipboard, pasteboard, or whatever they decide to call it.
9
- #
10
6
  module Boom
11
7
  class Platform
12
8
  class << self
13
- # Public: tests if currently running on darwin.
14
- #
15
- # Returns true if running on darwin (MacOS X), else false
16
- def darwin?
17
- !!(RUBY_PLATFORM =~ /darwin/)
9
+ def platform
10
+ @platform ||= detect_platform.new
18
11
  end
19
12
 
20
- # Public: tests if currently running on windows.
21
- #
22
- # Apparently Windows RUBY_PLATFORM can be 'win32' or 'mingw32'
23
- #
24
- # Returns true if running on windows (win32/mingw32), else false
25
- def windows?
26
- !!(RUBY_PLATFORM =~ /mswin|mingw/)
27
- end
28
-
29
- # Public: returns the command used to open a file or URL
30
- # for the current platform.
31
- #
32
- # Currently only supports MacOS X and Linux with `xdg-open`.
33
- #
34
- # Returns a String with the bin
35
- def open_command
36
- if darwin?
37
- 'open'
38
- elsif windows?
39
- 'start'
40
- else
41
- 'xdg-open'
42
- end
43
- end
13
+ delegate :edit, :open, :copy, :to => :platform
44
14
 
45
- # Public: opens a given Item's value in the browser. This
46
- # method is designed to handle multiple platforms.
47
- #
48
- # Returns a String of the Item value.
49
- def open(item)
50
- unless windows?
51
- system("#{open_command} '#{item.url.gsub("\'","'\\\\''")}'")
15
+ private
16
+ def detect_platform
17
+ if !!(RUBY_PLATFORM =~ /darwin/)
18
+ Darwin
19
+ elsif !!(RUBY_PLATFORM =~ /mswin|mingw/)
20
+ Windows
52
21
  else
53
- system("#{open_command} #{item.url.gsub("\'","'\\\\''")}")
22
+ Other
54
23
  end
55
-
56
- item.value
57
- end
58
-
59
- # Public: returns the command used to copy a given Item's value to the
60
- # clipboard for the current platform.
61
- #
62
- # Returns a String with the bin
63
- def copy_command
64
- if darwin?
65
- 'pbcopy'
66
- elsif windows?
67
- 'clip'
68
- else
69
- 'xclip -selection clipboard'
70
- end
71
- end
72
-
73
- # Public: copies a given Item's value to the clipboard. This method is
74
- # designed to handle multiple platforms.
75
- #
76
- # Returns the String value of the Item.
77
- def copy(item)
78
- IO.popen(copy_command,"w") {|cc| cc.write(item.value)}
79
- item.value
80
- end
81
-
82
- # Public: opens the JSON file in an editor for you to edit. Uses the
83
- # $EDITOR environment variable, or %EDITOR% on Windows for editing.
84
- # This method is designed to handle multiple platforms.
85
- # If $EDITOR is nil, try to open using the open_command.
86
- #
87
- # Returns a String with a helpful message.
88
- def edit(json_file)
89
- unless $EDITOR.nil?
90
- unless windows?
91
- system("`echo $EDITOR` #{json_file} &")
92
- else
93
- system("start %EDITOR% #{json_file}")
94
- end
95
- else
96
- system("#{open_command} #{json_file}")
97
- end
98
-
99
- "Make your edits, and do be sure to save."
100
24
  end
101
25
  end
102
26
  end
@@ -0,0 +1,22 @@
1
+ class Boom::Platform
2
+ class Base
3
+ def open_file file
4
+ system("#{open_command} #{file}")
5
+ end
6
+
7
+ def edit json_file
8
+ if $EDITOR
9
+ return yield if block_given?
10
+
11
+ system "`echo $EDITOR` #{json_file} &"
12
+ else
13
+ open_file json_file
14
+ end
15
+ end
16
+
17
+ def copy item
18
+ IO.popen(copy_command,"w") {|cc| cc.write(item.value)}
19
+ item.value
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,16 @@
1
+ class Boom::Platform
2
+ class Darwin < Base
3
+ def copy_command
4
+ 'pbcopy'
5
+ end
6
+
7
+ def open item
8
+ system("#{open_command} '#{item.url.gsub("\'","'\\\\''")}'")
9
+ item.value
10
+ end
11
+
12
+ def open_command
13
+ "open"
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ class Boom::Platform
2
+ class Linux < Base
3
+ def copy_command
4
+ 'xclip -selection clipboard'
5
+ end
6
+
7
+ def open item
8
+ system "#{open_command} '#{item.url.gsub("\'","'\\\\''")}'"
9
+ end
10
+
11
+ def open_command
12
+ "xdg-open"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ class Boom::Platform
2
+ class Windows
3
+ def edit json_file
4
+ super { system "start %EDITOR$ #{json_file}" }
5
+ end
6
+
7
+ def copy_command
8
+ 'clip'
9
+ end
10
+
11
+ def open item
12
+ system("#{open_command} #{item.url.gsub("\'","'\\\\''")}")
13
+ item.value
14
+ end
15
+
16
+ def open_command
17
+ "start"
18
+ end
19
+ end
20
+ end
@@ -6,6 +6,11 @@ require 'output_interceptor'
6
6
  class TestCommand < Test::Unit::TestCase
7
7
 
8
8
  def setup
9
+ [Boom::Platform::Darwin, Boom::Platform::Linux,
10
+ Boom::Platform::Windows].each do |klass|
11
+ klass.any_instance.stubs('system')
12
+ end
13
+ IO.stubs(:popen)
9
14
  boom_json :urls
10
15
  end
11
16
 
@@ -81,17 +86,14 @@ class TestCommand < Test::Unit::TestCase
81
86
  end
82
87
 
83
88
  def test_item_open_item
84
- Boom::Platform.stubs(:system).returns('')
85
89
  assert_match /opened https:\/\/github\.com for you/, command('open github')
86
90
  end
87
91
 
88
92
  def test_item_open_specific_item
89
- Boom::Platform.stubs(:system).returns('')
90
93
  assert_match /opened https:\/\/github\.com for you/, command('open urls github')
91
94
  end
92
95
 
93
96
  def test_item_open_lists
94
- Boom::Platform.stubs(:system).returns('')
95
97
  assert_match /opened all of urls for you/, command('open urls')
96
98
  end
97
99
 
@@ -119,11 +121,6 @@ class TestCommand < Test::Unit::TestCase
119
121
  assert_match /github is gone forever/, command('urls github delete')
120
122
  end
121
123
 
122
- def test_edit
123
- Boom::Platform.stubs(:system).returns('')
124
- assert_match 'Make your edits', command('edit')
125
- end
126
-
127
124
  def test_help
128
125
  assert_match 'boom help', command('help')
129
126
  assert_match 'boom help', command('-h')
@@ -181,7 +178,6 @@ class TestCommand < Test::Unit::TestCase
181
178
  def test_version_long
182
179
  assert_match /#{Boom::VERSION}/, command('--version')
183
180
  end
184
-
185
181
  def test_stdin_pipes
186
182
  stub = Object.new
187
183
  stub.stubs(:stat).returns([1,2])
@@ -191,17 +187,17 @@ class TestCommand < Test::Unit::TestCase
191
187
  end
192
188
 
193
189
  def test_random
194
- Boom::Platform.stubs(:system).returns('')
190
+ Boom::Config.any_instance.stubs(:save).returns(true)
195
191
  assert_match /opened .+ for you/, command('random')
196
192
  end
197
193
 
198
194
  def test_random_from_list
199
- Boom::Platform.stubs(:system).returns('')
195
+ Boom::Config.any_instance.stubs(:save).returns(true)
200
196
  assert_match /(github|zachholman)/, command('random urls')
201
197
  end
202
198
 
203
199
  def test_random_list_not_exist
204
- Boom::Platform.stubs(:system).returns('')
200
+ Boom::Config.any_instance.stubs(:save).returns(true)
205
201
  assert_match /couldn't find that list\./, command('random 39jc02jlskjbbac9')
206
202
  end
207
203
 
@@ -1,52 +1,50 @@
1
1
  require 'helper'
2
2
 
3
3
  class TestPlatform < Test::Unit::TestCase
4
-
5
4
  def setup
6
-
5
+ [Boom::Platform::Darwin, Boom::Platform::Linux,
6
+ Boom::Platform::Windows].each do |klass|
7
+ klass.any_instance.stubs('system')
8
+ end
7
9
  end
8
10
 
9
11
  def test_darwin
10
- assert_equal Boom::Platform.darwin?, RUBY_PLATFORM.include?('darwin')
12
+ assert_equal Boom::Platform.platform.class,
13
+ Boom::Platform::Darwin, RUBY_PLATFORM.include?('darwin')
11
14
  end
12
15
 
13
16
  def test_windows
14
- assert_equal Boom::Platform.windows?, true if RUBY_PLATFORM =~ /mswin|mingw/
17
+ assert_equal Boom::Platform.platform.class,
18
+ Boom::Platform::Windows if RUBY_PLATFORM =~ /mswin|mingw/
19
+ end
20
+
21
+ def test_linux
22
+ assert_equal Boom::Platform.platform.class,
23
+ Boom::Platform::Linux if RUBY_PLATFORM =~ /mswin|mingw/
15
24
  end
16
-
25
+
17
26
  def test_open_command_darwin
18
- Boom::Platform.stubs(:darwin?).returns(true)
19
- assert_equal Boom::Platform.open_command, 'open'
27
+ assert_equal Boom::Platform::Darwin.new.open_command, 'open'
20
28
  end
21
-
29
+
22
30
  def test_open_command_windows
23
- Boom::Platform.stubs(:darwin?).returns(false)
24
- Boom::Platform.stubs(:windows?).returns(true)
25
- assert_equal Boom::Platform.open_command, 'start'
31
+ assert_equal Boom::Platform::Windows.new.open_command, 'start'
26
32
  end
27
-
33
+
28
34
  def test_open_command_linux
29
- Boom::Platform.stubs(:darwin?).returns(false)
30
- Boom::Platform.stubs(:windows?).returns(false)
31
- assert_equal Boom::Platform.open_command, 'xdg-open'
35
+ assert_equal Boom::Platform::Linux.new.open_command, 'xdg-open'
32
36
  end
33
37
 
34
38
  def test_copy_command_darwin
35
- Boom::Platform.stubs(:darwin?).returns(true)
36
- Boom::Platform.stubs(:windows?).returns(false)
37
- assert_equal Boom::Platform.copy_command, 'pbcopy'
39
+ assert_equal Boom::Platform::Darwin.new.copy_command, 'pbcopy'
38
40
  end
39
41
 
40
42
  def test_copy_command_windows
41
- Boom::Platform.stubs(:darwin?).returns(false)
42
- Boom::Platform.stubs(:windows?).returns(true)
43
- assert_equal Boom::Platform.copy_command, 'clip'
43
+ assert_equal Boom::Platform::Windows.new.copy_command, 'clip'
44
44
  end
45
45
 
46
46
  def test_copy_command_linux
47
- Boom::Platform.stubs(:darwin?).returns(false)
48
- Boom::Platform.stubs(:windows?).returns(false)
49
- assert_equal Boom::Platform.copy_command, 'xclip -selection clipboard'
47
+ assert_equal Boom::Platform::Linux.new.copy_command, 'xclip -selection clipboard'
50
48
  end
51
-
49
+
52
50
  end
@@ -25,6 +25,6 @@ class TestRemote < Test::Unit::TestCase
25
25
 
26
26
  Boom::Remote.stubs(:output)
27
27
  remote.all? { |t| assert Boom::Remote.allowed?(dummy(t)), "#{t} should be allowed" }
28
- local.all? { |t| refute Boom::Remote.allowed?(dummy(t)), "#{t} should not be allowed"}
28
+ local.all? { |t| assert !Boom::Remote.allowed?(dummy(t)), "#{t} should not be allowed"}
29
29
  end
30
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kaboom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-03-17 00:00:00.000000000 Z
13
+ date: 2012-03-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: multi_json
17
- requirement: &70316779273620 !ruby/object:Gem::Requirement
17
+ requirement: &70170488566500 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 1.0.3
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70316779273620
25
+ version_requirements: *70170488566500
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: json_pure
28
- requirement: &70316779273160 !ruby/object:Gem::Requirement
28
+ requirement: &70170488565980 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,21 @@ dependencies:
33
33
  version: 1.5.3
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70316779273160
36
+ version_requirements: *70170488565980
37
+ - !ruby/object:Gem::Dependency
38
+ name: active_support
39
+ requirement: &70170488565600 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *70170488565600
37
48
  - !ruby/object:Gem::Dependency
38
49
  name: mocha
39
- requirement: &70316779272700 !ruby/object:Gem::Requirement
50
+ requirement: &70170488565040 !ruby/object:Gem::Requirement
40
51
  none: false
41
52
  requirements:
42
53
  - - ~>
@@ -44,10 +55,10 @@ dependencies:
44
55
  version: 0.9.9
45
56
  type: :development
46
57
  prerelease: false
47
- version_requirements: *70316779272700
58
+ version_requirements: *70170488565040
48
59
  - !ruby/object:Gem::Dependency
49
60
  name: rake
50
- requirement: &70316779272240 !ruby/object:Gem::Requirement
61
+ requirement: &70170488564520 !ruby/object:Gem::Requirement
51
62
  none: false
52
63
  requirements:
53
64
  - - ~>
@@ -55,7 +66,7 @@ dependencies:
55
66
  version: 0.9.2
56
67
  type: :development
57
68
  prerelease: false
58
- version_requirements: *70316779272240
69
+ version_requirements: *70170488564520
59
70
  description: ! "This is a fork of Zach Holman's amazing boom. Explanation for\n the
60
71
  fork follows Zach's intro to boom:\n\n God it's about every day where I think to
61
72
  myself, gadzooks,\n I keep typing *REPETITIVE_BORING_TASK* over and over. Wouldn't
@@ -101,7 +112,6 @@ files:
101
112
  - completion/boom.zsh
102
113
  - kaboom.gemspec
103
114
  - lib/kaboom.rb
104
- - lib/kaboom/.command.rb.swo
105
115
  - lib/kaboom/color.rb
106
116
  - lib/kaboom/command.rb
107
117
  - lib/kaboom/config.rb
@@ -110,6 +120,10 @@ files:
110
120
  - lib/kaboom/list.rb
111
121
  - lib/kaboom/output.rb
112
122
  - lib/kaboom/platform.rb
123
+ - lib/kaboom/platform/base.rb
124
+ - lib/kaboom/platform/darwin.rb
125
+ - lib/kaboom/platform/linux.rb
126
+ - lib/kaboom/platform/windows.rb
113
127
  - lib/kaboom/remote.rb
114
128
  - lib/kaboom/storage.rb
115
129
  - lib/kaboom/storage/base.rb
@@ -143,9 +157,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
157
  - - ! '>='
144
158
  - !ruby/object:Gem::Version
145
159
  version: '0'
146
- segments:
147
- - 0
148
- hash: -4015829161079492455
149
160
  required_rubygems_version: !ruby/object:Gem::Requirement
150
161
  none: false
151
162
  requirements:
@@ -166,3 +177,4 @@ test_files:
166
177
  - test/test_list.rb
167
178
  - test/test_platform.rb
168
179
  - test/test_remote.rb
180
+ has_rdoc:
Binary file