husky 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/husky/data_source.rb +12 -0
- data/lib/husky/repo.rb +20 -0
- data/lib/husky/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e427216170b3e782dd8af00f3cf775ee151845bf
|
4
|
+
data.tar.gz: 4ad10354c1faf617c5d64a0877c534d2924ce21a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a18295ea4754fb394792ffde5243ee83d2d21f0363b5442e663a1b94907d1e9bd63fc57b5344fc3a9e487f096477a35e0122d03bb0722066f2c0749eb15203e5
|
7
|
+
data.tar.gz: b8ddf6b17dcc016f209388b0dd1b7a46b7f9a3bf8d9c556643e5b130cceee1976d06c4d62987264a5732a66676b306c6d71b965d9bd6015e5e9bf9e432b05730
|
data/lib/husky/data_source.rb
CHANGED
@@ -4,6 +4,18 @@ module Husky
|
|
4
4
|
|
5
5
|
class InMemory
|
6
6
|
|
7
|
+
class << self
|
8
|
+
|
9
|
+
def has_many(association)
|
10
|
+
define_method association do
|
11
|
+
singular_association = association.to_s[0..-2].to_sym
|
12
|
+
klass_id = "#{self.class.name.split('::')[1].downcase}_id".to_sym
|
13
|
+
Repository.for(singular_association).all.select { |k,v| v.send(klass_id) == self.id }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
7
19
|
attr_reader :attributes
|
8
20
|
attr_accessor :id
|
9
21
|
|
data/lib/husky/repo.rb
CHANGED
@@ -99,6 +99,26 @@ module Husky
|
|
99
99
|
|
100
100
|
end
|
101
101
|
|
102
|
+
class Registry
|
103
|
+
|
104
|
+
class << self
|
105
|
+
|
106
|
+
def register(type, repo)
|
107
|
+
repositories[type] = repo
|
108
|
+
end
|
109
|
+
|
110
|
+
def repositories
|
111
|
+
@repositories ||= {}
|
112
|
+
end
|
113
|
+
|
114
|
+
def for(type)
|
115
|
+
repositories[type]
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
121
|
+
|
102
122
|
end
|
103
123
|
|
104
124
|
end
|
data/lib/husky/version.rb
CHANGED