metry 1.2.0 → 2.0.0

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.
Files changed (99) hide show
  1. data/History.txt +6 -0
  2. data/Manifest.txt +14 -69
  3. data/TODO +2 -3
  4. data/cucumber.yml +1 -0
  5. data/example/example.rb +1 -1
  6. data/features/psycho/dashboard.feature +17 -0
  7. data/features/psycho/goals.feature +24 -0
  8. data/features/psycho/visitor_tracking.feature +32 -0
  9. data/features/step_definitions/goals.rb +3 -0
  10. data/features/step_definitions/tracking.rb +1 -1
  11. data/features/step_definitions/web.rb +14 -2
  12. data/features/support/env.rb +4 -0
  13. data/lib/metry.rb +4 -6
  14. data/lib/metry/experiment.rb +6 -8
  15. data/lib/metry/psycho.rb +112 -0
  16. data/lib/metry/psycho/dashboard.erb +14 -0
  17. data/lib/metry/psycho/layout.erb +8 -0
  18. data/lib/metry/psycho/new_goal.erb +9 -0
  19. data/lib/metry/psycho/visitor.erb +7 -0
  20. data/lib/metry/rack/tracking.rb +17 -13
  21. data/lib/metry/storage.rb +116 -0
  22. data/radiant/example/features/metry.feature +8 -8
  23. data/radiant/example/features/psycho.feature +13 -0
  24. data/radiant/example/features/step_definitions/experiments.rb +2 -2
  25. data/radiant/example/features/step_definitions/tracking.rb +1 -1
  26. data/radiant/example/features/support/env.rb +3 -0
  27. data/radiant/extension/lib/metry_authenticator.rb +30 -0
  28. data/radiant/extension/lib/metry_tags.rb +2 -1
  29. data/radiant/extension/metry_extension.rb +1 -1
  30. data/test/{test_tokyo.rb → test_storage.rb} +3 -3
  31. metadata +17 -72
  32. data/lib/metry/memory.rb +0 -27
  33. data/lib/metry/tokyo.rb +0 -181
  34. data/vendor/rufus-tokyo/CHANGELOG.txt +0 -112
  35. data/vendor/rufus-tokyo/CREDITS.txt +0 -27
  36. data/vendor/rufus-tokyo/LICENSE.txt +0 -21
  37. data/vendor/rufus-tokyo/README.txt +0 -310
  38. data/vendor/rufus-tokyo/Rakefile +0 -118
  39. data/vendor/rufus-tokyo/TODO.txt +0 -25
  40. data/vendor/rufus-tokyo/doc/decision_table.numbers +0 -0
  41. data/vendor/rufus-tokyo/doc/rdoc-style.css +0 -320
  42. data/vendor/rufus-tokyo/lib/rufus-edo.rb +0 -3
  43. data/vendor/rufus-tokyo/lib/rufus-tokyo.rb +0 -3
  44. data/vendor/rufus-tokyo/lib/rufus/edo.rb +0 -39
  45. data/vendor/rufus-tokyo/lib/rufus/edo/README.txt +0 -106
  46. data/vendor/rufus-tokyo/lib/rufus/edo/cabcore.rb +0 -333
  47. data/vendor/rufus-tokyo/lib/rufus/edo/cabinet/abstract.rb +0 -219
  48. data/vendor/rufus-tokyo/lib/rufus/edo/cabinet/table.rb +0 -159
  49. data/vendor/rufus-tokyo/lib/rufus/edo/error.rb +0 -36
  50. data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant.rb +0 -4
  51. data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant/abstract.rb +0 -137
  52. data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant/table.rb +0 -141
  53. data/vendor/rufus-tokyo/lib/rufus/edo/tabcore.rb +0 -567
  54. data/vendor/rufus-tokyo/lib/rufus/tokyo.rb +0 -58
  55. data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/abstract.rb +0 -568
  56. data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/lib.rb +0 -230
  57. data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/table.rb +0 -753
  58. data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/util.rb +0 -425
  59. data/vendor/rufus-tokyo/lib/rufus/tokyo/config.rb +0 -161
  60. data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia.rb +0 -43
  61. data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia/lib.rb +0 -65
  62. data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia/words.rb +0 -71
  63. data/vendor/rufus-tokyo/lib/rufus/tokyo/hmethods.rb +0 -111
  64. data/vendor/rufus-tokyo/lib/rufus/tokyo/query.rb +0 -102
  65. data/vendor/rufus-tokyo/lib/rufus/tokyo/transactions.rb +0 -74
  66. data/vendor/rufus-tokyo/lib/rufus/tokyo/ttcommons.rb +0 -59
  67. data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant.rb +0 -35
  68. data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/abstract.rb +0 -146
  69. data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/lib.rb +0 -153
  70. data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/table.rb +0 -162
  71. data/vendor/rufus-tokyo/rufus-tokyo.gemspec +0 -25
  72. data/vendor/rufus-tokyo/spec/cabinet_spec.rb +0 -472
  73. data/vendor/rufus-tokyo/spec/cabinetconfig_spec.rb +0 -82
  74. data/vendor/rufus-tokyo/spec/edo_cabinet_spec.rb +0 -447
  75. data/vendor/rufus-tokyo/spec/edo_ntyrant_spec.rb +0 -299
  76. data/vendor/rufus-tokyo/spec/edo_ntyrant_table_spec.rb +0 -462
  77. data/vendor/rufus-tokyo/spec/edo_table_spec.rb +0 -560
  78. data/vendor/rufus-tokyo/spec/hmethods_spec.rb +0 -44
  79. data/vendor/rufus-tokyo/spec/incr.lua +0 -20
  80. data/vendor/rufus-tokyo/spec/spec.rb +0 -9
  81. data/vendor/rufus-tokyo/spec/spec_base.rb +0 -23
  82. data/vendor/rufus-tokyo/spec/start_tyrants.sh +0 -26
  83. data/vendor/rufus-tokyo/spec/stop_tyrants.sh +0 -9
  84. data/vendor/rufus-tokyo/spec/table_spec.rb +0 -567
  85. data/vendor/rufus-tokyo/spec/tyrant_spec.rb +0 -309
  86. data/vendor/rufus-tokyo/spec/tyrant_table_spec.rb +0 -479
  87. data/vendor/rufus-tokyo/spec/util_list_spec.rb +0 -200
  88. data/vendor/rufus-tokyo/spec/util_map_spec.rb +0 -132
  89. data/vendor/rufus-tokyo/tasks/dev.rb +0 -70
  90. data/vendor/rufus-tokyo/test/bm0.rb +0 -353
  91. data/vendor/rufus-tokyo/test/bm1_compression.rb +0 -54
  92. data/vendor/rufus-tokyo/test/con0.rb +0 -30
  93. data/vendor/rufus-tokyo/test/mem.rb +0 -49
  94. data/vendor/rufus-tokyo/test/mem1.rb +0 -44
  95. data/vendor/rufus-tokyo/test/readme0.rb +0 -17
  96. data/vendor/rufus-tokyo/test/readme1.rb +0 -21
  97. data/vendor/rufus-tokyo/test/readme2.rb +0 -15
  98. data/vendor/rufus-tokyo/test/readme3.rb +0 -24
  99. data/vendor/rufus-tokyo/test/readmes_test.sh +0 -17
