impressionist 1.0.1 → 1.1.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 (116) hide show
  1. data/.gitignore +11 -0
  2. data/.rspec +1 -0
  3. data/.travis.yml +11 -0
  4. data/CHANGELOG.rdoc +1 -1
  5. data/Gemfile +8 -19
  6. data/README.md +65 -34
  7. data/Rakefile +10 -82
  8. data/app/controllers/impressionist_controller.rb +11 -11
  9. data/app/models/impression.rb +2 -15
  10. data/app/models/impressionist/bots.rb +3 -3
  11. data/app/models/impressionist/impressionable.rb +29 -41
  12. data/impressionist.gemspec +22 -65
  13. data/lib/generators/active_record/impressionist_generator.rb +21 -0
  14. data/lib/generators/{impressionist → active_record}/templates/create_impressions_table.rb +1 -9
  15. data/lib/generators/impressionist_generator.rb +12 -0
  16. data/lib/generators/mongo_mapper/impressionist_generator.rb +8 -0
  17. data/lib/generators/templates/impression.rb +5 -0
  18. data/lib/impressionist.rb +10 -3
  19. data/lib/impressionist/bots.rb +1 -1
  20. data/lib/impressionist/engine.rb +11 -3
  21. data/lib/impressionist/models/active_record/impression.rb +18 -0
  22. data/lib/impressionist/models/active_record/impressionist/impressionable.rb +12 -0
  23. data/lib/impressionist/models/mongo_mapper/impression.rb +17 -0
  24. data/lib/impressionist/models/mongo_mapper/impressionist/impressionable.rb +12 -0
  25. data/lib/impressionist/version.rb +3 -0
  26. data/test_app/.gitignore +17 -0
  27. data/test_app/.rspec +1 -0
  28. data/test_app/Gemfile +58 -0
  29. data/test_app/README +256 -0
  30. data/test_app/README.rdoc +261 -0
  31. data/test_app/Rakefile +7 -0
  32. data/test_app/app/assets/images/rails.png +0 -0
  33. data/test_app/app/assets/javascripts/application.js +15 -0
  34. data/test_app/app/assets/stylesheets/application.css +13 -0
  35. data/test_app/app/controllers/application_controller.rb +8 -0
  36. data/test_app/app/controllers/articles_controller.rb +18 -0
  37. data/test_app/app/controllers/dummy_controller.rb +6 -0
  38. data/test_app/app/controllers/posts_controller.rb +23 -0
  39. data/test_app/app/controllers/widgets_controller.rb +13 -0
  40. data/test_app/app/helpers/application_helper.rb +2 -0
  41. data/{lib/impressionist/railties/tasks.rake → test_app/app/mailers/.gitkeep} +0 -0
  42. data/test_app/app/models/.gitkeep +0 -0
  43. data/test_app/app/models/article.rb +3 -0
  44. data/test_app/app/models/dummy.rb +7 -0
  45. data/test_app/app/models/post.rb +3 -0
  46. data/test_app/app/models/user.rb +3 -0
  47. data/test_app/app/models/widget.rb +3 -0
  48. data/test_app/app/views/articles/index.html.erb +1 -0
  49. data/test_app/app/views/articles/show.html.erb +1 -0
  50. data/test_app/app/views/layouts/application.html.erb +14 -0
  51. data/test_app/app/views/posts/edit.html.erb +0 -0
  52. data/test_app/app/views/posts/index.html.erb +0 -0
  53. data/test_app/app/views/posts/show.html.erb +0 -0
  54. data/test_app/app/views/widgets/index.html.erb +0 -0
  55. data/test_app/app/views/widgets/new.html.erb +0 -0
  56. data/test_app/app/views/widgets/show.html.erb +0 -0
  57. data/test_app/config.ru +4 -0
  58. data/test_app/config/application.rb +59 -0
  59. data/test_app/config/boot.rb +6 -0
  60. data/test_app/config/cucumber.yml +8 -0
  61. data/test_app/config/database.yml +30 -0
  62. data/test_app/config/environment.rb +5 -0
  63. data/test_app/config/environments/development.rb +37 -0
  64. data/test_app/config/environments/pg_test.rb +35 -0
  65. data/test_app/config/environments/production.rb +67 -0
  66. data/test_app/config/environments/test.rb +37 -0
  67. data/test_app/config/initializers/backtrace_silencers.rb +7 -0
  68. data/test_app/config/initializers/impression.rb +5 -0
  69. data/test_app/config/initializers/inflections.rb +15 -0
  70. data/test_app/config/initializers/mime_types.rb +5 -0
  71. data/test_app/config/initializers/secret_token.rb +7 -0
  72. data/test_app/config/initializers/session_store.rb +8 -0
  73. data/test_app/config/initializers/wrap_parameters.rb +14 -0
  74. data/test_app/config/locales/en.yml +5 -0
  75. data/test_app/config/routes.rb +3 -0
  76. data/test_app/db/migrate/20110201153144_create_articles.rb +13 -0
  77. data/test_app/db/migrate/20110210205028_create_posts.rb +13 -0
  78. data/test_app/db/migrate/20111127184039_create_widgets.rb +15 -0
  79. data/test_app/db/seeds.rb +7 -0
  80. data/test_app/lib/assets/.gitkeep +0 -0
  81. data/test_app/lib/tasks/.gitkeep +0 -0
  82. data/test_app/lib/tasks/cucumber.rake +53 -0
  83. data/test_app/log/.gitkeep +0 -0
  84. data/test_app/public/404.html +26 -0
  85. data/test_app/public/422.html +26 -0
  86. data/test_app/public/500.html +25 -0
  87. data/test_app/public/favicon.ico +0 -0
  88. data/test_app/public/images/rails.png +0 -0
  89. data/test_app/public/index.html +241 -0
  90. data/test_app/public/javascripts/application.js +2 -0
  91. data/test_app/public/javascripts/controls.js +965 -0
  92. data/test_app/public/javascripts/dragdrop.js +974 -0
  93. data/test_app/public/javascripts/effects.js +1123 -0
  94. data/test_app/public/javascripts/prototype.js +6001 -0
  95. data/test_app/public/javascripts/rails.js +175 -0
  96. data/test_app/public/robots.txt +5 -0
  97. data/test_app/public/stylesheets/.gitkeep +0 -0
  98. data/test_app/script/cucumber +10 -0
  99. data/test_app/script/rails +6 -0
  100. data/test_app/spec/controllers/controller_spec.rb +125 -0
  101. data/test_app/spec/controllers/impressionist_uniqueness_spec.rb +310 -0
  102. data/test_app/spec/fixtures/articles.yml +3 -0
  103. data/test_app/spec/fixtures/impressions.yml +43 -0
  104. data/test_app/spec/fixtures/posts.yml +3 -0
  105. data/test_app/spec/fixtures/widgets.yml +4 -0
  106. data/test_app/spec/intializers/initializers_spec.rb +18 -0
  107. data/test_app/spec/models/counter_caching_spec.rb +30 -0
  108. data/test_app/spec/models/model_spec.rb +94 -0
  109. data/test_app/spec/rails_generators/rails_generators_spec.rb +23 -0
  110. data/test_app/spec/spec_helper.rb +36 -0
  111. data/upgrade_migrations/version_0_3_0.rb +7 -7
  112. data/upgrade_migrations/version_0_4_0.rb +2 -2
  113. metadata +356 -99
  114. data/VERSION +0 -1
  115. data/config/routes.rb +0 -2
  116. data/lib/generators/impressionist/impressionist_generator.rb +0 -20
