mcfly 0.0.2 → 0.0.3
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.
- data/README.md +7 -11
- data/lib/mcfly/has_mcfly.rb +3 -4
- data/lib/mcfly/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Mcfly is a database table versioning system. It's useful for tracking
|
4
4
|
and auditing changes to database tables. It's also very easy to
|
5
|
-
access the
|
5
|
+
access the state of Mcfly tables at any point in its history.
|
6
6
|
|
7
7
|

|
8
8
|
|
@@ -50,16 +50,15 @@ of the usual `ActiveRecord::Migration`.
|
|
50
50
|
t.decimal :coupon, null: false
|
51
51
|
t.integer :settlement_mm, null: false
|
52
52
|
t.integer :settlement_yy, null: false
|
53
|
-
# NULL indicates unknown price
|
54
53
|
t.decimal :price
|
55
54
|
end
|
56
55
|
end
|
57
56
|
end
|
58
57
|
|
59
|
-
These
|
58
|
+
These migrations add the necessary versioning triggers for INSERT,
|
60
59
|
UPDATE and DELETE operations. The append-only migration disallows
|
61
|
-
updates. As such, append-only Mcfly tables rows to be INSERTed
|
62
|
-
DELETEed, but not modified.
|
60
|
+
updates. As such, append-only Mcfly tables allow rows to be INSERTed
|
61
|
+
or DELETEed, but not modified.
|
63
62
|
|
64
63
|
When you declare `has_mcfly` in your model, Mcfly adds some basic
|
65
64
|
functionality to the class.
|
@@ -81,13 +80,10 @@ functionality to the class.
|
|
81
80
|
end
|
82
81
|
end
|
83
82
|
|
84
|
-
The `has_mcfly` declaration provides the `mcfly_lookup` generator
|
85
|
-
which is scopes queries to the proper timeline. Also,
|
86
|
-
`mcfly_validates_uniqueness_of` is Mcfly's scoped version of
|
87
|
-
ActiveRecord's `validates_uniqueness_of`.
|
83
|
+
The `has_mcfly` declaration provides the `mcfly_lookup` generator which scopes queries to the proper timeline. Also, `mcfly_validates_uniqueness_of` is Mcfly's scoped version of ActiveRecord's `validates_uniqueness_of`.
|
88
84
|
|
89
|
-
|
90
|
-
|
85
|
+
## Setting/Finding Responsible Party For A Change
|
86
|
+
TODO: discuss using `current_user` method in `ApplicationController`. Also, setting `Mcfly.whodunnit`.
|
91
87
|
|
92
88
|
## Implementation
|
93
89
|
|
data/lib/mcfly/has_mcfly.rb
CHANGED
@@ -24,11 +24,10 @@ module McFly
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def mcfly_lookup(name, options = {}, &block)
|
27
|
-
delorean_fn(name, options) do |
|
28
|
-
raise "time cannot be nil" if
|
29
|
-
ts = (t == Float::INFINITY) ? 'infinity' : t
|
27
|
+
delorean_fn(name, options) do |ts, *args|
|
28
|
+
raise "time cannot be nil" if ts.nil?
|
30
29
|
self.where("obsoleted_dt >= ? AND created_dt < ?", ts, ts).scoping do
|
31
|
-
block.call(
|
30
|
+
block.call(ts, *args)
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
data/lib/mcfly/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mcfly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-03-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|