fixturize 0.1.3 → 0.1.4
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 +8 -8
- data/lib/fixturize.rb +50 -43
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OThmZTgwNzhmOWFiMzZhMWE2YWFmOGRiODM4NDdkMmRmMzI5ZWVkMw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZDhiMGU0NTJjZjIxZDAxYzFhNzE0YTliNzUyMzNkZGRhYjM0Zjk0Mg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NGEyYmZmNjQzYmM2MGFkNDQwNjAxNjNjNGU3YmQ1N2Q0YzcwY2ExZjFlNzAw
|
10
|
+
MzE5NzhmYzc0NzNmMTAzMjRkN2UzYmNjNGZiYWExZjgxNTEwZDk1N2NhNTQw
|
11
|
+
NzRjNDNkYjQ0MDQxZThhNjQ0OGI5NDU4MWNjMThmOTY3MWFkOGU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
N2EwOTU4NGVhYmQwNTExYTA4NjQ0MDM1ZDFjZDUyNDA2YjY5ZGYyZjZhM2Ri
|
14
|
+
NzZiMmM4ODMxMDE4Y2JiZmUxNTBlMmU5MWQ3NDgxMWIxMTE1MGNiYjZmY2I5
|
15
|
+
OTAxMDYyZTdhNjdjZGY2MGNiZTU1NjRlMTgzMTBmY2QzOGU0MDg=
|
data/lib/fixturize.rb
CHANGED
@@ -20,8 +20,13 @@ class Fixturize
|
|
20
20
|
class << self
|
21
21
|
attr_accessor :database
|
22
22
|
attr_accessor :current_instrumentation
|
23
|
+
attr_accessor :enabled
|
23
24
|
attr_writer :database_version
|
24
25
|
|
26
|
+
def enabled?
|
27
|
+
enabled ? true : false
|
28
|
+
end
|
29
|
+
|
25
30
|
def database_version
|
26
31
|
@database_version ||= 0
|
27
32
|
end
|
@@ -50,48 +55,6 @@ class Fixturize
|
|
50
55
|
end
|
51
56
|
end
|
52
57
|
|
53
|
-
def instrument_database(collection_name, method_name, *args)
|
54
|
-
collection.insert_aliased_from_fixturize({
|
55
|
-
:type => INSTRUMENT_DATABASE,
|
56
|
-
:name => current_instrumentation,
|
57
|
-
:collection_name => collection_name.to_s,
|
58
|
-
:method_name => method_name.to_s,
|
59
|
-
:args => YAML.dump(args)
|
60
|
-
})
|
61
|
-
end
|
62
|
-
|
63
|
-
def instrument_ivars(ivars, context)
|
64
|
-
ivars.each do |ivar|
|
65
|
-
obj = context.instance_variable_get(ivar)
|
66
|
-
|
67
|
-
# TODO: Use duck typing?
|
68
|
-
if defined?(MongoMapper) && obj.kind_of?(MongoMapper::Document)
|
69
|
-
collection.insert_aliased_from_fixturize({
|
70
|
-
:type => INSTRUMENT_IVARS,
|
71
|
-
:name => current_instrumentation,
|
72
|
-
:ivar => ivar,
|
73
|
-
:model => obj.class.to_s,
|
74
|
-
:id => obj.id
|
75
|
-
})
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
def load_data_from(instrumentation)
|
81
|
-
collection = database.collection(instrumentation['collection_name'])
|
82
|
-
collection.send(instrumentation['method_name'], *YAML.load(instrumentation['args']))
|
83
|
-
end
|
84
|
-
|
85
|
-
def load_ivars_from(instrumentation, target_obj)
|
86
|
-
ivar = instrumentation['ivar']
|
87
|
-
model_str = instrumentation['model']
|
88
|
-
id = instrumentation['id']
|
89
|
-
|
90
|
-
model = Object.const_get(model_str)
|
91
|
-
obj = model.find(id)
|
92
|
-
target_obj.instance_variable_set(ivar, obj)
|
93
|
-
end
|
94
|
-
|
95
58
|
def refresh!(name = nil)
|
96
59
|
if name
|
97
60
|
collection.remove({ :name => name.to_s })
|
@@ -101,6 +64,8 @@ class Fixturize
|
|
101
64
|
end
|
102
65
|
|
103
66
|
def fixturize(name = nil, &block)
|
67
|
+
return yield if !enabled?
|
68
|
+
|
104
69
|
if !name && block.respond_to?(:source_location)
|
105
70
|
# is this portable?
|
106
71
|
name = block.source_location.join(":")
|
@@ -133,8 +98,50 @@ class Fixturize
|
|
133
98
|
end
|
134
99
|
end
|
135
100
|
|
101
|
+
def _instrument_database(collection_name, method_name, *args)
|
102
|
+
collection.insert_aliased_from_fixturize({
|
103
|
+
:type => INSTRUMENT_DATABASE,
|
104
|
+
:name => current_instrumentation,
|
105
|
+
:collection_name => collection_name.to_s,
|
106
|
+
:method_name => method_name.to_s,
|
107
|
+
:args => YAML.dump(args)
|
108
|
+
})
|
109
|
+
end
|
110
|
+
|
136
111
|
private
|
137
112
|
|
113
|
+
def instrument_ivars(ivars, context)
|
114
|
+
ivars.each do |ivar|
|
115
|
+
obj = context.instance_variable_get(ivar)
|
116
|
+
|
117
|
+
# TODO: Use duck typing?
|
118
|
+
if defined?(MongoMapper) && obj.kind_of?(MongoMapper::Document)
|
119
|
+
collection.insert_aliased_from_fixturize({
|
120
|
+
:type => INSTRUMENT_IVARS,
|
121
|
+
:name => current_instrumentation,
|
122
|
+
:ivar => ivar,
|
123
|
+
:model => obj.class.to_s,
|
124
|
+
:id => obj.id
|
125
|
+
})
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
def load_data_from(instrumentation)
|
131
|
+
collection = database.collection(instrumentation['collection_name'])
|
132
|
+
collection.send(instrumentation['method_name'], *YAML.load(instrumentation['args']))
|
133
|
+
end
|
134
|
+
|
135
|
+
def load_ivars_from(instrumentation, target_obj)
|
136
|
+
ivar = instrumentation['ivar']
|
137
|
+
model_str = instrumentation['model']
|
138
|
+
id = instrumentation['id']
|
139
|
+
|
140
|
+
model = Object.const_get(model_str)
|
141
|
+
obj = model.find(id)
|
142
|
+
target_obj.instance_variable_set(ivar, obj)
|
143
|
+
end
|
144
|
+
|
138
145
|
def caller_of_block(block)
|
139
146
|
block.binding.eval("self")
|
140
147
|
end
|
@@ -153,7 +160,7 @@ class Fixturize
|
|
153
160
|
alias_method :#{method_name}_aliased_from_fixturize, :#{method_name}
|
154
161
|
|
155
162
|
def #{method_name}(*args, &block)
|
156
|
-
Fixturize.
|
163
|
+
Fixturize._instrument_database(@name, :#{method_name}, *args, &block)
|
157
164
|
#{method_name}_aliased_from_fixturize(*args, &block)
|
158
165
|
end
|
159
166
|
end
|