impressionist 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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