@@ -1,54 +0,0 @@
1
-
2
- require 'rubygems'
3
- require 'faker'
4
- require 'benchmark'
5
- require 'rufus/tokyo'
6
-
7
- N = 100_000
8
-
9
- NAME = Faker::Name.name
10
-
11
- DATA = (0..N-1).collect { |i|
12
- #{ 'name' => Faker::Name.name, 'sex' => 'male' }
13
- { 'name' => NAME * 100, 'sex' => 'male' }
14
- }
15
-
16
- t0 = Rufus::Tokyo::Table.new('toto0.tdb')
17
- t1 = Rufus::Tokyo::Table.new('toto1.tdb', :opts => 'ld')
18
- t2 = Rufus::Tokyo::Table.new('toto2.tdb', :opts => 'lb')
19
- #t3 = Rufus::Tokyo::Table.new('toto3.tdb', :opts => 'lt')
20
-
21
- t0.clear
22
- t1.clear
23
- t2.clear
24
- #t3.clear
25
-
26
- Benchmark.benchmark(' ' * 20 + Benchmark::Tms::CAPTION, 20) do |b|
27
- b.report('no compression') do
28
- DATA.each_with_index { |row, i| t0["pk#{i}"] = row }
29
- end
30
- b.report('deflate') do
31
- DATA.each_with_index { |row, i| t1["pk#{i}"] = row }
32
- end
33
- b.report('bzip2') do
34
- DATA.each_with_index { |row, i| t2["pk#{i}"] = row }
35
- end
36
- #b.report('tcbs') do
37
- # DATA.each_with_index { |row, i| t3["pk#{i}"] = row }
38
- #end
39
- end
40
-
41
- t0.close
42
- t1.close
43
- t2.close
44
- #t3.close
45
-
46
- puts
47
-
48
- puts 'no compression : ' + `ls -l toto0.tdb | awk '{ print $5 }'`
49
- puts 'deflate : ' + `ls -l toto1.tdb | awk '{ print $5 }'`
50
- puts 'bzip2 : ' + `ls -l toto2.tdb | awk '{ print $5 }'`
51
- #puts 'tcbs : ' + `ls -l toto3.tdb | awk '{ print $5 }'`
52
-
53
- puts
54
-
@@ -1,30 +0,0 @@
1
-
2
- require 'rubygems'
3
-
4
- require 'rufus/scheduler'
5
- require 'rufus/tokyo/tyrant'
6
- require 'rufus/edo/ntyrant'
7
-
8
- SCHEDULER = Rufus::Scheduler.start_new
9
-
10
- FFI_TABLE = Rufus::Tokyo::TyrantTable.new('127.0.0.1', 45001)
11
- NET_TABLE = Rufus::Edo::NetTyrantTable.new('127.0.0.1', 45001)
12
-
13
- def check_connection (table)
14
- p [ table.class, table.stat ]
15
- end
16
-
17
- $interval = 0
18
-
19
- BLOCK = lambda {
20
- puts "=== #{Time.now}"
21
- check_connection(FFI_TABLE)
22
- check_connection(NET_TABLE)
23
- $interval = $interval + 1
24
- SCHEDULER.in("#{$interval}h", &BLOCK)
25
- }
26
-
27
- BLOCK.call
28
-
29
- SCHEDULER.join
30
-
@@ -1,49 +0,0 @@
1
-
2
- %w{ lib test }.each do |path|
3
- path = File.expand_path(File.dirname(__FILE__) + '/../' + path)
4
- $: << path unless $:.include?(path)
5
- end
6
-
7
- require 'fileutils'
8
-
9
-
10
- def self_ps
11
- ps = `ps -v #{$$}`.split("\n").last.split(' ')
12
- %w{
13
- pid stat time sl re pagein vsz rss lim tsiz pcpu pmem command
14
- }.inject({}) { |h, k|
15
- h[k.intern] = ps.shift; h
16
- }
17
- end
18
-
19
- def pmem (msg)
20
- p [ msg, "#{self_ps[:vsz].to_i / 1024}k" ]
21
- end
22
-
23
- pmem 'starting'
24
-
25
- require 'rubygems'
26
- require 'rufus/tokyo'
27
-
28
- FileUtils.rm('test_mem.tch')
29
-
30
- db = Rufus::Tokyo::Cabinet.new('test_mem.tch')
31
-
32
- pmem 'wired to db'
33
-
34
- 500_000.times { |i| db[i.to_s] = "value#{i}" }
35
-
36
- pmem 'loaded 500_000 records'
37
-
38
- db.each { |k, v| k }
39
-
40
- pmem 'iterated 500_000 records'
41
-
42
- a = db.collect { |k, v| k + v }
43
-
44
- pmem 'collected 500_000 records'
45
-
46
- db.close
47
-
48
- pmem 'closed db'
49
-
@@ -1,44 +0,0 @@
1
-
2
- %w{ lib test }.each do |path|
3
- path = File.expand_path(File.dirname(__FILE__) + '/../' + path)
4
- $: << path unless $:.include?(path)
5
- end
6
-
7
- require 'fileutils'
8
-
9
-
10
- def self_ps
11
- ps = `ps -v #{$$}`.split("\n").last.split(' ')
12
- %w{
13
- pid stat time sl re pagein vsz rss lim tsiz pcpu pmem command
14
- }.inject({}) { |h, k|
15
- h[k.intern] = ps.shift; h
16
- }
17
- end
18
-
19
- def pmem (msg)
20
- p [ msg, "#{self_ps[:vsz].to_i / 1024}k" ]
21
- end
22
-
23
- pmem 'starting'
24
-
25
- require 'rubygems'
26
- require 'rufus/tokyo/util'
27
-
28
- pmem 'required'
29
-
30
- l = Rufus::Tokyo::List.new
31
-
32
- 100000.times { |i| l << i.to_s }
33
-
34
- pmem 'stored'
35
-
36
- #100000.times { |i| l.delete_at(0) }
37
- #100000.times { |i| s = l.delete_at(0); Rufus::Tokyo::CabinetLib.tcfree(s) }
38
- s = nil
39
- 100000.times { |i| s ||= l.delete_at(0); }
40
- p s.class
41
- p s.public_methods.sort
42
-
43
- pmem 'cleared'
44
-
@@ -1,17 +0,0 @@
1
-
2
- require 'rubygems'
3
- require 'rufus/tokyo'
4
-
5
- db = Rufus::Tokyo::Cabinet.new('data.tch')
6
-
7
- db['nada'] = 'surf'
8
-
9
- p db['nada'] # => 'surf'
10
- p db['lost'] # => nil
11
-
12
- 5000.times { |i| db[i.to_s] = "x" }
13
-
14
- p db.inject { |r, (k, v)| k } # => 4999
15
-
16
- db.close
17
-
@@ -1,21 +0,0 @@
1
-
2
- require 'rubygems'
3
- require 'rufus/tokyo'
4
-
5
- t = Rufus::Tokyo::Table.new('table.tdb')
6
-
7
- t['pk0'] = { 'name' => 'alfred', 'age' => '22' }
8
- t['pk1'] = { 'name' => 'bob', 'age' => '18' }
9
- t['pk2'] = { 'name' => 'charly', 'age' => '45' }
10
- t['pk3'] = { 'name' => 'doug', 'age' => '77' }
11
- t['pk4'] = { 'name' => 'ephrem', 'age' => '32' }
12
-
13
- p t.query { |q|
14
- q.add_condition 'age', :numge, '32'
15
- q.order_by 'age'
16
- }
17
- # => [ {"name"=>"ephrem", :pk=>"pk4", "age"=>"32"},
18
- # {"name"=>"charly", :pk=>"pk2", "age"=>"45"} ]
19
-
20
- t.close
21
-
@@ -1,15 +0,0 @@
1
-
2
- # ttserver -port 45001 tmp/data.tch
3
-
4
- require 'rubygems'
5
- require 'rufus/tokyo/tyrant'
6
-
7
- db = Rufus::Tokyo::Tyrant.new('localhost', 45001)
8
-
9
- db['nada'] = 'surf'
10
-
11
- p db['nada'] # => 'surf'
12
- p db['lost'] # => nil
13
-
14
- db.close
15
-
@@ -1,24 +0,0 @@
1
-
2
- # ttserver -port 45002 tmp/data.tct
3
-
4
-
5
- require 'rubygems'
6
- require 'rufus/tokyo/tyrant'
7
-
8
- t = Rufus::Tokyo::TyrantTable.new('localhost', 45002)
9
-
10
- t['pk0'] = { 'name' => 'alfred', 'age' => '22' }
11
- t['pk1'] = { 'name' => 'bob', 'age' => '18' }
12
- t['pk2'] = { 'name' => 'charly', 'age' => '45' }
13
- t['pk3'] = { 'name' => 'doug', 'age' => '77' }
14
- t['pk4'] = { 'name' => 'ephrem', 'age' => '32' }
15
-
16
- p t.query { |q|
17
- q.add_condition 'age', :numge, '32'
18
- q.order_by 'age'
19
- }
20
- # => [ {"name"=>"ephrem", :pk=>"pk4", "age"=>"32"},
21
- # {"name"=>"charly", :pk=>"pk2", "age"=>"45"} ]
22
-
23
- t.close
24
-
@@ -1,17 +0,0 @@
1
- #!/bin/bash
2
-
3
- #
4
- # testing the 4 samples in README.txt
5
- #
6
-
7
- [ -d tmp ] || mkdir tmp
8
- nohup ttserver -port 45001 tmp/data.tch &
9
- nohup ttserver -port 45002 tmp/data.tct &
10
-
11
- ruby19 -Ilib test/readme0.rb
12
- ruby19 -Ilib test/readme1.rb
13
- ruby19 -Ilib test/readme2.rb
14
- ruby19 -Ilib test/readme3.rb
15
-
16
- killall ttserver
17
-