shades 0.16 → 0.17

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MzlmYmQ3MTc0MTQ5NWM3MjNlMDBhNzU5MGIzMDM2ODk4NmQ0OTcyOQ==
5
- data.tar.gz: !binary |-
6
- OWM3ZjJjNDE5NzI4OGU0MWM3NmRhNzAzOWI5NGVjMmNjYTQ3ZmEwOQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- MGVkM2YxOWEwNzgyMWM2NzBlNTViOGY0ZjQ5YjEyMDg2OTY2ZWI0YmFjNWI3
10
- YTNiOTM2OGI1YjllNmQ3YzM0NjM4ZTA0NDIzYjQzOGI3NDU2ZDQzODdmOWI3
11
- M2IwMjUxMzJkNmRjODkzMjFmZTk5ODRmNWUwZTYyNzVjNzFmNjA=
12
- data.tar.gz: !binary |-
13
- ZTc0YzY2NzA1MDgzZGFkNGVhNTY4Njc0ODBmYjY3MzczOTQzN2RhZTdlNjJj
14
- ZTZhMDZlMmZjMWNlYTJiZWQ4ODY4YjczYjFmZTUwOGM2NmIzZjBmNWI4ZDQw
15
- NjI0NmZhMGM1OGI1Nzg4ZDIyZjUyZTIwNTI2YmViY2Q0YjllY2M=
2
+ SHA1:
3
+ metadata.gz: d9d8ca3bf32d96256209ac2fe7db83c8e8923eda
4
+ data.tar.gz: feda5c6eb9ce7ae997f312eb6a70d56552666493
5
+ SHA512:
6
+ metadata.gz: 95281754e804b285e319e855f3682267cf3b489d2676d99123dfc5d40dc35cef1d94acecea1fa23f2ac8131cc671615ce6c89d8985581313f09d1121e6e65628
7
+ data.tar.gz: d547693e74ed71eb5b36f076bc343c00b71bc6b370102336586013b525ffcde3b01841f97bd6bf66569cdfd235f07e11819179b73890a263a3ad6ff33eabead8
data/bin/shades CHANGED
@@ -4,7 +4,9 @@ $: << File.realpath(File.dirname(__FILE__) + "/../lib")
4
4
  require 'getoptlong'
5
5
  require 'shades'
6
6
 
7
- def main(parseable_output, q)
7
+ require 'json'
8
+
9
+ def main(parseable_output, json_output, q)
8
10
 
9
11
  events_in = []
10
12
  p = Shades::StreamParser.new do |e|
@@ -16,21 +18,29 @@ def main(parseable_output, q)
16
18
  end
17
19
 
18
20
  events_out = q.run(events_in)
19
- fmt = Shades::Formatter.new(" ")
20
- if parseable_output
21
- fmt.text($stdout, events_out)
21
+
22
+ if json_output
23
+ puts events_out.map { |e| e.to_map }.to_json
22
24
  else
23
- fmt.pretty_text($stdout, events_out)
25
+ fmt = Shades::Formatter.new(" ")
26
+ if parseable_output
27
+ fmt.text($stdout, events_out)
28
+ else
29
+ fmt.pretty_text($stdout, events_out)
30
+ end
24
31
  end
25
32
  end
26
33
 
27
34
  opt_parser = GetoptLong.new
28
35
  opt_parser.set_options(
29
36
  # create output that can itself be used as input to this program
30
- ["-p", "--parseable", GetoptLong::NO_ARGUMENT]
37
+ ["-p", "--parseable", GetoptLong::NO_ARGUMENT],
38
+ # json output
39
+ ["-j", "--json", GetoptLong::NO_ARGUMENT],
31
40
  )
32
41
 
33
42
  parseable_output = false
43
+ json_output = false
34
44
 
35
45
  begin
36
46
  begin
@@ -39,12 +49,14 @@ begin
39
49
  case opt
40
50
  when "-p" || "--parseable"
41
51
  parseable_output = true
52
+ when "-j" || "--json"
53
+ json_output = true
42
54
  end
43
55
  rescue => err
44
- $stderr.puts err.message
56
+ $stderr.puts err.message
45
57
  end
46
58
  end while 1
47
59
 
48
60
  qs = ARGV[-1]
49
61
  q = Shades::QueryParser::parse(qs)
50
- main(parseable_output, q)
62
+ main(parseable_output, json_output, q)
@@ -233,6 +233,25 @@ module Shades
233
233
  f << measures.map { |k| '%.5f' % measure(k) }
234
234
  f.join("\t")
235
235
  end
236
+
237
+ def dimension_map
238
+ @dvalues
239
+ end
240
+
241
+ def measure_map
242
+ mm = {}
243
+ measures.each do |k, v|
244
+ mm[k] = measure(k)
245
+ end
246
+ mm
247
+ end
248
+
249
+ def to_map
250
+ {
251
+ :dimensions => @dvalues,
252
+ :measures => measure_map
253
+ }
254
+ end
236
255
  end
237
256
 
238
257
  end
@@ -11,7 +11,7 @@ module Shades
11
11
  def <<(line)
12
12
  line.strip!
13
13
  if !@metadata.nil?
14
- event = @metadata.parse_event(line, /\s+/)
14
+ event = @metadata.parse_event(line, /\t/)
15
15
  if event.nil?
16
16
  puts line
17
17
  else
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'shades'
3
- s.version = '0.16'
3
+ s.version = '0.17'
4
4
 
5
5
  s.summary = "Get a new perspective on your data. In-memory data cubing of event data for Ruby."
6
6
  s.description = <<-EOF
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shades
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.16'
4
+ version: '0.17'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dietrich Featherston
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-26 00:00:00.000000000 Z
11
+ date: 2013-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop
@@ -28,48 +28,46 @@ dependencies:
28
28
  name: rake-compiler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rdoc
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- description: ! ' Shades computes data cubes for you from events composed of dimensions
70
- and measures.
71
-
72
- '
69
+ description: |2
70
+ Shades computes data cubes for you from events composed of dimensions and measures.
73
71
  email: d@d2fn.com
74
72
  executables:
75
73
  - shades
@@ -126,17 +124,17 @@ require_paths:
126
124
  - lib
127
125
  required_ruby_version: !ruby/object:Gem::Requirement
128
126
  requirements:
129
- - - ! '>='
127
+ - - '>='
130
128
  - !ruby/object:Gem::Version
131
129
  version: '0'
132
130
  required_rubygems_version: !ruby/object:Gem::Requirement
133
131
  requirements:
134
- - - ! '>='
132
+ - - '>='
135
133
  - !ruby/object:Gem::Version
136
134
  version: '0'
137
135
  requirements: []
138
136
  rubyforge_project: shades
139
- rubygems_version: 2.0.7
137
+ rubygems_version: 2.0.3
140
138
  signing_key:
141
139
  specification_version: 4
142
140
  summary: Get a new perspective on your data. In-memory data cubing of event data for