impressionist 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +11 -0
- data/.rspec +1 -0
- data/.travis.yml +11 -0
- data/CHANGELOG.rdoc +1 -1
- data/Gemfile +8 -19
- data/README.md +65 -34
- data/Rakefile +10 -82
- data/app/controllers/impressionist_controller.rb +11 -11
- data/app/models/impression.rb +2 -15
- data/app/models/impressionist/bots.rb +3 -3
- data/app/models/impressionist/impressionable.rb +29 -41
- data/impressionist.gemspec +22 -65
- data/lib/generators/active_record/impressionist_generator.rb +21 -0
- data/lib/generators/{impressionist → active_record}/templates/create_impressions_table.rb +1 -9
- data/lib/generators/impressionist_generator.rb +12 -0
- data/lib/generators/mongo_mapper/impressionist_generator.rb +8 -0
- data/lib/generators/templates/impression.rb +5 -0
- data/lib/impressionist.rb +10 -3
- data/lib/impressionist/bots.rb +1 -1
- data/lib/impressionist/engine.rb +11 -3
- data/lib/impressionist/models/active_record/impression.rb +18 -0
- data/lib/impressionist/models/active_record/impressionist/impressionable.rb +12 -0
- data/lib/impressionist/models/mongo_mapper/impression.rb +17 -0
- data/lib/impressionist/models/mongo_mapper/impressionist/impressionable.rb +12 -0
- data/lib/impressionist/version.rb +3 -0
- data/test_app/.gitignore +17 -0
- data/test_app/.rspec +1 -0
- data/test_app/Gemfile +58 -0
- data/test_app/README +256 -0
- data/test_app/README.rdoc +261 -0
- data/test_app/Rakefile +7 -0
- data/test_app/app/assets/images/rails.png +0 -0
- data/test_app/app/assets/javascripts/application.js +15 -0
- data/test_app/app/assets/stylesheets/application.css +13 -0
- data/test_app/app/controllers/application_controller.rb +8 -0
- data/test_app/app/controllers/articles_controller.rb +18 -0
- data/test_app/app/controllers/dummy_controller.rb +6 -0
- data/test_app/app/controllers/posts_controller.rb +23 -0
- data/test_app/app/controllers/widgets_controller.rb +13 -0
- data/test_app/app/helpers/application_helper.rb +2 -0
- data/{lib/impressionist/railties/tasks.rake → test_app/app/mailers/.gitkeep} +0 -0
- data/test_app/app/models/.gitkeep +0 -0
- data/test_app/app/models/article.rb +3 -0
- data/test_app/app/models/dummy.rb +7 -0
- data/test_app/app/models/post.rb +3 -0
- data/test_app/app/models/user.rb +3 -0
- data/test_app/app/models/widget.rb +3 -0
- data/test_app/app/views/articles/index.html.erb +1 -0
- data/test_app/app/views/articles/show.html.erb +1 -0
- data/test_app/app/views/layouts/application.html.erb +14 -0
- data/test_app/app/views/posts/edit.html.erb +0 -0
- data/test_app/app/views/posts/index.html.erb +0 -0
- data/test_app/app/views/posts/show.html.erb +0 -0
- data/test_app/app/views/widgets/index.html.erb +0 -0
- data/test_app/app/views/widgets/new.html.erb +0 -0
- data/test_app/app/views/widgets/show.html.erb +0 -0
- data/test_app/config.ru +4 -0
- data/test_app/config/application.rb +59 -0
- data/test_app/config/boot.rb +6 -0
- data/test_app/config/cucumber.yml +8 -0
- data/test_app/config/database.yml +30 -0
- data/test_app/config/environment.rb +5 -0
- data/test_app/config/environments/development.rb +37 -0
- data/test_app/config/environments/pg_test.rb +35 -0
- data/test_app/config/environments/production.rb +67 -0
- data/test_app/config/environments/test.rb +37 -0
- data/test_app/config/initializers/backtrace_silencers.rb +7 -0
- data/test_app/config/initializers/impression.rb +5 -0
- data/test_app/config/initializers/inflections.rb +15 -0
- data/test_app/config/initializers/mime_types.rb +5 -0
- data/test_app/config/initializers/secret_token.rb +7 -0
- data/test_app/config/initializers/session_store.rb +8 -0
- data/test_app/config/initializers/wrap_parameters.rb +14 -0
- data/test_app/config/locales/en.yml +5 -0
- data/test_app/config/routes.rb +3 -0
- data/test_app/db/migrate/20110201153144_create_articles.rb +13 -0
- data/test_app/db/migrate/20110210205028_create_posts.rb +13 -0
- data/test_app/db/migrate/20111127184039_create_widgets.rb +15 -0
- data/test_app/db/seeds.rb +7 -0
- data/test_app/lib/assets/.gitkeep +0 -0
- data/test_app/lib/tasks/.gitkeep +0 -0
- data/test_app/lib/tasks/cucumber.rake +53 -0
- data/test_app/log/.gitkeep +0 -0
- data/test_app/public/404.html +26 -0
- data/test_app/public/422.html +26 -0
- data/test_app/public/500.html +25 -0
- data/test_app/public/favicon.ico +0 -0
- data/test_app/public/images/rails.png +0 -0
- data/test_app/public/index.html +241 -0
- data/test_app/public/javascripts/application.js +2 -0
- data/test_app/public/javascripts/controls.js +965 -0
- data/test_app/public/javascripts/dragdrop.js +974 -0
- data/test_app/public/javascripts/effects.js +1123 -0
- data/test_app/public/javascripts/prototype.js +6001 -0
- data/test_app/public/javascripts/rails.js +175 -0
- data/test_app/public/robots.txt +5 -0
- data/test_app/public/stylesheets/.gitkeep +0 -0
- data/test_app/script/cucumber +10 -0
- data/test_app/script/rails +6 -0
- data/test_app/spec/controllers/controller_spec.rb +125 -0
- data/test_app/spec/controllers/impressionist_uniqueness_spec.rb +310 -0
- data/test_app/spec/fixtures/articles.yml +3 -0
- data/test_app/spec/fixtures/impressions.yml +43 -0
- data/test_app/spec/fixtures/posts.yml +3 -0
- data/test_app/spec/fixtures/widgets.yml +4 -0
- data/test_app/spec/intializers/initializers_spec.rb +18 -0
- data/test_app/spec/models/counter_caching_spec.rb +30 -0
- data/test_app/spec/models/model_spec.rb +94 -0
- data/test_app/spec/rails_generators/rails_generators_spec.rb +23 -0
- data/test_app/spec/spec_helper.rb +36 -0
- data/upgrade_migrations/version_0_3_0.rb +7 -7
- data/upgrade_migrations/version_0_4_0.rb +2 -2
- metadata +356 -99
- data/VERSION +0 -1
- data/config/routes.rb +0 -2
- data/lib/generators/impressionist/impressionist_generator.rb +0 -20
@@ -0,0 +1,43 @@
|
|
1
|
+
<% 1.upto(7) do |i| %>
|
2
|
+
impression<%= i %>:
|
3
|
+
impressionable_type: Article
|
4
|
+
impressionable_id: 1
|
5
|
+
request_hash: a<%=i%>
|
6
|
+
session_hash: b<%=i%>
|
7
|
+
ip_address: 127.0.0.<%=i%>
|
8
|
+
created_at: 2011-01-01
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
|
12
|
+
impression8:
|
13
|
+
impressionable_type: Article
|
14
|
+
impressionable_id: 1
|
15
|
+
request_hash: a1
|
16
|
+
session_hash: b1
|
17
|
+
ip_address: 127.0.0.1
|
18
|
+
created_at: 2010-01-01
|
19
|
+
|
20
|
+
impression9:
|
21
|
+
impressionable_type: Article
|
22
|
+
impressionable_id: 1
|
23
|
+
request_hash: a1
|
24
|
+
session_hash: b2
|
25
|
+
ip_address: 127.0.0.1
|
26
|
+
created_at: 2011-01-03
|
27
|
+
|
28
|
+
impression10:
|
29
|
+
impressionable_type: Article
|
30
|
+
impressionable_id: 1
|
31
|
+
request_hash: a9
|
32
|
+
session_hash: b3
|
33
|
+
ip_address: 127.0.0.8
|
34
|
+
created_at: 2010-01-01
|
35
|
+
|
36
|
+
impression11:
|
37
|
+
impressionable_type: Article
|
38
|
+
impressionable_id: 1
|
39
|
+
request_hash: a10
|
40
|
+
session_hash: b4
|
41
|
+
ip_address: 127.0.0.1
|
42
|
+
created_at: 2010-01-01
|
43
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Impressionist do
|
4
|
+
it "should be extended from ActiveRecord::Base" do
|
5
|
+
method = RUBY_VERSION.match("1.8") ? "is_impressionable" : :is_impressionable
|
6
|
+
ActiveRecord::Base.methods.include?(method).should be_true
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should include methods in ApplicationController" do
|
10
|
+
method = RUBY_VERSION.match("1.8") ? "impressionist" : :impressionist
|
11
|
+
ApplicationController.instance_methods.include?(method).should be_true
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should include the before_filter method in ApplicationController" do
|
15
|
+
filters = ApplicationController._process_action_callbacks.select { |c| c.kind == :before }
|
16
|
+
filters.collect{|filter|filter.filter}.include?(:impressionist_app_filter).should be_true
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Impression do
|
4
|
+
fixtures :widgets
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
@widget = Widget.find(1)
|
8
|
+
Impression.destroy_all
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "self#counter_caching?" do
|
12
|
+
it "should know when counter caching is enabled" do
|
13
|
+
Widget.should be_counter_caching
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should know when counter caching is disabled" do
|
17
|
+
Article.should_not be_counter_caching
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "#update_counter_cache" do
|
22
|
+
it "should update the counter cache column to reflect the correct number of impressions" do
|
23
|
+
lambda {
|
24
|
+
Impression.create(:impressionable_type => @widget.class.name, :impressionable_id => @widget.id)
|
25
|
+
@widget.reload
|
26
|
+
}.should change(@widget, :impressions_count).from(0).to(1)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Impression do
|
4
|
+
fixtures :articles,:impressions,:posts
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
@article = Article.find(1)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should save a blank impression for an Article that has 10 impressions" do
|
11
|
+
@article.impressions.create
|
12
|
+
@article.impressions.size.should eq 12
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should save an impression with a message" do
|
16
|
+
@article.impressions.create(:message=>"test message")
|
17
|
+
@article.impressions.last.message.should eq "test message"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should return the impression count for all with no date range specified" do
|
21
|
+
@article.impressionist_count(:filter=>:all).should eq 11
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should return unique impression count with no date range specified" do
|
25
|
+
@article.impressionist_count.should eq 9
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should return impression count with only start date specified" do
|
29
|
+
@article.impressionist_count(:start_date=>"2011-01-01",:filter=>:all).should eq 8
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should return impression count with whole date range specified" do
|
33
|
+
@article.impressionist_count(:start_date=>"2011-01-01",:end_date=>"2011-01-02",:filter=>:all).should eq 7
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should return unique impression count with only start date specified" do
|
37
|
+
@article.impressionist_count(:start_date=>"2011-01-01").should eq 7
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should return unique impression count with date range specified" do
|
41
|
+
@article.impressionist_count(:start_date=>"2011-01-01",:end_date=>"2011-01-02").should eq 7
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should return unique impression count using ip address (which in turn eliminates duplicate request_hashes)" do
|
45
|
+
@article.impressionist_count(:filter=>:ip_address).should eq 8
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should return unique impression count using session_hash (which in turn eliminates duplicate request_hashes)" do
|
49
|
+
@article.impressionist_count(:filter=>:session_hash).should eq 7
|
50
|
+
end
|
51
|
+
|
52
|
+
# tests :dependent => :destroy
|
53
|
+
it "should delete impressions on deletion of impressionable" do
|
54
|
+
impressions_count = Impression.all.size
|
55
|
+
a = Article.create
|
56
|
+
i = a.impressions.create
|
57
|
+
a.destroy
|
58
|
+
a.destroyed?.should be_true
|
59
|
+
i.destroyed?.should be_true
|
60
|
+
end
|
61
|
+
|
62
|
+
#OLD COUNT METHODS. DEPRECATE SOON
|
63
|
+
it "should return the impression count with no date range specified" do
|
64
|
+
@article.impression_count.should eq 11
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should return unique impression count with no date range specified" do
|
68
|
+
@article.unique_impression_count.should eq 9
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should return impression count with only start date specified" do
|
72
|
+
@article.impression_count("2011-01-01").should eq 8
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should return impression count with whole date range specified" do
|
76
|
+
@article.impression_count("2011-01-01","2011-01-02").should eq 7
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should return unique impression count with only start date specified" do
|
80
|
+
@article.unique_impression_count("2011-01-01").should eq 7
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should return unique impression count with date range specified" do
|
84
|
+
@article.unique_impression_count("2011-01-01","2011-01-02").should eq 7
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should return unique impression count using ip address (which in turn eliminates duplicate request_hashes)" do
|
88
|
+
@article.unique_impression_count_ip.should eq 8
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should return unique impression count using session_hash (which in turn eliminates duplicate request_hashes)" do
|
92
|
+
@article.unique_impression_count_session.should eq 7
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'systemu'
|
3
|
+
|
4
|
+
# FIXME this test might break the others if run before them
|
5
|
+
#
|
6
|
+
describe Impressionist do
|
7
|
+
fixtures :articles,:impressions,:posts
|
8
|
+
it "should delete existing migration and generate the migration file" do
|
9
|
+
pending
|
10
|
+
migrations_dir = "#{Rails.root}/db/migrate"
|
11
|
+
impressions_migration = Dir.entries(migrations_dir).grep(/impressions/)[0]
|
12
|
+
File.delete("#{migrations_dir}/#{impressions_migration}") unless impressions_migration.blank?
|
13
|
+
generator_output = systemu("rails g impressionist")[1]
|
14
|
+
migration_name = generator_output.split("migrate/")[1].strip
|
15
|
+
Dir.entries(migrations_dir).include?(migration_name).should be_true
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should run the migration created in the previous spec" do
|
19
|
+
pending
|
20
|
+
migrate_output = systemu("rake db:migrate RAILS_ENV=test")
|
21
|
+
migrate_output[1].include?("CreateImpressionsTable: migrated").should be_true
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
ENV["RAILS_ENV"] ||= 'test'
|
2
|
+
unless ENV['CI']
|
3
|
+
require 'simplecov'
|
4
|
+
SimpleCov.start 'rails'
|
5
|
+
end
|
6
|
+
require File.expand_path("../../config/environment", __FILE__)
|
7
|
+
require 'rspec/rails'
|
8
|
+
|
9
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
10
|
+
# in spec/support/ and its subdirectories.
|
11
|
+
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
|
12
|
+
|
13
|
+
RSpec.configure do |config|
|
14
|
+
# == Mock Framework
|
15
|
+
#
|
16
|
+
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
17
|
+
#
|
18
|
+
# config.mock_with :mocha
|
19
|
+
# config.mock_with :flexmock
|
20
|
+
# config.mock_with :rr
|
21
|
+
config.mock_with :rspec
|
22
|
+
|
23
|
+
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
24
|
+
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
25
|
+
|
26
|
+
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
27
|
+
# examples within a transaction, remove the following line or assign false
|
28
|
+
# instead of true.
|
29
|
+
config.use_transactional_fixtures = true
|
30
|
+
|
31
|
+
# make the rails logger usable in the tests as logger.xxx "..."
|
32
|
+
def logger
|
33
|
+
Rails.logger
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -5,23 +5,23 @@ class CreateImpressionsTable < ActiveRecord::Migration
|
|
5
5
|
remove_index :impressions, :name => :controlleraction_index
|
6
6
|
add_index :impressions, [:impressionable_type, :impressionable_id, :request_hash], :name => "poly_request_index", :unique => false
|
7
7
|
add_index :impressions, [:impressionable_type, :impressionable_id, :ip_address], :name => "poly_ip_index", :unique => false
|
8
|
-
add_index :impressions, [:impressionable_type, :impressionable_id, :session_hash], :name => "poly_session_index", :unique => false
|
8
|
+
add_index :impressions, [:impressionable_type, :impressionable_id, :session_hash], :name => "poly_session_index", :unique => false
|
9
9
|
add_index :impressions, [:controller_name,:action_name,:request_hash], :name => "controlleraction_request_index", :unique => false
|
10
10
|
add_index :impressions, [:controller_name,:action_name,:ip_address], :name => "controlleraction_ip_index", :unique => false
|
11
|
-
add_index :impressions, [:controller_name,:action_name,:session_hash], :name => "controlleraction_session_index", :unique => false
|
12
|
-
|
11
|
+
add_index :impressions, [:controller_name,:action_name,:session_hash], :name => "controlleraction_session_index", :unique => false
|
12
|
+
|
13
13
|
end
|
14
14
|
|
15
15
|
def self.down
|
16
16
|
remove_column :impressions, :session_hash
|
17
17
|
remove_index :impressions, :name => :poly_request_index
|
18
18
|
remove_index :impressions, :name => :poly_ip_index
|
19
|
-
remove_index :impressions, :name => :poly_session_index
|
19
|
+
remove_index :impressions, :name => :poly_session_index
|
20
20
|
remove_index :impressions, :name => :controlleraction_request_index
|
21
21
|
remove_index :impressions, :name => :controlleraction_ip_index
|
22
|
-
remove_index :impressions, :name => :controlleraction_session_index
|
22
|
+
remove_index :impressions, :name => :controlleraction_session_index
|
23
23
|
remove_index :impressions, :user_id
|
24
24
|
add_index :impressions, [:impressionable_type, :impressionable_id, :request_hash, :ip_address], :name => "poly_index", :unique => false
|
25
|
-
add_index :impressions, [:controller_name,:action_name,:request_hash,:ip_address], :name => "controlleraction_index", :unique => false
|
25
|
+
add_index :impressions, [:controller_name,:action_name,:request_hash,:ip_address], :name => "controlleraction_index", :unique => false
|
26
26
|
end
|
27
|
-
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,148 +1,405 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: impressionist
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 1
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
segments_generated: true
|
10
|
-
version: 1.0.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.0
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
13
|
-
-
|
7
|
+
authors:
|
8
|
+
- johnmcaliley
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
12
|
+
date: 2012-03-14 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: httpclient
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '2.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: '2.2'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: nokogiri
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '1.5'
|
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: '1.5'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: capybara
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
32
54
|
type: :development
|
33
55
|
prerelease: false
|
34
|
-
version_requirements:
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: bundler
|
37
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
57
|
none: false
|
39
|
-
requirements:
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rake
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0.9'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0.9'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rails
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
40
83
|
- - ~>
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
- 1
|
44
|
-
- 0
|
45
|
-
- 0
|
46
|
-
segments_generated: true
|
47
|
-
version: 1.0.0
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '3.1'
|
48
86
|
type: :development
|
49
87
|
prerelease: false
|
50
|
-
version_requirements:
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: jeweler
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
89
|
none: false
|
55
|
-
requirements:
|
90
|
+
requirements:
|
56
91
|
- - ~>
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '3.1'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: rdoc
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 2.4.2
|
64
102
|
type: :development
|
65
103
|
prerelease: false
|
66
|
-
version_requirements:
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 2.4.2
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: rspec-rails
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: simplecov
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: sqlite3
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: systemu
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
78
166
|
type: :development
|
79
167
|
prerelease: false
|
80
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
81
174
|
description: Log impressions from controller actions or from a model
|
82
175
|
email: john.mcaliley@gmail.com
|
83
176
|
executables: []
|
84
|
-
|
85
177
|
extensions: []
|
86
|
-
|
87
|
-
|
88
|
-
-
|
89
|
-
-
|
90
|
-
|
178
|
+
extra_rdoc_files: []
|
179
|
+
files:
|
180
|
+
- .gitignore
|
181
|
+
- .rspec
|
182
|
+
- .travis.yml
|
91
183
|
- CHANGELOG.rdoc
|
92
184
|
- Gemfile
|
93
185
|
- LICENSE.txt
|
94
186
|
- README.md
|
95
187
|
- Rakefile
|
96
|
-
- VERSION
|
97
188
|
- app/controllers/impressionist_controller.rb
|
98
189
|
- app/models/impression.rb
|
99
190
|
- app/models/impressionist/bots.rb
|
100
191
|
- app/models/impressionist/impressionable.rb
|
101
|
-
- config/routes.rb
|
102
192
|
- impressionist.gemspec
|
103
|
-
- lib/generators/
|
104
|
-
- lib/generators/
|
193
|
+
- lib/generators/active_record/impressionist_generator.rb
|
194
|
+
- lib/generators/active_record/templates/create_impressions_table.rb
|
195
|
+
- lib/generators/impressionist_generator.rb
|
196
|
+
- lib/generators/mongo_mapper/impressionist_generator.rb
|
197
|
+
- lib/generators/templates/impression.rb
|
105
198
|
- lib/impressionist.rb
|
106
199
|
- lib/impressionist/bots.rb
|
107
200
|
- lib/impressionist/engine.rb
|
108
|
-
- lib/impressionist/
|
201
|
+
- lib/impressionist/models/active_record/impression.rb
|
202
|
+
- lib/impressionist/models/active_record/impressionist/impressionable.rb
|
203
|
+
- lib/impressionist/models/mongo_mapper/impression.rb
|
204
|
+
- lib/impressionist/models/mongo_mapper/impressionist/impressionable.rb
|
205
|
+
- lib/impressionist/version.rb
|
109
206
|
- logo.png
|
207
|
+
- test_app/.gitignore
|
208
|
+
- test_app/.rspec
|
209
|
+
- test_app/Gemfile
|
210
|
+
- test_app/README
|
211
|
+
- test_app/README.rdoc
|
212
|
+
- test_app/Rakefile
|
213
|
+
- test_app/app/assets/images/rails.png
|
214
|
+
- test_app/app/assets/javascripts/application.js
|
215
|
+
- test_app/app/assets/stylesheets/application.css
|
216
|
+
- test_app/app/controllers/application_controller.rb
|
217
|
+
- test_app/app/controllers/articles_controller.rb
|
218
|
+
- test_app/app/controllers/dummy_controller.rb
|
219
|
+
- test_app/app/controllers/posts_controller.rb
|
220
|
+
- test_app/app/controllers/widgets_controller.rb
|
221
|
+
- test_app/app/helpers/application_helper.rb
|
222
|
+
- test_app/app/mailers/.gitkeep
|
223
|
+
- test_app/app/models/.gitkeep
|
224
|
+
- test_app/app/models/article.rb
|
225
|
+
- test_app/app/models/dummy.rb
|
226
|
+
- test_app/app/models/post.rb
|
227
|
+
- test_app/app/models/user.rb
|
228
|
+
- test_app/app/models/widget.rb
|
229
|
+
- test_app/app/views/articles/index.html.erb
|
230
|
+
- test_app/app/views/articles/show.html.erb
|
231
|
+
- test_app/app/views/layouts/application.html.erb
|
232
|
+
- test_app/app/views/posts/edit.html.erb
|
233
|
+
- test_app/app/views/posts/index.html.erb
|
234
|
+
- test_app/app/views/posts/show.html.erb
|
235
|
+
- test_app/app/views/widgets/index.html.erb
|
236
|
+
- test_app/app/views/widgets/new.html.erb
|
237
|
+
- test_app/app/views/widgets/show.html.erb
|
238
|
+
- test_app/config.ru
|
239
|
+
- test_app/config/application.rb
|
240
|
+
- test_app/config/boot.rb
|
241
|
+
- test_app/config/cucumber.yml
|
242
|
+
- test_app/config/database.yml
|
243
|
+
- test_app/config/environment.rb
|
244
|
+
- test_app/config/environments/development.rb
|
245
|
+
- test_app/config/environments/pg_test.rb
|
246
|
+
- test_app/config/environments/production.rb
|
247
|
+
- test_app/config/environments/test.rb
|
248
|
+
- test_app/config/initializers/backtrace_silencers.rb
|
249
|
+
- test_app/config/initializers/impression.rb
|
250
|
+
- test_app/config/initializers/inflections.rb
|
251
|
+
- test_app/config/initializers/mime_types.rb
|
252
|
+
- test_app/config/initializers/secret_token.rb
|
253
|
+
- test_app/config/initializers/session_store.rb
|
254
|
+
- test_app/config/initializers/wrap_parameters.rb
|
255
|
+
- test_app/config/locales/en.yml
|
256
|
+
- test_app/config/routes.rb
|
257
|
+
- test_app/db/migrate/20110201153144_create_articles.rb
|
258
|
+
- test_app/db/migrate/20110210205028_create_posts.rb
|
259
|
+
- test_app/db/migrate/20111127184039_create_widgets.rb
|
260
|
+
- test_app/db/seeds.rb
|
261
|
+
- test_app/lib/assets/.gitkeep
|
262
|
+
- test_app/lib/tasks/.gitkeep
|
263
|
+
- test_app/lib/tasks/cucumber.rake
|
264
|
+
- test_app/log/.gitkeep
|
265
|
+
- test_app/public/404.html
|
266
|
+
- test_app/public/422.html
|
267
|
+
- test_app/public/500.html
|
268
|
+
- test_app/public/favicon.ico
|
269
|
+
- test_app/public/images/rails.png
|
270
|
+
- test_app/public/index.html
|
271
|
+
- test_app/public/javascripts/application.js
|
272
|
+
- test_app/public/javascripts/controls.js
|
273
|
+
- test_app/public/javascripts/dragdrop.js
|
274
|
+
- test_app/public/javascripts/effects.js
|
275
|
+
- test_app/public/javascripts/prototype.js
|
276
|
+
- test_app/public/javascripts/rails.js
|
277
|
+
- test_app/public/robots.txt
|
278
|
+
- test_app/public/stylesheets/.gitkeep
|
279
|
+
- test_app/script/cucumber
|
280
|
+
- test_app/script/rails
|
281
|
+
- test_app/spec/controllers/controller_spec.rb
|
282
|
+
- test_app/spec/controllers/impressionist_uniqueness_spec.rb
|
283
|
+
- test_app/spec/fixtures/articles.yml
|
284
|
+
- test_app/spec/fixtures/impressions.yml
|
285
|
+
- test_app/spec/fixtures/posts.yml
|
286
|
+
- test_app/spec/fixtures/widgets.yml
|
287
|
+
- test_app/spec/intializers/initializers_spec.rb
|
288
|
+
- test_app/spec/models/counter_caching_spec.rb
|
289
|
+
- test_app/spec/models/model_spec.rb
|
290
|
+
- test_app/spec/rails_generators/rails_generators_spec.rb
|
291
|
+
- test_app/spec/spec_helper.rb
|
110
292
|
- upgrade_migrations/version_0_3_0.rb
|
111
293
|
- upgrade_migrations/version_0_4_0.rb
|
112
|
-
|
113
|
-
|
114
|
-
licenses:
|
294
|
+
homepage: https://github.com/charlotte-ruby/impressionist
|
295
|
+
licenses:
|
115
296
|
- MIT
|
116
297
|
post_install_message:
|
117
298
|
rdoc_options: []
|
118
|
-
|
119
|
-
require_paths:
|
299
|
+
require_paths:
|
120
300
|
- lib
|
121
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
301
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
122
302
|
none: false
|
123
|
-
requirements:
|
124
|
-
- -
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
|
127
|
-
segments:
|
303
|
+
requirements:
|
304
|
+
- - ! '>='
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '0'
|
307
|
+
segments:
|
128
308
|
- 0
|
129
|
-
|
130
|
-
|
131
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
309
|
+
hash: -4388839004348442520
|
310
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
311
|
none: false
|
133
|
-
requirements:
|
134
|
-
- -
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
|
137
|
-
- 0
|
138
|
-
segments_generated: true
|
139
|
-
version: "0"
|
312
|
+
requirements:
|
313
|
+
- - ! '>='
|
314
|
+
- !ruby/object:Gem::Version
|
315
|
+
version: 1.3.6
|
140
316
|
requirements: []
|
141
|
-
|
142
317
|
rubyforge_project:
|
143
|
-
rubygems_version: 1.
|
318
|
+
rubygems_version: 1.8.18
|
144
319
|
signing_key:
|
145
320
|
specification_version: 3
|
146
321
|
summary: Easy way to log impressions
|
147
|
-
test_files:
|
148
|
-
|
322
|
+
test_files:
|
323
|
+
- test_app/Gemfile
|
324
|
+
- test_app/README
|
325
|
+
- test_app/README.rdoc
|
326
|
+
- test_app/Rakefile
|
327
|
+
- test_app/app/assets/images/rails.png
|
328
|
+
- test_app/app/assets/javascripts/application.js
|
329
|
+
- test_app/app/assets/stylesheets/application.css
|
330
|
+
- test_app/app/controllers/application_controller.rb
|
331
|
+
- test_app/app/controllers/articles_controller.rb
|
332
|
+
- test_app/app/controllers/dummy_controller.rb
|
333
|
+
- test_app/app/controllers/posts_controller.rb
|
334
|
+
- test_app/app/controllers/widgets_controller.rb
|
335
|
+
- test_app/app/helpers/application_helper.rb
|
336
|
+
- test_app/app/mailers/.gitkeep
|
337
|
+
- test_app/app/models/.gitkeep
|
338
|
+
- test_app/app/models/article.rb
|
339
|
+
- test_app/app/models/dummy.rb
|
340
|
+
- test_app/app/models/post.rb
|
341
|
+
- test_app/app/models/user.rb
|
342
|
+
- test_app/app/models/widget.rb
|
343
|
+
- test_app/app/views/articles/index.html.erb
|
344
|
+
- test_app/app/views/articles/show.html.erb
|
345
|
+
- test_app/app/views/layouts/application.html.erb
|
346
|
+
- test_app/app/views/posts/edit.html.erb
|
347
|
+
- test_app/app/views/posts/index.html.erb
|
348
|
+
- test_app/app/views/posts/show.html.erb
|
349
|
+
- test_app/app/views/widgets/index.html.erb
|
350
|
+
- test_app/app/views/widgets/new.html.erb
|
351
|
+
- test_app/app/views/widgets/show.html.erb
|
352
|
+
- test_app/config.ru
|
353
|
+
- test_app/config/application.rb
|
354
|
+
- test_app/config/boot.rb
|
355
|
+
- test_app/config/cucumber.yml
|
356
|
+
- test_app/config/database.yml
|
357
|
+
- test_app/config/environment.rb
|
358
|
+
- test_app/config/environments/development.rb
|
359
|
+
- test_app/config/environments/pg_test.rb
|
360
|
+
- test_app/config/environments/production.rb
|
361
|
+
- test_app/config/environments/test.rb
|
362
|
+
- test_app/config/initializers/backtrace_silencers.rb
|
363
|
+
- test_app/config/initializers/impression.rb
|
364
|
+
- test_app/config/initializers/inflections.rb
|
365
|
+
- test_app/config/initializers/mime_types.rb
|
366
|
+
- test_app/config/initializers/secret_token.rb
|
367
|
+
- test_app/config/initializers/session_store.rb
|
368
|
+
- test_app/config/initializers/wrap_parameters.rb
|
369
|
+
- test_app/config/locales/en.yml
|
370
|
+
- test_app/config/routes.rb
|
371
|
+
- test_app/db/migrate/20110201153144_create_articles.rb
|
372
|
+
- test_app/db/migrate/20110210205028_create_posts.rb
|
373
|
+
- test_app/db/migrate/20111127184039_create_widgets.rb
|
374
|
+
- test_app/db/seeds.rb
|
375
|
+
- test_app/lib/assets/.gitkeep
|
376
|
+
- test_app/lib/tasks/.gitkeep
|
377
|
+
- test_app/lib/tasks/cucumber.rake
|
378
|
+
- test_app/log/.gitkeep
|
379
|
+
- test_app/public/404.html
|
380
|
+
- test_app/public/422.html
|
381
|
+
- test_app/public/500.html
|
382
|
+
- test_app/public/favicon.ico
|
383
|
+
- test_app/public/images/rails.png
|
384
|
+
- test_app/public/index.html
|
385
|
+
- test_app/public/javascripts/application.js
|
386
|
+
- test_app/public/javascripts/controls.js
|
387
|
+
- test_app/public/javascripts/dragdrop.js
|
388
|
+
- test_app/public/javascripts/effects.js
|
389
|
+
- test_app/public/javascripts/prototype.js
|
390
|
+
- test_app/public/javascripts/rails.js
|
391
|
+
- test_app/public/robots.txt
|
392
|
+
- test_app/public/stylesheets/.gitkeep
|
393
|
+
- test_app/script/cucumber
|
394
|
+
- test_app/script/rails
|
395
|
+
- test_app/spec/controllers/controller_spec.rb
|
396
|
+
- test_app/spec/controllers/impressionist_uniqueness_spec.rb
|
397
|
+
- test_app/spec/fixtures/articles.yml
|
398
|
+
- test_app/spec/fixtures/impressions.yml
|
399
|
+
- test_app/spec/fixtures/posts.yml
|
400
|
+
- test_app/spec/fixtures/widgets.yml
|
401
|
+
- test_app/spec/intializers/initializers_spec.rb
|
402
|
+
- test_app/spec/models/counter_caching_spec.rb
|
403
|
+
- test_app/spec/models/model_spec.rb
|
404
|
+
- test_app/spec/rails_generators/rails_generators_spec.rb
|
405
|
+
- test_app/spec/spec_helper.rb
|