minuteman-rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - "1.9.3"
4
+ - "jruby-19mode"
5
+ - "rbx-19mode"
6
+ services:
7
+ - "redis-server"
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source :rubygems
2
+
3
+ gemspec
4
+ gem "rake"
data/Gemfile.lock ADDED
@@ -0,0 +1,98 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ minuteman-rails (0.1.0)
5
+ minuteman (~> 1.0.2)
6
+ rails (~> 3.0)
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ actionmailer (3.2.8)
12
+ actionpack (= 3.2.8)
13
+ mail (~> 2.4.4)
14
+ actionpack (3.2.8)
15
+ activemodel (= 3.2.8)
16
+ activesupport (= 3.2.8)
17
+ builder (~> 3.0.0)
18
+ erubis (~> 2.7.0)
19
+ journey (~> 1.0.4)
20
+ rack (~> 1.4.0)
21
+ rack-cache (~> 1.2)
22
+ rack-test (~> 0.6.1)
23
+ sprockets (~> 2.1.3)
24
+ activemodel (3.2.8)
25
+ activesupport (= 3.2.8)
26
+ builder (~> 3.0.0)
27
+ activerecord (3.2.8)
28
+ activemodel (= 3.2.8)
29
+ activesupport (= 3.2.8)
30
+ arel (~> 3.0.2)
31
+ tzinfo (~> 0.3.29)
32
+ activeresource (3.2.8)
33
+ activemodel (= 3.2.8)
34
+ activesupport (= 3.2.8)
35
+ activesupport (3.2.8)
36
+ i18n (~> 0.6)
37
+ multi_json (~> 1.0)
38
+ arel (3.0.2)
39
+ builder (3.0.4)
40
+ erubis (2.7.0)
41
+ hike (1.2.1)
42
+ i18n (0.6.1)
43
+ journey (1.0.4)
44
+ json (1.7.5)
45
+ mail (2.4.4)
46
+ i18n (>= 0.4.0)
47
+ mime-types (~> 1.16)
48
+ treetop (~> 1.4.8)
49
+ mime-types (1.19)
50
+ minitest (4.2.0)
51
+ minuteman (1.0.2)
52
+ redis (~> 3.0.2)
53
+ multi_json (1.3.7)
54
+ polyglot (0.3.3)
55
+ rack (1.4.1)
56
+ rack-cache (1.2)
57
+ rack (>= 0.4)
58
+ rack-ssl (1.3.2)
59
+ rack
60
+ rack-test (0.6.2)
61
+ rack (>= 1.0)
62
+ rails (3.2.8)
63
+ actionmailer (= 3.2.8)
64
+ actionpack (= 3.2.8)
65
+ activerecord (= 3.2.8)
66
+ activeresource (= 3.2.8)
67
+ activesupport (= 3.2.8)
68
+ bundler (~> 1.0)
69
+ railties (= 3.2.8)
70
+ railties (3.2.8)
71
+ actionpack (= 3.2.8)
72
+ activesupport (= 3.2.8)
73
+ rack-ssl (~> 1.3.2)
74
+ rake (>= 0.8.7)
75
+ rdoc (~> 3.4)
76
+ thor (>= 0.14.6, < 2.0)
77
+ rake (10.0.2)
78
+ rdoc (3.12)
79
+ json (~> 1.4)
80
+ redis (3.0.2)
81
+ sprockets (2.1.3)
82
+ hike (~> 1.2)
83
+ rack (~> 1.0)
84
+ tilt (~> 1.1, != 1.3.0)
85
+ thor (0.16.0)
86
+ tilt (1.3.3)
87
+ treetop (1.4.12)
88
+ polyglot
89
+ polyglot (>= 0.3.1)
90
+ tzinfo (0.3.35)
91
+
92
+ PLATFORMS
93
+ ruby
94
+
95
+ DEPENDENCIES
96
+ minitest (~> 4.2.0)
97
+ minuteman-rails!
98
+ rake
data/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Minuteman-Rails
2
+
3
+ Track everything in your Rails app using Minuteman
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new("spec") do |t|
4
+ t.pattern = "test/**/*_test.rb"
5
+ end
6
+
7
+ task :default => [:test]
8
+ task :test => [:spec]
@@ -0,0 +1 @@
1
+ require "minuteman/rails"
@@ -0,0 +1,18 @@
1
+ require "minuteman"
2
+ require "minuteman/rails/configuration"
3
+ require "minuteman/rails/engine"
4
+
5
+ class Minuteman
6
+ class Rails
7
+ cattr_accessor :configuration, :analytics
8
+
9
+ def self.configure
10
+ self.configuration ||= Configuration.new
11
+
12
+ yield(self.configuration)
13
+ end
14
+ end
15
+ end
16
+
17
+ Minuteman::Rails.configure {}
18
+ Minuteman::Rails.analytics = Minuteman.new(Minuteman::Rails.configuration.to_hash)
@@ -0,0 +1,14 @@
1
+ class Minuteman
2
+ class Rails
3
+ class Configuration
4
+ attr_accessor :silent, :redis
5
+
6
+ def to_hash
7
+ {
8
+ silent: silent || false,
9
+ redis: redis || {}
10
+ }
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ require "rails"
2
+ require "minuteman/rails/helper"
3
+
4
+ class Minuteman
5
+ class Rails
6
+ class Engine < ::Rails::Engine
7
+ initializer "minuteman-rails" do |app|
8
+ ActionController::Base.send :include, Minuteman::Rails::Helper
9
+ ActionController::Base.helper Minuteman::Rails::Helper
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ require "forwardable"
2
+
3
+ class Minuteman
4
+ class Rails
5
+ module Helper
6
+ extend Forwardable
7
+
8
+ def_delegators :"Minuteman::Rails.analytics", :track, :events
9
+ def_delegators :"Minuteman::Rails", :analytics
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "minuteman-rails"
3
+ s.version = "0.1.0"
4
+ s.summary = "Bit Analytics for Rails"
5
+ s.description = "Use Minuteman in your Rails app"
6
+ s.authors = ["elcuervo"]
7
+ s.licenses = ["MIT"]
8
+ s.email = ["yo@brunoaguirre.com"]
9
+ s.homepage = "http://github.com/elcuervo/minuteman-rails"
10
+ s.files = `git ls-files`.split("\n")
11
+ s.test_files = `git ls-files test`.split("\n")
12
+
13
+ s.add_dependency("minuteman", "~> 1.0.2")
14
+ s.add_dependency("rails", "~> 3.0")
15
+
16
+ s.add_development_dependency("minitest", "~> 4.2.0")
17
+ end
@@ -0,0 +1,13 @@
1
+ require_relative "./test_helper"
2
+ require "minuteman/rails/helper"
3
+
4
+ describe Minuteman::Rails::Helper do
5
+ include Minuteman::Rails::Helper
6
+
7
+ it "should be able to track a given event" do
8
+ track("test:event", 1)
9
+
10
+ assert_equal ["test:event"], events
11
+ assert analytics.month("test:event").include?(1)
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ require_relative "./test_helper"
2
+
3
+ describe Minuteman::Rails do
4
+ it "should be configurable" do
5
+ Minuteman::Rails.configure do |c|
6
+ c.silent = true
7
+
8
+ assert c.kind_of?(Minuteman::Rails::Configuration)
9
+ end
10
+
11
+ assert Minuteman::Rails.analytics.kind_of?(Minuteman)
12
+ assert Minuteman::Rails.configuration.silent
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ $:.unshift File.dirname(__FILE__) + '/../lib'
2
+
3
+ require "bundler/setup"
4
+ require "minitest/spec"
5
+ require "minitest/pride"
6
+ require "minitest/autorun"
7
+ require "minuteman/rails"
metadata ADDED
@@ -0,0 +1,111 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: minuteman-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - elcuervo
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: minuteman
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.0.2
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.0.2
30
+ - !ruby/object:Gem::Dependency
31
+ name: rails
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '3.0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: minitest
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 4.2.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 4.2.0
62
+ description: Use Minuteman in your Rails app
63
+ email:
64
+ - yo@brunoaguirre.com
65
+ executables: []
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - .travis.yml
70
+ - Gemfile
71
+ - Gemfile.lock
72
+ - README.md
73
+ - Rakefile
74
+ - lib/minuteman-rails.rb
75
+ - lib/minuteman/rails.rb
76
+ - lib/minuteman/rails/configuration.rb
77
+ - lib/minuteman/rails/engine.rb
78
+ - lib/minuteman/rails/helper.rb
79
+ - minuteman-rails.gemspec
80
+ - test/helper_test.rb
81
+ - test/minuteman-rails_test.rb
82
+ - test/test_helper.rb
83
+ homepage: http://github.com/elcuervo/minuteman-rails
84
+ licenses:
85
+ - MIT
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ requirements: []
103
+ rubyforge_project:
104
+ rubygems_version: 1.8.23
105
+ signing_key:
106
+ specification_version: 3
107
+ summary: Bit Analytics for Rails
108
+ test_files:
109
+ - test/helper_test.rb
110
+ - test/minuteman-rails_test.rb
111
+ - test/test_helper.rb