activity_engine 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fb52f7e33a80e8910a68df7e7a56a3202920abb1
4
- data.tar.gz: 11b4ace2dd8bc74c2b55689adef42493afb6e926
3
+ metadata.gz: c9ea19bc1addf3c6339916689f55362f43462bab
4
+ data.tar.gz: e2b83cbdc64fe4784e4d07b4ec0deb812e492855
5
5
  SHA512:
6
- metadata.gz: 3252cf91daa9ac4eb8d265281931a312211ba3f76d08bb7ed24f26d4fd88d2d6876170d9512912c14af1e174b9a78443a383a9c676353595382d829fb3d0afbe
7
- data.tar.gz: d457234cef4c98a092704f81bdbe665e0e972656f0b73e9834e5e07acc424c9f8786e02653ed8f44aa6158acdaeb8265196b35a639eefa363c2ef7be71691462
6
+ metadata.gz: cefb4712ced5728293d6be2f423d0712547f0dc0f9a0eb5bacde9453b715ab2becb3372a82f1f11ffcfa0a8d46ac3f08e80ea5f32011e7db458de3cd51f4499a
7
+ data.tar.gz: cc22e8b91f49cd75df775842c0a97c7a39b26c75e90c98f5fa8eabde77a6bfa195d13be0e290adca80373da51c1f4eb96ee1df60e33ff185fa65d448b7d9e92b
data/Guardfile CHANGED
@@ -4,7 +4,7 @@
4
4
  guard 'rspec' do
5
5
  watch(%r{^spec/.+_spec\.rb$})
6
6
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
- watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
7
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/app/#{m[1]}_spec.rb" }
8
8
  watch('spec/spec_helper.rb') { "spec" }
9
9
  watch('spec/support/*') { "spec" }
10
10
  end
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # ActivityEngine
2
2
 
3
+ [![Build Status](https://travis-ci.org/ndlib/activity_engine.png)](https://travis-ci.org/ndlib/activity_engine)
4
+
3
5
  A mountable Rails engine for both recording activity and displaying activity on
4
6
  a persisted object.
5
7
 
@@ -23,7 +25,7 @@ To record activity, register a class and method via a Rails generator.
23
25
 
24
26
  $ rails g activity_engine:register <ClassName> <MethodName> <Subject>
25
27
 
26
- Or by hand in a config/initializers/activity_engine_config.rb
28
+ Or by hand in a config/post_initializers/activity_engine_config.rb
27
29
 
28
30
  ActivityEngine.register('<ClassName>', '<MethodName>') do |activity,context|
29
31
  activity.subject = context.<subject>
@@ -33,7 +35,3 @@ Or by hand in a config/initializers/activity_engine_config.rb
33
35
  end
34
36
 
35
37
  Then, whenever the ClassName#MethodName is invoke an activity will be recorded.
36
-
37
- ## TODO
38
-
39
- * Provide a means for retrieving an object's activities
@@ -28,4 +28,5 @@ Gem::Specification.new do |s|
28
28
 
29
29
  s.add_development_dependency "sqlite3"
30
30
  s.add_development_dependency 'rspec-rails'
31
+ s.add_development_dependency 'capybara'
31
32
  end
@@ -29,7 +29,7 @@ module ActivityEngine
29
29
  self.records_processed << record
30
30
  ActivityEngine::Activity.new.tap {|activity|
31
31
  activity.subject = record
32
- activity.user = current_user
32
+ activity.user = current_user if respond_to?(:current_user)
33
33
  activity.activity_type = "#{controller_name}##{action_name}"
34
34
  }.save!
35
35
  end
@@ -1,3 +1,3 @@
1
1
  module ActivityEngine
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -6,17 +6,12 @@ module ActivityEngine
6
6
  desc "Creates a ActivityEngine initializer."
7
7
  argument :class_name, type: :string
8
8
  argument :method_name, type: :string
9
- argument :subject_method, type: :string
10
9
 
11
10
  def copy_initializer
12
11
  generate('activity_engine:install')
13
12
  text = [
14
- "ActivityEngine.register('#{class_name}', '#{method_name}') do |activity, context|",
15
- " activity.subject = context.#{subject_method}",
16
- " activity.current_user = context.current_user",
17
- " activity.activity_type = '#{class_name}##{method_name}'",
18
- "# activity.message = 'Specify a custom message if applicable'",
19
- "end",
13
+ "ActivityEngine.register_models('#{class_name}')",
14
+ "ActivityEngine.register_controller('#{class_name.pluralize}Controller', '#{method_name}')",
20
15
  "",
21
16
  ""
22
17
  ].join("\n")
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ # NOTE: These specs are very much tied into the output of the
4
+ # `rake dummy:scaffold` commands. A change in those means a likely
5
+ # change in the behavior.
6
+ describe 'DummyScaffoldActivity', type: :feature do
7
+
8
+ it 'when I do a registered activity it is recorded' do
9
+ expect {
10
+ visit('/watches/new')
11
+ click_button("Create Watch")
12
+ }.to change{ActivityEngine::Activity.count}.by(1)
13
+ end
14
+
15
+ it 'when I do a non-registered activity it is not recorded' do
16
+ expect {
17
+ visit('/invisibles/new')
18
+ click_button("Create Invisible")
19
+ }.to_not change{ActivityEngine::Activity.count}
20
+ end
21
+
22
+ end
@@ -12,13 +12,16 @@ describe ActivityEngine::ActivitySweeper do
12
12
 
13
13
  describe '#observe' do
14
14
  it 'should allow multiple registrations' do
15
+ # Registered via the dummy spec
16
+ expect(TestSweeper.observed_classes).to eq([Watch])
17
+
15
18
  expect {
16
19
  TestSweeper.observe(:book)
17
- }.to change{TestSweeper.observed_classes}.from([]).to([Book])
20
+ }.to change{TestSweeper.observed_classes}.from([Watch]).to([Watch, Book])
18
21
 
19
22
  expect {
20
23
  TestSweeper.observe(:animal)
21
- }.to change{TestSweeper.observed_classes}.from([Book]).to([Book, Animal])
24
+ }.to change{TestSweeper.observed_classes}.from([Watch,Book]).to([Watch,Book, Animal])
22
25
  end
