activity_engine 0.0.2
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.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/Gemfile +23 -0
- data/Guardfile +10 -0
- data/LICENSE.txt +17 -0
- data/README.md +39 -0
- data/Rakefile +11 -0
- data/TODO.md +24 -0
- data/activity_engine.gemspec +31 -0
- data/app/assets/images/activity_engine/.gitkeep +0 -0
- data/app/assets/javascripts/activity_engine/application.js +15 -0
- data/app/assets/stylesheets/activity_engine/application.css +13 -0
- data/app/controllers/activity_engine/application_controller.rb +4 -0
- data/app/helpers/activity_engine/application_helper.rb +4 -0
- data/app/models/activity_engine/activity.rb +28 -0
- data/app/views/layouts/activity_engine/application.html.erb +14 -0
- data/config/routes.rb +2 -0
- data/db/migrate/20130722162331_create_activity_engine_activities.rb +13 -0
- data/lib/activity_engine/activity_builder.rb +45 -0
- data/lib/activity_engine/activity_data_structure.rb +10 -0
- data/lib/activity_engine/context_builder.rb +40 -0
- data/lib/activity_engine/engine.rb +17 -0
- data/lib/activity_engine/exceptions.rb +7 -0
- data/lib/activity_engine/version.rb +3 -0
- data/lib/activity_engine.rb +14 -0
- data/lib/generators/activity_engine/install_generator.rb +19 -0
- data/lib/generators/activity_engine/register_generator.rb +28 -0
- data/lib/generators/activity_engine/templates/activity_engine_config.rb +6 -0
- data/lib/tasks/activity_engine_tasks.rake +4 -0
- data/script/rails +8 -0
- data/spec/dummy/README.rdoc +261 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/mailers/.gitkeep +0 -0
- data/spec/dummy/app/models/.gitkeep +0 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config/application.rb +59 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +67 -0
- data/spec/dummy/config/environments/test.rb +37 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +15 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/schema.rb +28 -0
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/spec/dummy/log/.gitkeep +0 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/lib/activity_engine/activity_builder_spec.rb +54 -0
- data/spec/lib/activity_engine/activity_data_structure_spec.rb +10 -0
- data/spec/lib/activity_engine/context_builder_spec.rb +83 -0
- data/spec/lib/activity_engine_spec.rb +42 -0
- data/spec/models/activity_engine/activity_spec.rb +42 -0
- data/spec/spec_helper.rb +35 -0
- data/spec/spec_patch.rb +43 -0
- data/spec/support/persistence_layer.rb +14 -0
- metadata +198 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# This file is auto-generated from the current state of the database. Instead
|
3
|
+
# of editing this file, please use the migrations feature of Active Record to
|
4
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
5
|
+
#
|
6
|
+
# Note that this schema.rb definition is the authoritative source for your
|
7
|
+
# database schema. If you need to create the application database on another
|
8
|
+
# system, you should be using db:schema:load, not running all the migrations
|
9
|
+
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
10
|
+
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
11
|
+
#
|
12
|
+
# It's strongly recommended to check this file into your version control system.
|
13
|
+
|
14
|
+
ActiveRecord::Schema.define(:version => 20130722162331) do
|
15
|
+
|
16
|
+
create_table "activity_engine_activities", :force => true do |t|
|
17
|
+
t.integer "user_id"
|
18
|
+
t.string "subject_type", :null => false
|
19
|
+
t.string "subject_id", :null => false
|
20
|
+
t.string "activity_type", :null => false
|
21
|
+
t.text "message"
|
22
|
+
t.datetime "created_at", :null => false
|
23
|
+
t.datetime "updated_at", :null => false
|
24
|
+
end
|
25
|
+
|
26
|
+
add_index "activity_engine_activities", ["user_id"], :name => "index_activity_engine_activities_on_user_id"
|
27
|
+
|
28
|
+
end
|
File without changes
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>The page you were looking for doesn't exist (404)</title>
|
5
|
+
<style type="text/css">
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
7
|
+
div.dialog {
|
8
|
+
width: 25em;
|
9
|
+
padding: 0 4em;
|
10
|
+
margin: 4em auto 0 auto;
|
11
|
+
border: 1px solid #ccc;
|
12
|
+
border-right-color: #999;
|
13
|
+
border-bottom-color: #999;
|
14
|
+
}
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
16
|
+
</style>
|
17
|
+
</head>
|
18
|
+
|
19
|
+
<body>
|
20
|
+
<!-- This file lives in public/404.html -->
|
21
|
+
<div class="dialog">
|
22
|
+
<h1>The page you were looking for doesn't exist.</h1>
|
23
|
+
<p>You may have mistyped the address or the page may have moved.</p>
|
24
|
+
</div>
|
25
|
+
</body>
|
26
|
+
</html>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>The change you wanted was rejected (422)</title>
|
5
|
+
<style type="text/css">
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
7
|
+
div.dialog {
|
8
|
+
width: 25em;
|
9
|
+
padding: 0 4em;
|
10
|
+
margin: 4em auto 0 auto;
|
11
|
+
border: 1px solid #ccc;
|
12
|
+
border-right-color: #999;
|
13
|
+
border-bottom-color: #999;
|
14
|
+
}
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
16
|
+
</style>
|
17
|
+
</head>
|
18
|
+
|
19
|
+
<body>
|
20
|
+
<!-- This file lives in public/422.html -->
|
21
|
+
<div class="dialog">
|
22
|
+
<h1>The change you wanted was rejected.</h1>
|
23
|
+
<p>Maybe you tried to change something you didn't have access to.</p>
|
24
|
+
</div>
|
25
|
+
</body>
|
26
|
+
</html>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>We're sorry, but something went wrong (500)</title>
|
5
|
+
<style type="text/css">
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
7
|
+
div.dialog {
|
8
|
+
width: 25em;
|
9
|
+
padding: 0 4em;
|
10
|
+
margin: 4em auto 0 auto;
|
11
|
+
border: 1px solid #ccc;
|
12
|
+
border-right-color: #999;
|
13
|
+
border-bottom-color: #999;
|
14
|
+
}
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
16
|
+
</style>
|
17
|
+
</head>
|
18
|
+
|
19
|
+
<body>
|
20
|
+
<!-- This file lives in public/500.html -->
|
21
|
+
<div class="dialog">
|
22
|
+
<h1>We're sorry, but something went wrong.</h1>
|
23
|
+
</div>
|
24
|
+
</body>
|
25
|
+
</html>
|
File without changes
|
@@ -0,0 +1,6 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
3
|
+
|
4
|
+
APP_PATH = File.expand_path('../../config/application', __FILE__)
|
5
|
+
require File.expand_path('../../config/boot', __FILE__)
|
6
|
+
require 'rails/commands'
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'activity_engine/activity_builder'
|
3
|
+
|
4
|
+
describe ActivityEngine::ActivityBuilder do
|
5
|
+
let(:configuration) {
|
6
|
+
lambda {|config,context|
|
7
|
+
config.subject = context
|
8
|
+
config.message = 'Hello World!'
|
9
|
+
}
|
10
|
+
}
|
11
|
+
let(:receiver) { lambda {|attributes|} }
|
12
|
+
subject { ActivityEngine::ActivityBuilder.new(receiver, configuration) }
|
13
|
+
let(:persisted_object) { double(persisted?: true, to_param: '1234')}
|
14
|
+
let(:non_persisted_object) { double(persisted?: false, to_param: nil)}
|
15
|
+
|
16
|
+
describe '#to_activity_data_structure' do
|
17
|
+
it do
|
18
|
+
expect {
|
19
|
+
subject.to_activity_data_structure
|
20
|
+
}.to_not raise_error
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#call' do
|
25
|
+
it "" do
|
26
|
+
receiver.should_receive(:call)
|
27
|
+
expect {
|
28
|
+
subject.call(persisted_object)
|
29
|
+
}.to change{subject.message}.from(nil).to("Hello World!")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe '#subject=' do
|
34
|
+
it 'accepts a subject that is persisted' do
|
35
|
+
expect {
|
36
|
+
subject.subject = persisted_object
|
37
|
+
}.to_not raise_error
|
38
|
+
end
|
39
|
+
it 'rejects a subject that is not persisted' do
|
40
|
+
expect {
|
41
|
+
subject.subject = non_persisted_object
|
42
|
+
}.to raise_error
|
43
|
+
end
|
44
|
+
it 'rejects a subject that does not respond_to persisted?' do
|
45
|
+
expect {
|
46
|
+
subject.subject = ""
|
47
|
+
}.to raise_error(NoMethodError)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
it { should respond_to :current_user= }
|
52
|
+
it { should respond_to :message= }
|
53
|
+
it { should respond_to :activity_type= }
|
54
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'activity_engine/activity_data_structure'
|
3
|
+
|
4
|
+
describe ActivityEngine::ActivityDataStructure do
|
5
|
+
subject { ActivityEngine::ActivityDataStructure.new }
|
6
|
+
it { should respond_to :current_user }
|
7
|
+
it { should respond_to :subject }
|
8
|
+
it { should respond_to :message }
|
9
|
+
it { should respond_to :activity_type }
|
10
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'activity_engine/context_builder'
|
3
|
+
|
4
|
+
describe ActivityEngine::ContextBuilder do
|
5
|
+
class MockContext
|
6
|
+
attr_reader :parameter, :counter
|
7
|
+
def initialize(parameter)
|
8
|
+
@parameter = parameter
|
9
|
+
@counter = 0
|
10
|
+
end
|
11
|
+
def increment_counter; @counter += 1; end
|
12
|
+
end
|
13
|
+
let(:class_name) { 'MockContext' }
|
14
|
+
|
15
|
+
subject { ActivityEngine::ContextBuilder.new(class_name, method_name) }
|
16
|
+
|
17
|
+
describe 'wrap!' do
|
18
|
+
let(:wrapper_logger) { [] }
|
19
|
+
let(:parameter) { 'hello world' }
|
20
|
+
let(:object) { MockContext.new(parameter)}
|
21
|
+
let(:method_name) { 'increment_counter' }
|
22
|
+
let(:wrapper) {
|
23
|
+
lambda { |context|
|
24
|
+
wrapper_logger << context
|
25
|
+
}
|
26
|
+
}
|
27
|
+
it 'wraps the context method and yields' do
|
28
|
+
subject.wrap!(wrapper)
|
29
|
+
expect {
|
30
|
+
expect {
|
31
|
+
object.increment_counter
|
32
|
+
}.to change { wrapper_logger.count }.by(1)
|
33
|
+
}.to change { object.counter }.by(1)
|
34
|
+
|
35
|
+
expect {
|
36
|
+
expect {
|
37
|
+
object.increment_counter
|
38
|
+
}.to change { wrapper_logger.count }.by(1)
|
39
|
+
}.to change { object.counter }.by(1)
|
40
|
+
|
41
|
+
expect(wrapper_logger).to eq([object, object])
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'preserves the return value' do
|
45
|
+
subject.wrap!(wrapper)
|
46
|
+
expect(object.increment_counter).to eq(1)
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'only wraps a method once' do
|
50
|
+
wrapper = lambda {|a|}
|
51
|
+
|
52
|
+
subject.wrap!(wrapper)
|
53
|
+
subject.wrap!(wrapper)
|
54
|
+
subject.wrap!(wrapper)
|
55
|
+
|
56
|
+
wrapper.should_receive(:call).once
|
57
|
+
object.increment_counter
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe 'method extraction' do
|
62
|
+
describe 'for existing instance method' do
|
63
|
+
let(:method_name) { 'increment_counter' }
|
64
|
+
it 'extracts the context class' do
|
65
|
+
expect(subject.context_class).to eq(MockContext)
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'extracts the context method' do
|
69
|
+
expect(subject.context_method).to eq(MockContext.instance_method(:increment_counter))
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe 'for missing instance method' do
|
74
|
+
let(:method_name) { 'method_does_not_exist' }
|
75
|
+
it {
|
76
|
+
expect{
|
77
|
+
subject
|
78
|
+
}.to raise_error(NameError)
|
79
|
+
}
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'activity_engine'
|
3
|
+
|
4
|
+
describe ActivityEngine do
|
5
|
+
class Cat < PersistenceLayer
|
6
|
+
def initialize(name)
|
7
|
+
super()
|
8
|
+
@name = name
|
9
|
+
end
|
10
|
+
attr_reader :name
|
11
|
+
def eat(food); food; end
|
12
|
+
end
|
13
|
+
Food = Struct.new(:name)
|
14
|
+
|
15
|
+
describe '.register' do
|
16
|
+
let(:cat) { Cat.new('Beautiful Steve') }
|
17
|
+
let(:food) { Food.new('catsup') }
|
18
|
+
let(:receiver) { ActivityEngine::Activity }
|
19
|
+
|
20
|
+
it 'reports when the method is called' do
|
21
|
+
ActivityEngine.register(Cat, :eat, receiver) do |config, context|
|
22
|
+
config.subject = context
|
23
|
+
config.activity_type = 'Cat#eat'
|
24
|
+
end
|
25
|
+
cat.eat(food)
|
26
|
+
expect(receiver.last.subject).to eq(cat)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe 'entry creation' do
|
31
|
+
it 'creates an entry for a persisted object'
|
32
|
+
it 'requires an object to be persisted'
|
33
|
+
it 'extracts the requesting user from the context'
|
34
|
+
it 'extracts the entry type from the context'
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'entry finder scopes' do
|
38
|
+
it 'has a scope for finding based on the persisted object'
|
39
|
+
it 'has a scope for finding based on a user'
|
40
|
+
it 'has a scope for finding based on an entry type'
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module ActivityEngine
|
4
|
+
describe Activity do
|
5
|
+
subject { ActivityEngine::Activity.new }
|
6
|
+
let(:object) { PersistenceLayer.new }
|
7
|
+
|
8
|
+
describe 'with persisted object' do
|
9
|
+
it 'should marshal the subject' do
|
10
|
+
subject.subject = object
|
11
|
+
expect(subject.subject).to eq(object)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should capture the subject id' do
|
15
|
+
subject.subject = object
|
16
|
+
expect(subject.subject_id).to eq(object.to_param)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should capture the subject type' do
|
20
|
+
subject.subject = object
|
21
|
+
expect(subject.subject_type).to eq(object.class.to_s)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'with a non persisted object' do
|
26
|
+
|
27
|
+
it 'raise exception if the object is not persisted' do
|
28
|
+
def object.persisted?; false; end
|
29
|
+
expect {
|
30
|
+
subject.subject = object
|
31
|
+
}.to raise_error(ActivityEngine::UnpersistedSubjectError)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'raise exception if the object does not respond to persisted' do
|
35
|
+
expect {
|
36
|
+
subject.subject = 2
|
37
|
+
}.to raise_error(NoMethodError)
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
ENV["RAILS_ENV"] ||= 'test'
|
2
|
+
|
3
|
+
if ENV['COVERAGE']
|
4
|
+
require 'simplecov'
|
5
|
+
SimpleCov.command_name "spec"
|
6
|
+
SimpleCov.start 'rails' do
|
7
|
+
add_filter '/spec'
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
13
|
+
require File.expand_path('../spec_patch', __FILE__)
|
14
|
+
require "rails/test_help"
|
15
|
+
require 'rspec/rails'
|
16
|
+
|
17
|
+
Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each {|f| require f}
|
18
|
+
|
19
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
20
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
21
|
+
# Require this file using `require "spec_helper"` to ensure that it is only
|
22
|
+
# loaded once.
|
23
|
+
#
|
24
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
25
|
+
RSpec.configure do |config|
|
26
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
27
|
+
config.run_all_when_everything_filtered = true
|
28
|
+
config.filter_run :focus
|
29
|
+
|
30
|
+
# Run specs in random order to surface order dependencies. If you find an
|
31
|
+
# order dependency and want to debug it, you can fix the order by providing
|
32
|
+
# the seed, which is printed after each run.
|
33
|
+
# --seed 1234
|
34
|
+
config.order = 'random'
|
35
|
+
end
|
data/spec/spec_patch.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# Why: http://groups.google.com/group/cukes/browse_thread/thread/5682d41436e235d7
|
2
|
+
begin
|
3
|
+
require 'minitest/unit'
|
4
|
+
# Don't attempt to monkeypatch if the require succeeded but didn't
|
5
|
+
# define the actual module.
|
6
|
+
#
|
7
|
+
# https://github.com/cucumber/cucumber/pull/93
|
8
|
+
# http://youtrack.jetbrains.net/issue/TW-17414
|
9
|
+
if defined?(MiniTest::Unit)
|
10
|
+
class MiniTest::Unit
|
11
|
+
class << self
|
12
|
+
@@installed_at_exit = true
|
13
|
+
end
|
14
|
+
|
15
|
+
def run(*)
|
16
|
+
0
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
rescue LoadError => ignore
|
21
|
+
end
|
22
|
+
|
23
|
+
# Do the same for Test::Unit
|
24
|
+
begin
|
25
|
+
require 'test/unit'
|
26
|
+
# Don't attempt to monkeypatch if the require succeeded but didn't
|
27
|
+
# define the actual module.
|
28
|
+
#
|
29
|
+
# https://github.com/cucumber/cucumber/pull/93
|
30
|
+
# http://youtrack.jetbrains.net/issue/TW-17414
|
31
|
+
if defined?(Test::Unit)
|
32
|
+
module Test::Unit
|
33
|
+
def self.run?
|
34
|
+
true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# if defined?(Test::Unit::AutoRunner)
|
40
|
+
# Test::Unit::AutoRunner.need_auto_run = false
|
41
|
+
# end
|
42
|
+
rescue LoadError => ignore
|
43
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class PersistenceLayer
|
2
|
+
def self.registry
|
3
|
+
@registry ||= []
|
4
|
+
end
|
5
|
+
def initialize
|
6
|
+
self.class.registry << self
|
7
|
+
end
|
8
|
+
def self.find(id)
|
9
|
+
@registry.find {|obj| obj.to_param == Integer(id)}
|
10
|
+
end
|
11
|
+
|
12
|
+
def persisted?; true; end
|
13
|
+
def to_param; object_id; end
|
14
|
+
end
|
metadata
ADDED
@@ -0,0 +1,198 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: activity_engine
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jeremy Friesen
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-07-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.2.13
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.2.13
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sqlite3
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec-rails
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: ActivityEngine - a mountable Rails engine for activity streams
|
56
|
+
email:
|
57
|
+
- jeremy.n.friesen@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- .gitignore
|
63
|
+
- .rspec
|
64
|
+
- Gemfile
|
65
|
+
- Guardfile
|
66
|
+
- LICENSE.txt
|
67
|
+
- README.md
|
68
|
+
- Rakefile
|
69
|
+
- TODO.md
|
70
|
+
- activity_engine.gemspec
|
71
|
+
- app/assets/images/activity_engine/.gitkeep
|
72
|
+
- app/assets/javascripts/activity_engine/application.js
|
73
|
+
- app/assets/stylesheets/activity_engine/application.css
|
74
|
+
- app/controllers/activity_engine/application_controller.rb
|
75
|
+
- app/helpers/activity_engine/application_helper.rb
|
76
|
+
- app/models/activity_engine/activity.rb
|
77
|
+
- app/views/layouts/activity_engine/application.html.erb
|
78
|
+
- config/routes.rb
|
79
|
+
- db/migrate/20130722162331_create_activity_engine_activities.rb
|
80
|
+
- lib/activity_engine.rb
|
81
|
+
- lib/activity_engine/activity_builder.rb
|
82
|
+
- lib/activity_engine/activity_data_structure.rb
|
83
|
+
- lib/activity_engine/context_builder.rb
|
84
|
+
- lib/activity_engine/engine.rb
|
85
|
+
- lib/activity_engine/exceptions.rb
|
86
|
+
- lib/activity_engine/version.rb
|
87
|
+
- lib/generators/activity_engine/install_generator.rb
|
88
|
+
- lib/generators/activity_engine/register_generator.rb
|
89
|
+
- lib/generators/activity_engine/templates/activity_engine_config.rb
|
90
|
+
- lib/tasks/activity_engine_tasks.rake
|
91
|
+
- script/rails
|
92
|
+
- spec/dummy/README.rdoc
|
93
|
+
- spec/dummy/Rakefile
|
94
|
+
- spec/dummy/app/assets/javascripts/application.js
|
95
|
+
- spec/dummy/app/assets/stylesheets/application.css
|
96
|
+
- spec/dummy/app/controllers/application_controller.rb
|
97
|
+
- spec/dummy/app/helpers/application_helper.rb
|
98
|
+
- spec/dummy/app/mailers/.gitkeep
|
99
|
+
- spec/dummy/app/models/.gitkeep
|
100
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
101
|
+
- spec/dummy/config.ru
|
102
|
+
- spec/dummy/config/application.rb
|
103
|
+
- spec/dummy/config/boot.rb
|
104
|
+
- spec/dummy/config/database.yml
|
105
|
+
- spec/dummy/config/environment.rb
|
106
|
+
- spec/dummy/config/environments/development.rb
|
107
|
+
- spec/dummy/config/environments/production.rb
|
108
|
+
- spec/dummy/config/environments/test.rb
|
109
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
110
|
+
- spec/dummy/config/initializers/inflections.rb
|
111
|
+
- spec/dummy/config/initializers/mime_types.rb
|
112
|
+
- spec/dummy/config/initializers/secret_token.rb
|
113
|
+
- spec/dummy/config/initializers/session_store.rb
|
114
|
+
- spec/dummy/config/initializers/wrap_parameters.rb
|
115
|
+
- spec/dummy/config/locales/en.yml
|
116
|
+
- spec/dummy/config/routes.rb
|
117
|
+
- spec/dummy/db/schema.rb
|
118
|
+
- spec/dummy/lib/assets/.gitkeep
|
119
|
+
- spec/dummy/log/.gitkeep
|
120
|
+
- spec/dummy/public/404.html
|
121
|
+
- spec/dummy/public/422.html
|
122
|
+
- spec/dummy/public/500.html
|
123
|
+
- spec/dummy/public/favicon.ico
|
124
|
+
- spec/dummy/script/rails
|
125
|
+
- spec/lib/activity_engine/activity_builder_spec.rb
|
126
|
+
- spec/lib/activity_engine/activity_data_structure_spec.rb
|
127
|
+
- spec/lib/activity_engine/context_builder_spec.rb
|
128
|
+
- spec/lib/activity_engine_spec.rb
|
129
|
+
- spec/models/activity_engine/activity_spec.rb
|
130
|
+
- spec/spec_helper.rb
|
131
|
+
- spec/spec_patch.rb
|
132
|
+
- spec/support/persistence_layer.rb
|
133
|
+
homepage: http://github.com/ndlib/activity_engine
|
134
|
+
licenses:
|
135
|
+
- APACHE2
|
136
|
+
metadata: {}
|
137
|
+
post_install_message:
|
138
|
+
rdoc_options: []
|
139
|
+
require_paths:
|
140
|
+
- lib
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
requirements: []
|
152
|
+
rubyforge_project:
|
153
|
+
rubygems_version: 2.0.3
|
154
|
+
signing_key:
|
155
|
+
specification_version: 4
|
156
|
+
summary: ActivityEngine - a mountable Rails engine for activity streams
|
157
|
+
test_files:
|
158
|
+
- spec/dummy/README.rdoc
|
159
|
+
- spec/dummy/Rakefile
|
160
|
+
- spec/dummy/app/assets/javascripts/application.js
|
161
|
+
- spec/dummy/app/assets/stylesheets/application.css
|
162
|
+
- spec/dummy/app/controllers/application_controller.rb
|
163
|
+
- spec/dummy/app/helpers/application_helper.rb
|
164
|
+
- spec/dummy/app/mailers/.gitkeep
|
165
|
+
- spec/dummy/app/models/.gitkeep
|
166
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
167
|
+
- spec/dummy/config.ru
|
168
|
+
- spec/dummy/config/application.rb
|
169
|
+
- spec/dummy/config/boot.rb
|
170
|
+
- spec/dummy/config/database.yml
|
171
|
+
- spec/dummy/config/environment.rb
|
172
|
+
- spec/dummy/config/environments/development.rb
|
173
|
+
- spec/dummy/config/environments/production.rb
|
174
|
+
- spec/dummy/config/environments/test.rb
|
175
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
176
|
+
- spec/dummy/config/initializers/inflections.rb
|
177
|
+
- spec/dummy/config/initializers/mime_types.rb
|
178
|
+
- spec/dummy/config/initializers/secret_token.rb
|
179
|
+
- spec/dummy/config/initializers/session_store.rb
|
180
|
+
- spec/dummy/config/initializers/wrap_parameters.rb
|
181
|
+
- spec/dummy/config/locales/en.yml
|
182
|
+
- spec/dummy/config/routes.rb
|
183
|
+
- spec/dummy/db/schema.rb
|
184
|
+
- spec/dummy/lib/assets/.gitkeep
|
185
|
+
- spec/dummy/log/.gitkeep
|
186
|
+
- spec/dummy/public/404.html
|
187
|
+
- spec/dummy/public/422.html
|
188
|
+
- spec/dummy/public/500.html
|
189
|
+
- spec/dummy/public/favicon.ico
|
190
|
+
- spec/dummy/script/rails
|
191
|
+
- spec/lib/activity_engine/activity_builder_spec.rb
|
192
|
+
- spec/lib/activity_engine/activity_data_structure_spec.rb
|
193
|
+
- spec/lib/activity_engine/context_builder_spec.rb
|
194
|
+
- spec/lib/activity_engine_spec.rb
|
195
|
+
- spec/models/activity_engine/activity_spec.rb
|
196
|
+
- spec/spec_helper.rb
|
197
|
+
- spec/spec_patch.rb
|
198
|
+
- spec/support/persistence_layer.rb
|