-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Ryan Burrows
committed
Jun 30, 2010
1 parent
a3b257b
commit 668473a
Showing
11 changed files
with
214 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
default: --format progress -t ~@wip |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
Feature: jse prints specific fields from the json | ||
|
||
In order to only show relevant information | ||
As a jse user | ||
I want to only output specific json fields | ||
|
||
Background: | ||
Given I have a log file containing: | ||
""" | ||
{"id":1,"level":"INFO","message":"line one"} | ||
{"id":2,"level":"DEBUG","message":"line two"} | ||
{"id":3,"level":"ERROR","message":"number three"} | ||
{"id":4,"level":"INFO","message":"line four"} | ||
""" | ||
|
||
Scenario: Printing one field returns just the value | ||
When I run "jse --fields=message" on my log file | ||
Then I should see: | ||
""" | ||
line one | ||
line two | ||
number three | ||
line four | ||
""" | ||
|
||
Scenario: Printing multiple fields returns JSON | ||
When I run "jse --fields=message,level" on my log file | ||
Then I should see: | ||
""" | ||
{"level":"INFO","message":"line one"} | ||
{"level":"DEBUG","message":"line two"} | ||
{"level":"ERROR","message":"number three"} | ||
{"level":"INFO","message":"line four"} | ||
""" | ||
|
||
Scenario: Fields can be specified with a shorter '-f' flag | ||
When I run "jse -f message,level" on my log file | ||
Then I should see: | ||
""" | ||
{"level":"INFO","message":"line one"} | ||
{"level":"DEBUG","message":"line two"} | ||
{"level":"ERROR","message":"number three"} | ||
{"level":"INFO","message":"line four"} | ||
""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
module JSE | ||
class FieldValueTransform | ||
def initialize(field) | ||
@field = field | ||
end | ||
|
||
def apply(hash) | ||
hash[@field] | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
module JSE | ||
class SubsetTransform | ||
def initialize(*fields) | ||
@fields = fields | ||
end | ||
|
||
def apply(json) | ||
@fields.inject({}) do |result, field| | ||
result[field] = json[field] | ||
result | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
module JSE | ||
class ToJsonTransform | ||
def apply(obj) | ||
obj.to_json | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
require 'spec_helper' | ||
|
||
module JSE | ||
describe SubsetTransform do | ||
describe "#apply" do | ||
it "returns the set of fields as a json object" do | ||
transform = SubsetTransform.new('name', 'value') | ||
json = JSON.parse("{\"name\":\"n\", \"value\":\"v\", \"id\":1}") | ||
transform.apply(json).to_json.should == | ||
"{\"name\":\"n\",\"value\":\"v\"}" | ||
end | ||
end | ||
end | ||
end |