simple_activity 0.1.1 → 0.1.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 +4 -4
- data/README.md +4 -0
- data/Rakefile +16 -14
- data/lib/simple_activity/models/activity.rb +10 -0
- data/lib/simple_activity/rule.rb +5 -4
- data/lib/simple_activity/services/activity_processor.rb +2 -2
- data/lib/simple_activity/services/callbacks.rb +3 -3
- data/lib/simple_activity/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 180fa617f740b557184e821d5f7be95cc93a2471
|
4
|
+
data.tar.gz: e9693c06504e6f52260cbc699806b0846bce1595
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c293ba718b25df4dac0efda86226b43686b35081f695ed81a80e22e1c9f801090744af3af3478e8465c1839b8439fd065a9a5dfff1a1b7b734b57b67e6cffca1
|
7
|
+
data.tar.gz: fa90176538bff05ddef77bef3dca0f9f468e770ff3b6b732b7388a11cbf13b767c3e771305b90a2296558bffa64ea42a7c4404a9b9737caa1f9c72e990ec35ec
|
data/README.md
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
SimpleActivity is a gem to record, display and reuse users activities for
|
4
4
|
Rails app, in a fast, flexible and extendable way.
|
5
5
|
|
6
|
+
## Demo
|
7
|
+
|
8
|
+
[Demo site](http://intense-crag-2356.herokuapp.com/) and [source](https://github.com/billychan/simple_activity_demo402)
|
9
|
+
|
6
10
|
## Features
|
7
11
|
* **Fast** - SimpleActivity is built with speed in mind. Normally activities involve
|
8
12
|
several models and hard to eager load. SimpleActivity allows you define cache
|
data/Rakefile
CHANGED
@@ -16,23 +16,25 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
16
16
|
rdoc.rdoc_dir = 'rdoc'
|
17
17
|
rdoc.title = 'SimpleActivity'
|
18
18
|
rdoc.options << '--line-numbers'
|
19
|
-
rdoc.rdoc_files.include('README.
|
19
|
+
rdoc.rdoc_files.include('README.md')
|
20
20
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
23
|
Bundler::GemHelper.install_tasks
|
27
24
|
|
28
|
-
require '
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
25
|
+
require 'rspec/core/rake_task'
|
26
|
+
|
27
|
+
task :default => 'spec:all'
|
28
|
+
|
29
|
+
namespace :spec do
|
30
|
+
desc "Run all specs"
|
31
|
+
task :all do
|
32
|
+
unless File.exists?('spec/dummy/db/test.sqlite3')
|
33
|
+
Dir.chdir('spec/dummy') do
|
34
|
+
sh 'rake db:migrate'
|
35
|
+
sh 'rake db:test:prepare'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
sh 'bundle exec rspec'
|
39
|
+
end
|
35
40
|
end
|
36
|
-
|
37
|
-
|
38
|
-
task :default => :test
|
@@ -10,6 +10,8 @@ module SimpleActivity
|
|
10
10
|
|
11
11
|
serialize :cache
|
12
12
|
|
13
|
+
default_scope order('created_at DESC')
|
14
|
+
|
13
15
|
# Show activities belongs to an actor
|
14
16
|
def self.actor_activities(obj)
|
15
17
|
type = obj.class.to_s
|
@@ -65,6 +67,14 @@ module SimpleActivity
|
|
65
67
|
display
|
66
68
|
end
|
67
69
|
|
70
|
+
# Get rules for an activity instance.
|
71
|
+
# This can't replace similar method in Processor
|
72
|
+
#
|
73
|
+
# @param set [String] The specific rule set want to get
|
74
|
+
def rules(set=nil)
|
75
|
+
@rules ||= Rule.get_rules(self.target_type, set)
|
76
|
+
end
|
77
|
+
|
68
78
|
private
|
69
79
|
|
70
80
|
def self.cache_methods
|
data/lib/simple_activity/rule.rb
CHANGED
@@ -7,12 +7,13 @@ module SimpleActivity
|
|
7
7
|
#
|
8
8
|
# @param target [String] model class name as string. e.g. "Article"
|
9
9
|
#
|
10
|
-
# @param
|
11
|
-
#
|
10
|
+
# @param rules_set [String] the specific set to get. Default nil
|
11
|
+
# - get all rules.
|
12
12
|
#
|
13
13
|
# @return set of rule when matched. Returns nil when unmatching
|
14
|
-
def self.
|
15
|
-
all_rules.try(:[],
|
14
|
+
def self.get_rules(target_type, rules_set=nil)
|
15
|
+
rules = all_rules.try(:[], target_type)
|
16
|
+
rules_set ? rules.try(:[], rules_set) : rules
|
16
17
|
end
|
17
18
|
|
18
19
|
private
|
@@ -53,7 +53,7 @@ module SimpleActivity
|
|
53
53
|
def save
|
54
54
|
if validate_attrs
|
55
55
|
Activity.create(activity_attrs).tap do |activity|
|
56
|
-
Callbacks.
|
56
|
+
Callbacks.run(activity)
|
57
57
|
end
|
58
58
|
else
|
59
59
|
warning
|
@@ -111,7 +111,7 @@ module SimpleActivity
|
|
111
111
|
end
|
112
112
|
|
113
113
|
def cache_methods
|
114
|
-
@cache_methods ||= Rule.
|
114
|
+
@cache_methods ||= Rule.get_rules(@target_type, '_cache')
|
115
115
|
end
|
116
116
|
|
117
117
|
end
|
@@ -19,12 +19,12 @@ module SimpleActivity
|
|
19
19
|
class Callbacks
|
20
20
|
@@callbacks = []
|
21
21
|
|
22
|
-
def self.
|
22
|
+
def self.add(name, options={})
|
23
23
|
name = name.to_string unless name.kind_of?(String)
|
24
24
|
@@callbacks << {name: name}.merge!(options)
|
25
25
|
end
|
26
26
|
|
27
|
-
def self.
|
27
|
+
def self.run(activity)
|
28
28
|
@@callbacks.each do |callback|
|
29
29
|
const = Object.const_get callback[:name]
|
30
30
|
if callback[:backend]
|
@@ -35,7 +35,7 @@ module SimpleActivity
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
def self.
|
38
|
+
def self.delete(name)
|
39
39
|
@@callbacks.delete_if do |callback|
|
40
40
|
callback[:name] == name
|
41
41
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_activity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Billy Chan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|