@@ -0,0 +1,3 @@
1
+ one:
2
+ id: 1
3
+ name: Test Article
@@ -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,3 @@
1
+ one:
2
+ id: 1
3
+ name: Test Post
@@ -0,0 +1,4 @@
1
+ one:
2
+ id: 1
3
+ name: A Widget
4
+ impressions_count: 0
@@ -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
@@ -1,9 +1,9 @@
1
1
  class Version04UpdateImpressionsTable < ActiveRecord::Migration
2
2
  def self.up
3
- add_column :impressions, :referrer, :string
3
+ add_column :impressions, :referrer, :string
4
4
  end
5
5
 
6
6
  def self.down
7
7
  remove_column :impressions, :referrer
8
8
  end
9
- end
9
+ 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
- prerelease: false
5
- segments:
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
- - cowboycoded
7
+ authors:
8
+ - johnmcaliley
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-11-30 00:00:00 -05:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: shoulda
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- segments_generated: true
31
- version: "0"
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: *id001
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
- segments:
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: *id002
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
- segments:
59
- - 1
60
- - 5
61
- - 1
62
- segments_generated: true
63
- version: 1.5.1
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: *id003
67
- - !ruby/object:Gem::Dependency
68
- name: rcov
69
- requirement: &id004 !ruby/object:Gem::Requirement
70
- none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- segments:
75
- - 0
76
- segments_generated: true
77
- version: "0"
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: *id004
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
- extra_rdoc_files:
88
- - LICENSE.txt
89
- - README.md
90
- files:
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/impressionist/impressionist_generator.rb
104
- - lib/generators/impressionist/templates/create_impressions_table.rb
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/railties/tasks.rake
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
- has_rdoc: true
113
- homepage: http://github.com/cowboycoded/impressionist
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
- hash: -1970179710473797351
127
- segments:
303
+ requirements:
304
+ - - ! '>='
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
307
+ segments:
128
308
  - 0
129
- segments_generated: true
130
- version: "0"
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
- segments:
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.3.7
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