kaboom 0.3.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.
- data/CHANGELOG.markdown +107 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +24 -0
- data/LICENSE.markdown +21 -0
- data/README.markdown +74 -0
- data/Rakefile +150 -0
- data/bin/boom +8 -0
- data/bin/kaboom +8 -0
- data/completion/README.md +7 -0
- data/completion/boom.bash +17 -0
- data/completion/boom.zsh +29 -0
- data/kaboom.gemspec +117 -0
- data/lib/kaboom.rb +59 -0
- data/lib/kaboom/color.rb +52 -0
- data/lib/kaboom/command.rb +389 -0
- data/lib/kaboom/config.rb +116 -0
- data/lib/kaboom/core_ext/symbol.rb +7 -0
- data/lib/kaboom/item.rb +72 -0
- data/lib/kaboom/list.rb +100 -0
- data/lib/kaboom/output.rb +13 -0
- data/lib/kaboom/platform.rb +103 -0
- data/lib/kaboom/remote.rb +47 -0
- data/lib/kaboom/storage.rb +22 -0
- data/lib/kaboom/storage/base.rb +91 -0
- data/lib/kaboom/storage/gist.rb +125 -0
- data/lib/kaboom/storage/json.rb +76 -0
- data/lib/kaboom/storage/keychain.rb +135 -0
- data/lib/kaboom/storage/mongodb.rb +96 -0
- data/lib/kaboom/storage/redis.rb +79 -0
- data/test/examples/config_json.json +3 -0
- data/test/examples/test_json.json +3 -0
- data/test/examples/urls.json +1 -0
- data/test/helper.rb +25 -0
- data/test/output_interceptor.rb +28 -0
- data/test/test_color.rb +30 -0
- data/test/test_command.rb +227 -0
- data/test/test_config.rb +27 -0
- data/test/test_item.rb +54 -0
- data/test/test_list.rb +79 -0
- data/test/test_platform.rb +52 -0
- data/test/test_remote.rb +30 -0
- metadata +151 -0
data/test/test_config.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require 'helper'
|
4
|
+
require 'output_interceptor'
|
5
|
+
|
6
|
+
class TestConfig < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def setup
|
9
|
+
Boom::Config.any_instance.stubs(:file).
|
10
|
+
returns("test/examples/test_json.json")
|
11
|
+
|
12
|
+
@config = Boom::Config.new
|
13
|
+
@config.stubs(:save).returns(true)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_bootstraps_config
|
17
|
+
@config.bootstrap
|
18
|
+
assert_equal ({:backend => 'json'}), @config.attributes
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_attributes
|
22
|
+
@config.attributes[:wu_tang] = 'clan'
|
23
|
+
assert_equal 'clan', @config.attributes[:wu_tang]
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
end
|
data/test/test_item.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require 'helper'
|
4
|
+
|
5
|
+
class TestItem < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@item = Boom::Item.new('github','https://github.com')
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_name
|
12
|
+
assert_equal 'github', @item.name
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_value
|
16
|
+
assert_equal 'https://github.com', @item.value
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_short_name
|
20
|
+
assert_equal 'github', @item.short_name
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_short_name
|
24
|
+
@item.name = 'github github github lol lol lol'
|
25
|
+
assert_equal 'github github g…', @item.short_name
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_spacer_none
|
29
|
+
@item.name = 'github github github lol lol lol'
|
30
|
+
assert_equal '', @item.spacer
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_spacer_tons
|
34
|
+
assert_equal ' ', @item.spacer
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_to_hash
|
38
|
+
assert_equal 1, @item.to_hash.size
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_url
|
42
|
+
assert_equal 'https://github.com', @item.url
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_url_with_additional_description
|
46
|
+
@item = Boom::Item.new('github', 'social coding https://github.com')
|
47
|
+
assert_equal 'https://github.com', @item.url
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_url_without_url
|
51
|
+
@item = Boom::Item.new('didum', 'dadam lol omg')
|
52
|
+
assert_equal 'dadam lol omg', @item.url
|
53
|
+
end
|
54
|
+
end
|
data/test/test_list.rb
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require 'helper'
|
4
|
+
|
5
|
+
class TestList < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@list = Boom::List.new('urls')
|
9
|
+
@item = Boom::Item.new('github','https://github.com')
|
10
|
+
boom_json :urls
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_name
|
14
|
+
assert_equal 'urls', @list.name
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_add_items
|
18
|
+
assert_equal 0, @list.items.size
|
19
|
+
@list.add_item(@item)
|
20
|
+
assert_equal 1, @list.items.size
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_add_item_with_duplicate_name
|
24
|
+
@list.add_item(@item)
|
25
|
+
assert_equal 1, @list.items.size
|
26
|
+
assert_equal 'https://github.com', @list.find_item('github').value
|
27
|
+
@diff_item = Boom::Item.new('github', 'https://github.com/home')
|
28
|
+
@list.add_item(@diff_item)
|
29
|
+
assert_equal 1, @list.items.size
|
30
|
+
assert_equal 'https://github.com/home', @list.find_item('github').value
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_to_hash
|
34
|
+
assert_equal 0, @list.to_hash[@list.name].size
|
35
|
+
@list.add_item(@item)
|
36
|
+
assert_equal 1, @list.to_hash[@list.name].size
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_find
|
40
|
+
assert_equal 'urls', Boom::List.find('urls').name
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_find_item
|
44
|
+
@list.add_item(@item)
|
45
|
+
assert_equal 'https://github.com', @list.find_item('github').value
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_find_item_long_name
|
49
|
+
@item = Boom::Item.new('long-long-long-name','longname')
|
50
|
+
@list.add_item(@item)
|
51
|
+
assert_equal 'longname', @list.find_item('long-long-long-').value
|
52
|
+
assert_equal 'longname', @list.find_item('long-long-long-…').value
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_delete_success
|
56
|
+
assert_equal 1, Boom.storage.lists.size
|
57
|
+
assert Boom::List.delete('urls')
|
58
|
+
assert_equal 0, Boom.storage.lists.size
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_delete_fail
|
62
|
+
assert_equal 1, Boom.storage.lists.size
|
63
|
+
assert !Boom::List.delete('robocop')
|
64
|
+
assert_equal 1, Boom.storage.lists.size
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_deletes_scoped_to_list
|
68
|
+
@list.add_item(@item)
|
69
|
+
|
70
|
+
@list_2 = Boom::List.new('sexy-companies')
|
71
|
+
@item_2 = Boom::Item.new(@item.name, @item.value)
|
72
|
+
@list_2.add_item(@item_2)
|
73
|
+
|
74
|
+
@list.delete_item(@item.name)
|
75
|
+
assert_equal 0, @list.items.size
|
76
|
+
assert_equal 1, @list_2.items.size
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestPlatform < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_darwin
|
10
|
+
assert_equal Boom::Platform.darwin?, RUBY_PLATFORM.include?('darwin')
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_windows
|
14
|
+
assert_equal Boom::Platform.windows?, true if RUBY_PLATFORM =~ /mswin|mingw/
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_open_command_darwin
|
18
|
+
Boom::Platform.stubs(:darwin?).returns(true)
|
19
|
+
assert_equal Boom::Platform.open_command, 'open'
|
20
|
+
end
|
21
|
+
|
22
|
+
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'
|
26
|
+
end
|
27
|
+
|
28
|
+
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'
|
32
|
+
end
|
33
|
+
|
34
|
+
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'
|
38
|
+
end
|
39
|
+
|
40
|
+
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'
|
44
|
+
end
|
45
|
+
|
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'
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
data/test/test_remote.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require 'helper'
|
4
|
+
require 'output_interceptor'
|
5
|
+
|
6
|
+
class TestRemote < Test::Unit::TestCase
|
7
|
+
def dummy type
|
8
|
+
m = stub 'storage_type', :class => type
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_remote
|
12
|
+
Boom.use_remote false
|
13
|
+
Boom::Output.capture_output
|
14
|
+
|
15
|
+
local = [Boom::Storage::Json, Boom::Storage::Keychain ]
|
16
|
+
|
17
|
+
|
18
|
+
remote = [Boom::Storage::Gist, Boom::Storage::Mongodb, Boom::Storage::Redis]
|
19
|
+
|
20
|
+
(local + remote).all? do |type|
|
21
|
+
assert Boom::Remote.allowed? dummy(type)
|
22
|
+
end
|
23
|
+
|
24
|
+
Boom.use_remote true
|
25
|
+
|
26
|
+
Boom::Remote.stubs(:output)
|
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"}
|
29
|
+
end
|
30
|
+
end
|
metadata
ADDED
@@ -0,0 +1,151 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: kaboom
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Zach Holman
|
9
|
+
- Mark Burns
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2012-03-17 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: multi_json
|
17
|
+
requirement: &70094413093860 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ~>
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.0.3
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *70094413093860
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: json_pure
|
28
|
+
requirement: &70094413093400 !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.5.3
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *70094413093400
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: mocha
|
39
|
+
requirement: &70094413092800 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 0.9.9
|
45
|
+
type: :development
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *70094413092800
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rake
|
50
|
+
requirement: &70094413092140 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 0.9.2
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *70094413092140
|
59
|
+
description: ! "God it's about every day where I think to myself, gadzooks,\n I keep
|
60
|
+
typing *REPETITIVE_BORING_TASK* over and over. Wouldn't it be great if\n I had
|
61
|
+
something like boom to store all these commonly-used text snippets for\n me? Then
|
62
|
+
I realized that was a worthless idea since boom hadn't been created\n yet and I
|
63
|
+
had no idea what that statement meant. At some point I found the\n code for boom
|
64
|
+
in a dark alleyway and released it under my own name because I\n wanted to look
|
65
|
+
smart."
|
66
|
+
email: markthedeveloper@gmail.com
|
67
|
+
executables:
|
68
|
+
- boom
|
69
|
+
- kaboom
|
70
|
+
extensions: []
|
71
|
+
extra_rdoc_files:
|
72
|
+
- README.markdown
|
73
|
+
- LICENSE.markdown
|
74
|
+
files:
|
75
|
+
- CHANGELOG.markdown
|
76
|
+
- Gemfile
|
77
|
+
- Gemfile.lock
|
78
|
+
- LICENSE.markdown
|
79
|
+
- README.markdown
|
80
|
+
- Rakefile
|
81
|
+
- bin/boom
|
82
|
+
- bin/kaboom
|
83
|
+
- completion/README.md
|
84
|
+
- completion/boom.bash
|
85
|
+
- completion/boom.zsh
|
86
|
+
- kaboom.gemspec
|
87
|
+
- lib/kaboom.rb
|
88
|
+
- lib/kaboom/color.rb
|
89
|
+
- lib/kaboom/command.rb
|
90
|
+
- lib/kaboom/config.rb
|
91
|
+
- lib/kaboom/core_ext/symbol.rb
|
92
|
+
- lib/kaboom/item.rb
|
93
|
+
- lib/kaboom/list.rb
|
94
|
+
- lib/kaboom/output.rb
|
95
|
+
- lib/kaboom/platform.rb
|
96
|
+
- lib/kaboom/remote.rb
|
97
|
+
- lib/kaboom/storage.rb
|
98
|
+
- lib/kaboom/storage/base.rb
|
99
|
+
- lib/kaboom/storage/gist.rb
|
100
|
+
- lib/kaboom/storage/json.rb
|
101
|
+
- lib/kaboom/storage/keychain.rb
|
102
|
+
- lib/kaboom/storage/mongodb.rb
|
103
|
+
- lib/kaboom/storage/redis.rb
|
104
|
+
- test/examples/config_json.json
|
105
|
+
- test/examples/test_json.json
|
106
|
+
- test/examples/urls.json
|
107
|
+
- test/helper.rb
|
108
|
+
- test/output_interceptor.rb
|
109
|
+
- test/test_color.rb
|
110
|
+
- test/test_command.rb
|
111
|
+
- test/test_config.rb
|
112
|
+
- test/test_item.rb
|
113
|
+
- test/test_list.rb
|
114
|
+
- test/test_platform.rb
|
115
|
+
- test/test_remote.rb
|
116
|
+
homepage: https://github.com/markburns/kaboom
|
117
|
+
licenses: []
|
118
|
+
post_install_message:
|
119
|
+
rdoc_options:
|
120
|
+
- --charset=UTF-8
|
121
|
+
require_paths:
|
122
|
+
- lib
|
123
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
124
|
+
none: false
|
125
|
+
requirements:
|
126
|
+
- - ! '>='
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
segments:
|
130
|
+
- 0
|
131
|
+
hash: 3545507400932762145
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
none: false
|
134
|
+
requirements:
|
135
|
+
- - ! '>='
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
requirements: []
|
139
|
+
rubyforge_project: boom
|
140
|
+
rubygems_version: 1.8.17
|
141
|
+
signing_key:
|
142
|
+
specification_version: 2
|
143
|
+
summary: boom lets you access text snippets over your command line.
|
144
|
+
test_files:
|
145
|
+
- test/test_color.rb
|
146
|
+
- test/test_command.rb
|
147
|
+
- test/test_config.rb
|
148
|
+
- test/test_item.rb
|
149
|
+
- test/test_list.rb
|
150
|
+
- test/test_platform.rb
|
151
|
+
- test/test_remote.rb
|