23
26
  end
24
27
  end
data/tasks/dummy.rake CHANGED
@@ -1,6 +1,6 @@
1
1
  namespace :dummy do
2
2
  desc "Generate a Rails dummy for ActivityEngine tests"
3
- task :generate => [:init, :new_app, :install, :migrate]
3
+ task :generate => [:init, :new_app, :install, :scaffold, :migrate]
4
4
 
5
5
  desc 'Remove dummy application'
6
6
  task :remove => :init do
@@ -13,7 +13,7 @@ namespace :dummy do
13
13
  task :regenerate => [:remove, :generate]
14
14
 
15
15
 
16
- task :new_app => [:init, :guard] do
16
+ task :new_app => [:init] do
17
17
  # Cribbed from https://gist.github.com/stas/4131823
18
18
  require 'rails'
19
19
  require 'activity_engine'
@@ -48,12 +48,20 @@ namespace :dummy do
48
48
  )
49
49
  end
50
50
 
51
+ task :scaffold => [:init, :new_app, :install] do
52
+ system("rails generate scaffold Watch --controller-specs false --view-specs false --routing-specs false")
53
+ system("rails generate scaffold Gear --controller-specs false --view-specs false --routing-specs false")
54
+ system("rails generate scaffold Invisible --controller-specs false --view-specs false --routing-specs false")
55
+
56
+ require 'generators/activity_engine/register_generator'
57
+ system("rails generate activity_engine:register Watch create")
58
+ system("rm -rf #{File.join(DUMMY_ROOT,'spec')}")
59
+ end
60
+
51
61
  task :install => [:init, :new_app] do
52
62
  puts "Installing ActivityEngine"
53
63
  require 'generators/activity_engine/install_generator'
54
- ActivityEngine::Generators::InstallGenerator.start(
55
- %W(. --force )
56
- )
64
+ system("rails generate activity_engine:install --force")
57
65
  end
58
66
  task :migrate => :init do
