Permalink
Browse files

removed special purpose parsers

  • Loading branch information...
1 parent 423ffb6 commit 3e719ac8db71374609741e6b0da4d962f119e189 @tobi committed Dec 5, 2009
View
@@ -1,3 +1,166 @@
+.git/COMMIT_EDITMSG
+.git/FETCH_HEAD
+.git/HEAD
+.git/ORIG_HEAD
+.git/config
+.git/description
+.git/hooks/applypatch-msg.sample
+.git/hooks/commit-msg.sample
+.git/hooks/post-commit.sample
+.git/hooks/post-receive.sample
+.git/hooks/post-update.sample
+.git/hooks/pre-applypatch.sample
+.git/hooks/pre-commit.sample
+.git/hooks/pre-rebase.sample
+.git/hooks/prepare-commit-msg.sample
+.git/hooks/update.sample
+.git/index
+.git/info/exclude
+.git/logs/HEAD
+.git/logs/refs/heads/master
+.git/logs/refs/remotes/origin/3cb1cb92dc196b1d84a30ed12b906ad8a141aa27
+.git/logs/refs/remotes/origin/HEAD
+.git/logs/refs/remotes/origin/master
+.git/objects/07/4ad9286bf025d13ad17edd8aea7be5769ee3d2
+.git/objects/07/65dda8fe36c1682faf012e53cebd968de49557
+.git/objects/0a/4bc0f77dd330e9e965870c14cc949a7832fd0b
+.git/objects/0a/e16403b3e558d00643f004ec09f334d4f2b0f0
+.git/objects/0c/7d21bfe13e3153ea2f9b87a235289a0ba2fa0b
+.git/objects/0d/4f5bfd4ea3b56fb4487c22cbbd33c8917a480d
+.git/objects/0e/54c258158ebcefe13043200190acf2581a2736
+.git/objects/11/4e1e4ed075af2fabedf142999fafa55069d2b8
+.git/objects/12/c08dbcb6e9d747af2c9ab4d1b534fc65543a04
+.git/objects/13/d34b561193da18ea9e4c23baa2889925b136c2
+.git/objects/14/7cadaa8ea2f5b519d51d463a054506d3fa2daa
+.git/objects/15/aa7cb94cc034e1d40bd8e6dfb18a43fb71e963
+.git/objects/17/b3f58e34f8d603979c6203195ffa7077ddb6b4
+.git/objects/18/5140bb62cf8865eed0b4190ac56f268eb61659
+.git/objects/20/a9a41229d300bb02702e37542c485d562283fc
+.git/objects/24/81a1ea86da7690b6933b6c3e43df199ae2759f
+.git/objects/29/04ad9c76d02d613025cda698a01909aae481c3
+.git/objects/2a/0da5f3347d89b15f4595d1d86e36edd985b37e
+.git/objects/2a/6f9d3ffa2c1bde690a5f83ff1256aed1df51e5
+.git/objects/2b/4f1b1c8f1e8f29808e84c1253489f9cc6e9b23
+.git/objects/2c/28a140a83b8d90561dcb1eff7c0740cc5c466a
+.git/objects/2c/3ad655c9f5788144375877d35e2012c178e1f9
+.git/objects/2c/9b2f15de27a959f323b8025d47a7d54023745a
+.git/objects/2e/a4ac462fd5b94ca2d6d4dab553d53a161b8aa6
+.git/objects/2e/a55bebb429dece7e143a061118386eac9f2ecc
+.git/objects/2e/ef97fd572854ca599c5a429f849819ae001205
+.git/objects/2e/f56d503616c21a1f8e0e7d4f8dc9daec731d3f
+.git/objects/2f/2da91b54af9c05d7411ecc1c39c1617f1f4043
+.git/objects/31/ac1c15950e868882cbc83631bcbd43d54d49fe
+.git/objects/34/7df9d1dcf91b5d8095d3536a54e4b5aa6d8206
+.git/objects/34/cb8b80da1461d7a023e0c1cca2c488b6a1e1fc
+.git/objects/38/85d79b0ab9bc36154c6bb195ad5f58e7c49558
+.git/objects/39/93882cbe4e210056dce9bbe1b4f2d23d89fb8f
+.git/objects/3c/b1cb92dc196b1d84a30ed12b906ad8a141aa27
+.git/objects/3c/e0e0c0bdce32b290a617d4bf1707a9828fbafa
+.git/objects/3d/67e7591e2a97edc5e1f32838e7bcf4c0abb7b1
+.git/objects/3d/72a06cf4d4a8f8da488a816c61b5a3af89c1f7
+.git/objects/3f/7f20971498dc181ee1df392377962dd9cb0ac3
+.git/objects/41/6c66f50cea775311f912b1a1627491b6c4ad22
+.git/objects/42/3ffb6b46440d04d967a8ff5b6f76dd33ee005c
+.git/objects/48/bba832ddd367502dec4976ad7ad91f3b7e2212
+.git/objects/4a/82ff9fe6083109ff92ade4dde75244aed4333e
+.git/objects/4c/456a3a867cc6e6589058e9a04d5e8f7f138d0e
+.git/objects/4d/691f17377f16d09f6f647274c2e97a055ee01c
+.git/objects/4e/5c1d2b701a90cc9fa3f889c276091235330b58
+.git/objects/4e/c6a0b2d721a91d44dc5064180c6c9e9381e026
+.git/objects/51/bf54fff55b5435bec597ec2c53c60331791f2d
+.git/objects/53/ee2ca9294cba5b5feca8341c1686d8bea78320
+.git/objects/55/60c2a365673e857e6cfe2ea60e27e7e8a00a9b
+.git/objects/55/9c5567b25ddf52539d7cd4d174499fe1245fc0
+.git/objects/58/a368e2cd949ddecd48530e717972f57d3e4cc4
+.git/objects/5a/50ef9acf9c6d4b4ef28c85d92176c1fb673bbc
+.git/objects/5b/0a2a4e9b7b8ebb961458fdedbb7fa84169844f
+.git/objects/5c/01ef5c66079b28914a4c66c91f54d60d9e64f2
+.git/objects/5c/4f9e74658278d187438bcdf769d3f47f306aab
+.git/objects/5f/d4e817894d4c569bd9239fb51cb7c6b3fdb39a
+.git/objects/60/e6f791b425216498078f47fa73a1251674621d
+.git/objects/61/8473d9ea31f9438c290439942dd66c0426519b
+.git/objects/68/4563cb73016860c490c8417611ba30389b6a3b
+.git/objects/68/80b0fe88669a8b674a51e942e081c456a87198
+.git/objects/69/cfadbf94e845e48bfc06ec546cc66f9774eff4
+.git/objects/6a/afe1103b308a08e138124dd3dc2ba8f6229aae
+.git/objects/6b/835c3b509b946073f9982f3deaed02ebd886c9
+.git/objects/6b/a9b4990a48d5630b250e1fa755a40bbe694786
+.git/objects/6c/76612a21bfa3c36dcbb460f6d833a7c2eefeae
+.git/objects/6f/9fdeb5aeededced2757f6371ae99fd94c8f77f
+.git/objects/6f/a67dd445c01358acb9e4f65ed968a04df9aeaf
+.git/objects/72/348477a1ef597f318f3481a4021b9c27c93e1f
+.git/objects/73/d40d19d6071e1ce12b2d26cdecd6ff549f073b
+.git/objects/7e/1ed59b838c799fa0eed6ad9083073343ee059f
+.git/objects/81/157b2b72e484bae81bcf73a2f878a2d27880ad
+.git/objects/81/51694f42a34ffeabf9bebaa7ef6f0dc85666e9
+.git/objects/83/916674da84c7ce8004b988f6350627222a5188
+.git/objects/84/38f02d5de1976393324974df9388fbd058fae6
+.git/objects/84/ef9646dedffdc087a762a5c0131169a6da7782
+.git/objects/89/35f726967181bf0a8dd776a8a643587d225491
+.git/objects/89/478d30f5c28c6a505f27a5ba0846e04aef4196
+.git/objects/93/a0697eeb2ebf39059ea24a3f94d6896b0a738e
+.git/objects/94/678932f192e77d163cd5bd266b9b61ecb9c861
+.git/objects/94/8081d177ae3347417a8911eae102f5d453eea0
+.git/objects/9b/de48b25488be00d53a43532889000a8365282b
+.git/objects/9c/6f69bc97cc79cb67e7e0add68bf5254ca2d5dd
+.git/objects/a0/c2867973e30144d87a4db070e1506f276f3444
+.git/objects/a2/07534d0f0c5beda7083625511d7b56fee6829a
+.git/objects/a2/11c0e1940ca42be847bd8d7290bfac3ccfc56e
+.git/objects/a2/2216df476f02a02f9a14f3223881aac7ec2872
+.git/objects/a7/133cc1d3322916e46ab250caf9099d9efd5f80
+.git/objects/a7/791b9f50d912ca3c9ce89cb296da728134628c
+.git/objects/a7/ca11e69527d8e1da9e05ebab6c608cb39b393a
+.git/objects/a8/66e5d4899ea9c3d32153973cc465da02b1f243
+.git/objects/ad/0c16d4a7719f6e48314dbade450045b264167d
+.git/objects/ad/351604df4f1f31f07d4170586b7922aa9f2d10
+.git/objects/b0/776436425c2cf187e6c9844de8189eb70e554a
+.git/objects/b1/49b4df1712e6229aee72cb9de018559a341beb
+.git/objects/b1/d5450f60f1796ae76eee9bb0fc5c1a6a133c9d
+.git/objects/b7/69625e57eb1a1bad591f602fc874af1517febf
+.git/objects/ba/704288262ee61481194174c794166017741c61
+.git/objects/be/137935629e8b37e9a73b9b6136e2a7c0f1ac58
+.git/objects/c2/7f6559350f7adb19d43742b55b2f91d07b6550
+.git/objects/c4/5932ad2a3a52ea8ef5e63ff46da5a59220fe18
+.git/objects/c7/15d3c368c22eba9f6b891cdb48ca02d9aacc9a
+.git/objects/c7/de5d21e9407ab6e9459c1326e39658cae6140e
+.git/objects/c8/90d7cd6c7448589ca4e8a0a53ecbada48d2044
+.git/objects/cc/282828b1e3fe43aa3d267f9e0d442a1278899e
+.git/objects/cd/7ccf92f1c2dd5232f70fa5a03ad8eefb223e38
+.git/objects/ce/867f952877cb329a54bc7b66f305eaf6884424
+.git/objects/d4/5ac4d0c9af69f25101640eff55bdd004dca4e9
+.git/objects/d5/9ae3d4e2fc4deaae1db71baec0a98fe894052d
+.git/objects/d5/d4da8e6786edbe86f91c0390f4d1920078c158
+.git/objects/d7/0eea2289e5bfacbc9db3ad2b4a23dce63f79e1
+.git/objects/d7/3b40b8ebdab06b9f60512a62df1ba5f3fdd425
+.git/objects/dd/a75ffe0c5c9c3364cb8d134a6738123f482915
+.git/objects/dd/ea3d1c4b9bc66b7bbc7c51c554e19255947d49
+.git/objects/df/ab5c8ffc5cc101f7c3036546104056db1ca1c4
+.git/objects/e4/3a656d4a10c7dd3c8d77898498449d6cc9b7e0
+.git/objects/e4/8464df56bf487e96e21ea99487330266dae3c9
+.git/objects/e5/49cee6229b3c814e7b233643d3782b79753f0f
+.git/objects/e9/1bcad800b028bc40c2cd16be9b55502ee8e6d2
+.git/objects/eb/9115feea5440e5b136101bc0fb290bcb3dc49d
+.git/objects/eb/d5bc1ecc6cc18965389d5ebefbc26b595da74f
+.git/objects/ed/d53826c5e7577e1652c85b8e3070fceb082403
+.git/objects/ed/f64bfb7c6bd5bc7c4489d6a31ce355a6ea4f60
+.git/objects/f2/67bbe23158bb97a8517c5d48fd24da0990410c
+.git/objects/f4/15af7e70bbed51b80762bd47df0c61d5e530f1
+.git/objects/f4/b1c2867b0b2bc52e840b76c2fd61fbecb6eb7d
+.git/objects/f4/fc8a5d1a701fe94d046cc41211072854b43ce7
+.git/objects/f5/156ee67d016e6f651700709ebc98c8995aa053
+.git/objects/f8/07539c823f11983c75a95a5e6e06af415294ce
+.git/objects/fa/ad3148b489acce84e91935c850c82fb2c42bc3
+.git/objects/fb/ee2d18d87c0cc3f63686590321e673520582af
+.git/objects/fd/2f2e4a65619a31da8d577e5d07f6c2fe4de377
+.git/objects/fd/da047db28fca2a3ccd6dd508e080379f6195d0
+.git/objects/pack/pack-624e8a418388f1f608033bc75af8982ce8e09c4d.idx
+.git/objects/pack/pack-624e8a418388f1f608033bc75af8982ce8e09c4d.pack
+.git/packed-refs
+.git/refs/heads/master
+.git/refs/remotes/origin/3cb1cb92dc196b1d84a30ed12b906ad8a141aa27
+.git/refs/remotes/origin/HEAD
+.git/refs/remotes/origin/master
+.gitignore
History.txt
Manifest.txt
PostInstall.txt
@@ -7,7 +170,7 @@ bin/clarity
config/config.yml.sample
lib/clarity.rb
lib/clarity/cli.rb
-lib/clarity/commands/command_builder.rb
+lib/clarity/commands/grep_command_builder.rb
lib/clarity/commands/tail_command_builder.rb
lib/clarity/grep_renderer.rb
lib/clarity/process_tree.rb
@@ -22,12 +185,9 @@ public/stylesheets/app.css
script/console
script/destroy
script/generate
-test/commands/command_builder_test.rb
+test/commands/grep_command_builder_test.rb
test/commands/tail_command_builder_test.rb
test/files/logfile.log
-test/parsers/hostname_parser_test.rb
-test/parsers/shop_parser_test.rb
-test/parsers/time_parser_test.rb
test/test_helper.rb
test/test_string_scanner.rb
views/_header.html.erb
View
@@ -13,8 +13,8 @@ $hoe = Hoe.spec 'clarity' do
self.developer 'Tobias Lütke', 'tobi@shopify.com'
self.developer 'John Tajima', 'john@shopify.com'
self.post_install_message = 'PostInstall.txt'
- self.extra_deps = [['eventmachine','>= 0.12.10'], ['eventmachine_httpserver','>= 0.2.0']]
- self.test_globs = ['test/**/*_test.rb']
+ self.extra_deps = [['eventmachine','>= 0.12.10'], ['eventmachine_httpserver','>= 0.2.0'], ["json", ">= 1.0.0"]]
+ self.test_globs = ['test/**/*_test.rb']
end
require 'newgem/tasks'
View
@@ -2,14 +2,12 @@
require 'eventmachine'
require 'evma_httpserver'
+require 'json'
require 'yaml'
require 'base64'
require 'clarity/server'
-require 'clarity/commands/command_builder'
+require 'clarity/commands/grep_command_builder'
require 'clarity/commands/tail_command_builder'
-require 'clarity/parsers/time_parser'
-require 'clarity/parsers/hostname_parser'
-require 'clarity/parsers/shop_parser'
require 'clarity/renderers/log_renderer'
module Clarity
@@ -1,4 +1,4 @@
-class CommandBuilder
+class GrepCommandBuilder
# parameter names
TermParameters = ['term1', 'term2', 'term3']
@@ -1,7 +1,7 @@
#
# Handles tailing of log files
#
-class TailCommandBuilder < CommandBuilder
+class TailCommandBuilder < GrepCommandBuilder
def valid?
raise InvalidParameterError, "Log file parameter not supplied or invalid log file" unless filename && !filename.empty? && File.extname(filename) == ".log"
@@ -29,7 +29,7 @@ def finalize
private
def html_link(url)
- uri = URI.parse(url)
+ uri = URI.parse(url) rescue url
"<a href='#{uri}'>#{url}</a>"
end
View
@@ -55,7 +55,7 @@ def process_http_request
else
# get command
command = case params['tool']
- when 'grep' then CommandBuilder.new(params).command
+ when 'grep' then GrepCommandBuilder.new(params).command
when 'tail' then TailCommandBuilder.new(params).command
else raise InvalidParameterError, "Invalid Tool parameter"
end
@@ -1,6 +1,6 @@
require 'test_helper'
-class CommandBuilderTest < Test::Unit::TestCase
+class GrepCommandBuilderTest < Test::Unit::TestCase
def setup
@params = {
@@ -10,88 +10,88 @@ def setup
"term2" => nil,
"term3" => nil
}
- @command = CommandBuilder.new(@params)
+ @command = GrepCommandBuilder.new(@params)
end
def test_create_new_builder
- assert @command.is_a?(CommandBuilder)
+ assert @command.is_a?(GrepCommandBuilder)
assert_equal "testfile.log", @command.filename
assert_equal 1, @command.terms.size
end
def test_raises_error_if_no_file
- assert_raises CommandBuilder::InvalidParameterError do
- command = CommandBuilder.new(@params.merge("file" => nil))
+ assert_raises GrepCommandBuilder::InvalidParameterError do
+ command = GrepCommandBuilder.new(@params.merge("file" => nil))
end
end
def test_exec_functions_for_log
- command = CommandBuilder.new(@params)
+ command = GrepCommandBuilder.new(@params)
assert_equal 1, command.exec_functions.size
assert_match(/^grep/, command.exec_functions.first)
end
def test_exec_functions_with_multiple_terms_for_log
- command = CommandBuilder.new(@params.merge("term2" => "bar", "term3" => "baz"))
+ command = GrepCommandBuilder.new(@params.merge("term2" => "bar", "term3" => "baz"))
assert_equal 3, command.exec_functions.size
assert_match(/^grep/, command.exec_functions[0])
assert_match(/^grep/, command.exec_functions[1])
assert_match(/^grep/, command.exec_functions[2])
end
def test_exec_function_with_no_terms_for_log
- command = CommandBuilder.new(@params.merge("term1" => nil))
+ command = GrepCommandBuilder.new(@params.merge("term1" => nil))
assert_equal 1, command.exec_functions.size
assert_match(/^cat/, command.exec_functions[0])
end
def test_exec_funcations_for_gzip
- command = CommandBuilder.new(@params.merge("file" => "testfile.gz"))
+ command = GrepCommandBuilder.new(@params.merge("file" => "testfile.gz"))
assert_equal 1, command.exec_functions.size
assert_match(/^zgrep/, command.exec_functions.first)
end
def test_exec_functions_with_multiple_terms_for_gzip
- command = CommandBuilder.new(@params.merge("file" => "testfile.gz", "term2" => "bar", "term3" => "baz"))
+ command = GrepCommandBuilder.new(@params.merge("file" => "testfile.gz", "term2" => "bar", "term3" => "baz"))
assert_equal 3, command.exec_functions.size
assert_match(/^zgrep/, command.exec_functions[0])
assert_match(/^grep/, command.exec_functions[1])
assert_match(/^grep/, command.exec_functions[2])
end
def test_exec_function_with_no_terms_for_gzip
- command = CommandBuilder.new(@params.merge("file" => "testfile.gz", "term1" => nil))
+ command = GrepCommandBuilder.new(@params.merge("file" => "testfile.gz", "term1" => nil))
assert_equal 1, command.exec_functions.size
assert_match "gzcat", command.exec_functions[0]
end
def test_command_for_log
- command = CommandBuilder.new(@params)
+ command = GrepCommandBuilder.new(@params)
assert_equal "sh -c 'grep -e foo testfile.log'", command.command
end
def test_command_with_no_terms_for_log
- command = CommandBuilder.new(@params.merge("term1" => nil))
+ command = GrepCommandBuilder.new(@params.merge("term1" => nil))
assert_equal "sh -c 'cat testfile.log'", command.command
end
def test_command_with_multiple_terms_for_log
- command = CommandBuilder.new(@params.merge("term2" => "bar", "term3" => "baz"))
+ command = GrepCommandBuilder.new(@params.merge("term2" => "bar", "term3" => "baz"))
assert_equal "sh -c 'grep -e foo testfile.log | grep -e bar | grep -e baz'", command.command
end
def test_command_for_gzip
- command = CommandBuilder.new(@params.merge("file" => "testfile.gz"))
+ command = GrepCommandBuilder.new(@params.merge("file" => "testfile.gz"))
assert_equal "sh -c 'zgrep -e foo testfile.gz'", command.command
end
def test_command_with_no_terms_for_gzip
- command = CommandBuilder.new(@params.merge("file" => "testfile.gz","term1" => nil))
+ command = GrepCommandBuilder.new(@params.merge("file" => "testfile.gz","term1" => nil))
assert_equal "sh -c 'gzcat testfile.gz'", command.command
end
def test_command_with_multiple_terms_for_gzip
- command = CommandBuilder.new(@params.merge("file" => "testfile.gz","term2" => "bar", "term3" => "baz"))
+ command = GrepCommandBuilder.new(@params.merge("file" => "testfile.gz","term2" => "bar", "term3" => "baz"))
assert_equal "sh -c 'zgrep -e foo testfile.gz | grep -e bar | grep -e baz'", command.command
end
@@ -20,7 +20,7 @@ def test_create_new_builder
end
def test_raises_error_if_invalid_file
- assert_raises CommandBuilder::InvalidParameterError do
+ assert_raises GrepCommandBuilder::InvalidParameterError do
command = TailCommandBuilder.new(@params.merge("file" => "testfile.gz"))
end
end
Oops, something went wrong.

0 comments on commit 3e719ac

Please sign in to comment.