mikeg-vanity 1.3.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 (66) hide show
  1. data/CHANGELOG +153 -0
  2. data/MIT-LICENSE +21 -0
  3. data/README.rdoc +83 -0
  4. data/bin/vanity +53 -0
  5. data/lib/vanity.rb +38 -0
  6. data/lib/vanity/backport.rb +43 -0
  7. data/lib/vanity/commands.rb +2 -0
  8. data/lib/vanity/commands/list.rb +21 -0
  9. data/lib/vanity/commands/report.rb +60 -0
  10. data/lib/vanity/experiment/ab_test.rb +477 -0
  11. data/lib/vanity/experiment/base.rb +212 -0
  12. data/lib/vanity/helpers.rb +59 -0
  13. data/lib/vanity/metric/active_record.rb +77 -0
  14. data/lib/vanity/metric/base.rb +221 -0
  15. data/lib/vanity/metric/google_analytics.rb +70 -0
  16. data/lib/vanity/mock_redis.rb +76 -0
  17. data/lib/vanity/playground.rb +197 -0
  18. data/lib/vanity/rails.rb +22 -0
  19. data/lib/vanity/rails/dashboard.rb +24 -0
  20. data/lib/vanity/rails/helpers.rb +158 -0
  21. data/lib/vanity/rails/testing.rb +11 -0
  22. data/lib/vanity/templates/_ab_test.erb +26 -0
  23. data/lib/vanity/templates/_experiment.erb +5 -0
  24. data/lib/vanity/templates/_experiments.erb +7 -0
  25. data/lib/vanity/templates/_metric.erb +14 -0
  26. data/lib/vanity/templates/_metrics.erb +13 -0
  27. data/lib/vanity/templates/_report.erb +27 -0
  28. data/lib/vanity/templates/flot.min.js +1 -0
  29. data/lib/vanity/templates/jquery.min.js +19 -0
  30. data/lib/vanity/templates/vanity.css +26 -0
  31. data/lib/vanity/templates/vanity.js +82 -0
  32. data/test/ab_test_test.rb +656 -0
  33. data/test/experiment_test.rb +136 -0
  34. data/test/experiments/age_and_zipcode.rb +19 -0
  35. data/test/experiments/metrics/cheers.rb +3 -0
  36. data/test/experiments/metrics/signups.rb +2 -0
  37. data/test/experiments/metrics/yawns.rb +3 -0
  38. data/test/experiments/null_abc.rb +5 -0
  39. data/test/metric_test.rb +518 -0
  40. data/test/playground_test.rb +10 -0
  41. data/test/rails_test.rb +104 -0
  42. data/test/test_helper.rb +135 -0
  43. data/vanity.gemspec +18 -0
  44. data/vendor/redis-rb/LICENSE +20 -0
  45. data/vendor/redis-rb/README.markdown +36 -0
  46. data/vendor/redis-rb/Rakefile +62 -0
  47. data/vendor/redis-rb/bench.rb +44 -0
  48. data/vendor/redis-rb/benchmarking/suite.rb +24 -0
  49. data/vendor/redis-rb/benchmarking/worker.rb +71 -0
  50. data/vendor/redis-rb/bin/distredis +33 -0
  51. data/vendor/redis-rb/examples/basic.rb +16 -0
  52. data/vendor/redis-rb/examples/incr-decr.rb +18 -0
  53. data/vendor/redis-rb/examples/list.rb +26 -0
  54. data/vendor/redis-rb/examples/sets.rb +36 -0
  55. data/vendor/redis-rb/lib/dist_redis.rb +124 -0
  56. data/vendor/redis-rb/lib/hash_ring.rb +128 -0
  57. data/vendor/redis-rb/lib/pipeline.rb +21 -0
  58. data/vendor/redis-rb/lib/redis.rb +370 -0
  59. data/vendor/redis-rb/lib/redis/raketasks.rb +1 -0
  60. data/vendor/redis-rb/profile.rb +22 -0
  61. data/vendor/redis-rb/redis-rb.gemspec +30 -0
  62. data/vendor/redis-rb/spec/redis_spec.rb +637 -0
  63. data/vendor/redis-rb/spec/spec_helper.rb +4 -0
  64. data/vendor/redis-rb/speed.rb +16 -0
  65. data/vendor/redis-rb/tasks/redis.tasks.rb +140 -0
  66. metadata +125 -0
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ $TESTING=true
3
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
4
+ require 'redis'
@@ -0,0 +1,16 @@
1
+ require 'benchmark'
2
+ require "#{File.dirname(__FILE__)}/lib/redis"
3
+
4
+ r = Redis.new
5
+ n = (ARGV.shift || 20000).to_i
6
+
7
+ elapsed = Benchmark.realtime do
8
+ # n sets, n gets
9
+ n.times do |i|
10
+ key = "foo#{i}"
11
+ r[key] = key * 10
12
+ r[key]
13
+ end
14
+ end
15
+
16
+ puts '%.2f Kops' % (2 * n / 1000 / elapsed)
@@ -0,0 +1,140 @@
1
+ # Inspired by rabbitmq.rake the Redbox project at http://github.com/rick/redbox/tree/master
2
+ require 'rake'
3
+ require 'fileutils'
4
+ require 'open-uri'
5
+
6
+ class RedisRunner
7
+
8
+ def self.redisdir
9
+ "/tmp/redis/"
10
+ end
11
+
12
+ def self.redisconfdir
13
+ '/etc/redis.conf'
14
+ end
15
+
16
+ def self.dtach_socket
17
+ '/tmp/redis.dtach'
18
+ end
19
+
20
+ # Just check for existance of dtach socket
21
+ def self.running?
22
+ File.exists? dtach_socket
23
+ end
24
+
25
+ def self.start
26
+ puts 'Detach with Ctrl+\ Re-attach with rake redis:attach'
27
+ sleep 3
28
+ exec "dtach -A #{dtach_socket} redis-server #{redisconfdir}"
29
+ end
30
+
31
+ def self.start_detached
32
+ system "dtach -n #{dtach_socket} redis-server #{redisconfdir}"
33
+ end
34
+
35
+ def self.attach
36
+ exec "dtach -a #{dtach_socket}"
37
+ end
38
+
39
+ def self.stop
40
+ system 'echo "SHUTDOWN" | nc localhost 6379'
41
+ end
42
+
43
+ end
44
+
45
+ namespace :redis do
46
+
47
+ desc 'About redis'
48
+ task :about do
49
+ puts "\nSee http://code.google.com/p/redis/ for information about redis.\n\n"
50
+ end
51
+
52
+ desc 'Start redis'
53
+ task :start do
54
+ RedisRunner.start
55
+ end
56
+
57
+ desc 'Stop redis'
58
+ task :stop do
59
+ RedisRunner.stop
60
+ end
61
+
62
+ desc 'Restart redis'
63
+ task :restart do
64
+ RedisRunner.stop
65
+ RedisRunner.start
66
+ end
67
+
68
+ desc 'Attach to redis dtach socket'
69
+ task :attach do
70
+ RedisRunner.attach
71
+ end
72
+
73
+ desc 'Install the lastest verison of Redis from Github (requires git, duh)'
74
+ task :install => [:about, :download, :make] do
75
+ %w(redis-benchmark redis-cli redis-server).each do |bin|
76
+ sh "sudo cp /tmp/redis/#{bin} /usr/bin/"
77
+ end
78
+
79
+ puts "Installed redis-benchmark, redis-cli and redis-server to /usr/bin/"
80
+
81
+ unless File.exists?('/etc/redis.conf')
82
+ sh 'sudo cp /tmp/redis/redis.conf /etc/'
83
+ puts "Installed redis.conf to /etc/ \n You should look at this file!"
84
+ end
85
+ end
86
+
87
+ task :make do
88
+ sh "cd #{RedisRunner.redisdir} && make clean"
89
+ sh "cd #{RedisRunner.redisdir} && make"
90
+ end
91
+
92
+ desc "Download package"
93
+ task :download do
94
+ sh 'rm -rf /tmp/redis/' if File.exists?("#{RedisRunner.redisdir}/.svn")
95
+ sh 'git clone git://github.com/antirez/redis.git /tmp/redis' unless File.exists?(RedisRunner.redisdir)
96
+
97
+ if File.exists?("#{RedisRunner.redisdir}/.git")
98
+ arguments = ENV['COMMIT'].nil? ? "pull" : "reset --hard #{ENV['COMMIT']}"
99
+ sh "cd #{RedisRunner.redisdir} && git #{arguments}"
100
+ end
101
+ end
102
+
103
+ desc "Open an IRb session"
104
+ task :console do
105
+ RedisRunner.start_detached
106
+ system "irb -I lib -I extra -r redis.rb"
107
+ RedisRunner.stop
108
+ end
109
+ end
110
+
111
+ namespace :dtach do
112
+
113
+ desc 'About dtach'
114
+ task :about do
115
+ puts "\nSee http://dtach.sourceforge.net/ for information about dtach.\n\n"
116
+ end
117
+
118
+ desc 'Install dtach 0.8 from source'
119
+ task :install => [:about] do
120
+
121
+ Dir.chdir('/tmp/')
122
+ unless File.exists?('/tmp/dtach-0.8.tar.gz')
123
+ require 'net/http'
124
+
125
+ url = 'http://downloads.sourceforge.net/project/dtach/dtach/0.8/dtach-0.8.tar.gz'
126
+ open('/tmp/dtach-0.8.tar.gz', 'wb') do |file| file.write(open(url).read) end
127
+ end
128
+
129
+ unless File.directory?('/tmp/dtach-0.8')
130
+ system('tar xzf dtach-0.8.tar.gz')
131
+ end
132
+
133
+ Dir.chdir('/tmp/dtach-0.8/')
134
+ sh 'cd /tmp/dtach-0.8/ && ./configure && make'
135
+ sh 'sudo cp /tmp/dtach-0.8/dtach /usr/bin/'
136
+
137
+ puts 'Dtach successfully installed to /usr/bin.'
138
+ end
139
+ end
140
+
metadata ADDED
@@ -0,0 +1,125 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mikeg-vanity
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.0
5
+ platform: ruby
6
+ authors:
7
+ - Assaf Arkin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-02-05 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Mirror, mirror on the wall ...
17
+ email: assaf@labnotes.org
18
+ executables:
19
+ - vanity
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README.rdoc
24
+ - CHANGELOG
25
+ files:
26
+ - bin/vanity
27
+ - lib/vanity/backport.rb
28
+ - lib/vanity/commands/list.rb
29
+ - lib/vanity/commands/report.rb
30
+ - lib/vanity/commands.rb
31
+ - lib/vanity/experiment/ab_test.rb
32
+ - lib/vanity/experiment/base.rb
33
+ - lib/vanity/helpers.rb
34
+ - lib/vanity/metric/active_record.rb
35
+ - lib/vanity/metric/base.rb
36
+ - lib/vanity/metric/google_analytics.rb
37
+ - lib/vanity/mock_redis.rb
38
+ - lib/vanity/playground.rb
39
+ - lib/vanity/rails/dashboard.rb
40
+ - lib/vanity/rails/helpers.rb
41
+ - lib/vanity/rails/testing.rb
42
+ - lib/vanity/rails.rb
43
+ - lib/vanity/templates/_ab_test.erb
44
+ - lib/vanity/templates/_experiment.erb
45
+ - lib/vanity/templates/_experiments.erb
46
+ - lib/vanity/templates/_metric.erb
47
+ - lib/vanity/templates/_metrics.erb
48
+ - lib/vanity/templates/_report.erb
49
+ - lib/vanity/templates/flot.min.js
50
+ - lib/vanity/templates/jquery.min.js
51
+ - lib/vanity/templates/vanity.css
52
+ - lib/vanity/templates/vanity.js
53
+ - lib/vanity.rb
54
+ - vendor/redis-rb/bench.rb
55
+ - vendor/redis-rb/benchmarking/suite.rb
56
+ - vendor/redis-rb/benchmarking/worker.rb
57
+ - vendor/redis-rb/bin/distredis
58
+ - vendor/redis-rb/examples/basic.rb
59
+ - vendor/redis-rb/examples/incr-decr.rb
60
+ - vendor/redis-rb/examples/list.rb
61
+ - vendor/redis-rb/examples/sets.rb
62
+ - vendor/redis-rb/lib/dist_redis.rb
63
+ - vendor/redis-rb/lib/hash_ring.rb
64
+ - vendor/redis-rb/lib/pipeline.rb
65
+ - vendor/redis-rb/lib/redis/raketasks.rb
66
+ - vendor/redis-rb/lib/redis.rb
67
+ - vendor/redis-rb/LICENSE
68
+ - vendor/redis-rb/profile.rb
69
+ - vendor/redis-rb/Rakefile
70
+ - vendor/redis-rb/README.markdown
71
+ - vendor/redis-rb/redis-rb.gemspec
72
+ - vendor/redis-rb/spec/redis_spec.rb
73
+ - vendor/redis-rb/spec/spec_helper.rb
74
+ - vendor/redis-rb/speed.rb
75
+ - vendor/redis-rb/tasks/redis.tasks.rb
76
+ - test/ab_test_test.rb
77
+ - test/experiment_test.rb
78
+ - test/experiments/age_and_zipcode.rb
79
+ - test/experiments/metrics/cheers.rb
80
+ - test/experiments/metrics/signups.rb
81
+ - test/experiments/metrics/yawns.rb
82
+ - test/experiments/null_abc.rb
83
+ - test/metric_test.rb
84
+ - test/playground_test.rb
85
+ - test/rails_test.rb
86
+ - test/test_helper.rb
87
+ - CHANGELOG
88
+ - MIT-LICENSE
89
+ - README.rdoc
90
+ - vanity.gemspec
91
+ has_rdoc: true
92
+ homepage: http://vanity.labnotes.org
93
+ licenses: []
94
+
95
+ post_install_message: To get started run vanity --help
96
+ rdoc_options:
97
+ - --title
98
+ - Vanity 1.3.0
99
+ - --main
100
+ - README.rdoc
101
+ - --webcvs
102
+ - http://github.com/assaf/mikeg-vanity
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: "0"
110
+ version:
111
+ required_rubygems_version: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: "0"
116
+ version:
117
+ requirements: []
118
+
119
+ rubyforge_project:
120
+ rubygems_version: 1.3.5
121
+ signing_key:
122
+ specification_version: 3
123
+ summary: Experience Driven Development framework for Rails
124
+ test_files: []
125
+