59
67
  puts "Running activity_engine migrations"
@@ -66,11 +74,4 @@ namespace :dummy do
66
74
  DUMMY_ROOT = File.expand_path("../../spec/dummy", __FILE__).freeze
67
75
  end
68
76
 
69
- task :guard => [:init] do
70
- if File.exist?(File.join(DUMMY_ROOT, 'Rakefile'))
71
- $stderr.puts "Dummy rakefile already exists"
72
- exit!(-1)
73
- end
74
- end
75
-
76
77
  end
data/tasks/spec.rake CHANGED
@@ -1,16 +1,12 @@
1
- task :spec do
2
- APP_RAKEFILE = File.expand_path("../../spec/dummy/Rakefile", __FILE__)
3
- load 'rails/tasks/engine.rake'
1
+ task :spec => ['dummy:regenerate'] do
4
2
  require 'rails'
5
3
  require 'rspec/core/rake_task'
6
- ENV['RAILS_ENV'] = 'test'
7
- Rails.env = 'test'
8
- Rake::Task["db:drop"].invoke rescue true
9
- Rake::Task["db:create"].invoke
10
- Rake::Task['environment'].invoke
11
- Rake::Task['db:schema:load'].invoke
12
- RSpec::Core::RakeTask.new(:__spec) do |t|
13
- t.pattern = "./spec/**/*_spec.rb"
4
+ RSpec::Core::RakeTask.new(:rspec) do |t|
5
+ t.pattern = '../**/*_spec.rb'
6
+ # Because we are running in the context of the dummy app, we need to
7
+ # make sure that spec_helper.rb is somewhere in the load path.
8
+ # Thus the "-I ../"
9
+ t.rspec_opts = "--colour -I ../"
14
10
  end
15
- Rake::Task['__spec'].invoke
11
+ Rake::Task['rspec'].invoke
16
12
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activity_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Friesen
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: capybara
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: ActivityEngine - a mountable Rails engine for activity streams
56
70
  email:
57
71
  - jeremy.n.friesen@gmail.com
@@ -93,13 +107,14 @@ files:
93
107
  - lib/generators/activity_engine/templates/insert_into_application_config.rb
94
108
  - lib/tasks/activity_engine_tasks.rake
95
109
  - script/rails
110
+ - spec/app/models/activity_engine/activity_spec.rb
111
+ - spec/app/models/activity_engine/statistic_spec.rb
112
+ - spec/features/dummy_scaffold_activity_spec.rb
96
113
  - spec/lib/activity_engine/activity_builder_spec.rb
97
114
  - spec/lib/activity_engine/activity_data_structure_spec.rb
98
115
  - spec/lib/activity_engine/activity_sweeper_spec.rb
99
116
  - spec/lib/activity_engine/context_builder_spec.rb
100
117
  - spec/lib/activity_engine_spec.rb
101
- - spec/models/activity_engine/activity_spec.rb
102
- - spec/models/activity_engine/statistic_spec.rb
103
118
  - spec/spec_helper.rb
104
119
  - spec/spec_patch.rb
105
120
  - spec/support/persistence_layer.rb
@@ -130,13 +145,14 @@ signing_key:
130
145
  specification_version: 4
131
146
  summary: ActivityEngine - a mountable Rails engine for activity streams
132
147
  test_files:
148
+ - spec/app/models/activity_engine/activity_spec.rb
149
+ - spec/app/models/activity_engine/statistic_spec.rb
150
+ - spec/features/dummy_scaffold_activity_spec.rb
133
151
  - spec/lib/activity_engine/activity_builder_spec.rb
134
152
  - spec/lib/activity_engine/activity_data_structure_spec.rb
135
153
  - spec/lib/activity_engine/activity_sweeper_spec.rb
136
154
  - spec/lib/activity_engine/context_builder_spec.rb
137
155
  - spec/lib/activity_engine_spec.rb
138
- - spec/models/activity_engine/activity_spec.rb
139
- - spec/models/activity_engine/statistic_spec.rb
140
156
  - spec/spec_helper.rb
141
157
  - spec/spec_patch.rb
142
158
  - spec/support/persistence_layer.rb