fixtury 0.3.5 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/fixtury.rb +33 -0
- data/lib/fixtury/store.rb +9 -25
- data/lib/fixtury/test_hooks.rb +4 -1
- data/lib/fixtury/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58e7de147f87ad30560d984945e6cc8f9d660336f053c31365ff3fd607e491b3
|
4
|
+
data.tar.gz: f8c3d80fd0e51aba0607be65ef39c411cdb33de3427f3d3df017b039f4952012
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da1af2403b30fac589172ff22e45f7095ba5d4464d32723e555f6aa952deecfdbd4722cc02a5a3e36e75d3660a3185fd4f99c9b34434aa72513b34ff3258aa6e
|
7
|
+
data.tar.gz: 1aa8adfec328a20afc3afef72af0125636de46f7a23cafd67e9cbb38bb5e3c7c8a85f2099336e780c9c54a67e621361b07de147440a62ceed70c5254071c691c
|
data/Gemfile.lock
CHANGED
data/lib/fixtury.rb
CHANGED
@@ -11,6 +11,15 @@ require "fixtury/store"
|
|
11
11
|
# Top level namespace of the gem
|
12
12
|
module Fixtury
|
13
13
|
|
14
|
+
LOG_LEVELS = {
|
15
|
+
(LOG_LEVEL_NONE = :none) => 0,
|
16
|
+
(LOG_LEVEL_INFO = :info) => 1,
|
17
|
+
(LOG_LEVEL_DEBUG = :debug) => 2,
|
18
|
+
(LOG_LEVEL_ALL = :all) => 3,
|
19
|
+
}.freeze
|
20
|
+
|
21
|
+
DEFAULT_LOG_LEVEL = LOG_LEVEL_INFO
|
22
|
+
|
14
23
|
# Shortcut for opening the top level schema.
|
15
24
|
def self.define(&block)
|
16
25
|
schema.define(&block)
|
@@ -23,6 +32,30 @@ module Fixtury
|
|
23
32
|
@schema ||= ::Fixtury::Schema.new(parent: nil, name: "")
|
24
33
|
end
|
25
34
|
|
35
|
+
def self.log_level
|
36
|
+
return @log_level if @log_level
|
37
|
+
|
38
|
+
@log_level = ENV["FIXTURY_LOG_LEVEL"]
|
39
|
+
@log_level ||= DEFAULT_LOG_LEVEL
|
40
|
+
@log_level = @log_level.to_s.to_sym
|
41
|
+
@log_level
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.log(text = nil, level: LOG_LEVEL_DEBUG, name: nil)
|
45
|
+
desired_level = LOG_LEVELS.fetch(log_level) { DEFAULT_LOG_LEVEL }
|
46
|
+
return if desired_level == LOG_LEVEL_NONE
|
47
|
+
|
48
|
+
message_level = LOG_LEVELS.fetch(level) { LOG_LEVEL_DEBUG }
|
49
|
+
return unless desired_level >= message_level
|
50
|
+
|
51
|
+
msg = +"[fixtury"
|
52
|
+
msg << "|#{name}" if name
|
53
|
+
msg << "]"
|
54
|
+
msg << " #{text}" if text
|
55
|
+
msg << " #{yield}" if block_given?
|
56
|
+
puts msg
|
57
|
+
end
|
58
|
+
|
26
59
|
end
|
27
60
|
|
28
61
|
require "fixtury/railtie" if defined?(Rails)
|
data/lib/fixtury/store.rb
CHANGED
@@ -10,12 +10,6 @@ require "fixtury/reference"
|
|
10
10
|
module Fixtury
|
11
11
|
class Store
|
12
12
|
|
13
|
-
LOG_LEVELS = {
|
14
|
-
(LOG_LEVEL_NONE = :none) => 0,
|
15
|
-
(LOG_LEVEL_INFO = :info) => 1,
|
16
|
-
(LOG_LEVEL_DEBUG = :debug) => 2,
|
17
|
-
}.freeze
|
18
|
-
|
19
13
|
cattr_accessor :instance
|
20
14
|
|
21
15
|
attr_reader :filepath, :references, :ttl, :auto_refresh_expired
|
@@ -25,15 +19,11 @@ module Fixtury
|
|
25
19
|
def initialize(
|
26
20
|
filepath: nil,
|
27
21
|
locator: ::Fixtury::Locator.instance,
|
28
|
-
log_level: nil,
|
29
22
|
ttl: nil,
|
30
23
|
schema: nil,
|
31
24
|
auto_refresh_expired: false
|
32
25
|
)
|
33
26
|
@schema = schema || ::Fixtury.schema
|
34
|
-
@log_level = log_level.nil? ? ENV["FIXTURY_LOG_LEVEL"] : log_level
|
35
|
-
@log_level ||= LOG_LEVEL_NONE
|
36
|
-
@log_level = @log_level.to_s.to_sym
|
37
27
|
@locator = locator
|
38
28
|
@filepath = filepath
|
39
29
|
@references = @filepath && ::File.file?(@filepath) ? ::YAML.load_file(@filepath) : {}
|
@@ -59,7 +49,7 @@ module Fixtury
|
|
59
49
|
|
60
50
|
references.delete_if do |name, ref|
|
61
51
|
is_expired = ref_invalid?(ref)
|
62
|
-
log(
|
52
|
+
log("expiring #{name}", level: LOG_LEVEL_DEBUG) if is_expired
|
63
53
|
is_expired
|
64
54
|
end
|
65
55
|
end
|
@@ -81,7 +71,7 @@ module Fixtury
|
|
81
71
|
pattern = pattern[0...-1] if glob
|
82
72
|
references.delete_if do |key, _value|
|
83
73
|
hit = glob ? key.start_with?(pattern) : key == pattern
|
84
|
-
log(
|
74
|
+
log("clearing #{key}", level: LOG_LEVEL_DEBUG) if hit
|
85
75
|
hit
|
86
76
|
end
|
87
77
|
dump_to_file
|
@@ -100,7 +90,7 @@ module Fixtury
|
|
100
90
|
full_name = dfn.name
|
101
91
|
ref = references[full_name]
|
102
92
|
result = ref&.real?
|
103
|
-
log(
|
93
|
+
log(result ? "hit #{full_name}" : "miss #{full_name}", level: LOG_LEVEL_ALL)
|
104
94
|
result
|
105
95
|
end
|
106
96
|
|
@@ -114,7 +104,7 @@ module Fixtury
|
|
114
104
|
end
|
115
105
|
|
116
106
|
if ref && auto_refresh_expired && ref_invalid?(ref)
|
117
|
-
log(
|
107
|
+
log("refreshing #{full_name}", level: LOG_LEVEL_DEBUG)
|
118
108
|
clear_ref(full_name)
|
119
109
|
ref = nil
|
120
110
|
end
|
@@ -122,11 +112,11 @@ module Fixtury
|
|
122
112
|
value = nil
|
123
113
|
|
124
114
|
if ref
|
125
|
-
log(
|
115
|
+
log("hit #{full_name}", level: LOG_LEVEL_ALL)
|
126
116
|
value = load_ref(ref.value)
|
127
117
|
if value.nil?
|
128
118
|
clear_ref(full_name)
|
129
|
-
log(
|
119
|
+
log("missing #{full_name}", level: LOG_LEVEL_ALL)
|
130
120
|
end
|
131
121
|
end
|
132
122
|
|
@@ -136,7 +126,7 @@ module Fixtury
|
|
136
126
|
|
137
127
|
value = dfn.call(store: self, execution_context: execution_context)
|
138
128
|
|
139
|
-
log(
|
129
|
+
log("store #{full_name}", level: LOG_LEVEL_DEBUG)
|
140
130
|
|
141
131
|
ref = dump_ref(full_name, value)
|
142
132
|
ref = ::Fixtury::Reference.new(full_name, ref)
|
@@ -165,14 +155,8 @@ module Fixtury
|
|
165
155
|
!locator.recognize?(ref.value)
|
166
156
|
end
|
167
157
|
|
168
|
-
def log(
|
169
|
-
|
170
|
-
return if desired_level == LOG_LEVEL_NONE
|
171
|
-
|
172
|
-
message_level = LOG_LEVELS.fetch(level) { LOG_LEVEL_DEBUG }
|
173
|
-
return unless desired_level >= message_level
|
174
|
-
|
175
|
-
puts "[fixtury|#{name}] #{yield}"
|
158
|
+
def log(msg, level:)
|
159
|
+
::Fixtury.log(msg, level: level, name: "store")
|
176
160
|
end
|
177
161
|
|
178
162
|
end
|
data/lib/fixtury/test_hooks.rb
CHANGED
@@ -154,7 +154,10 @@ module Fixtury
|
|
154
154
|
|
155
155
|
def load_all_fixtury_fixtures!
|
156
156
|
(fixtury_dependencies | local_fixtury_dependencies).each do |name|
|
157
|
-
|
157
|
+
unless fixtury_loaded?(name)
|
158
|
+
::Fixtury.log("preloading #{name.inspect}", name: "test", level: ::Fixtury::LOG_LEVEL_INFO)
|
159
|
+
fixtury(name)
|
160
|
+
end
|
158
161
|
end
|
159
162
|
end
|
160
163
|
|
data/lib/fixtury/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fixtury
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Nelson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: autotest
|