fixtury 0.3.5 → 0.4.0
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/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
|