facterdb 1.7.0 → 1.8.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.
data/lib/facterdb.rb CHANGED
@@ -11,6 +11,13 @@ module FacterDB
11
11
  @database ||= "[#{facterdb_fact_files.map { |f| read_json_file(f) }.join(',')}]\n"
12
12
  end
13
13
 
14
+ # @note Call this method at the end of test suite, for example via after(:suite), to reclaim back the memory required to hold json data and filter cache
15
+ def self.cleanup
16
+ @database = nil
17
+ Thread.current[:facterdb_last_filter_seen] = nil
18
+ Thread.current[:facterdb_last_facts_seen] = nil
19
+ end
20
+
14
21
  # @return [Boolean] - returns true if we should use the default facterdb database, false otherwise
15
22
  # @note If the user passes anything to the FACTERDB_SKIP_DEFAULTDB environment variable we assume
16
23
  # they want to skip the default db
@@ -123,8 +130,16 @@ module FacterDB
123
130
 
124
131
  # @return [Array] - array of hashes of facts
125
132
  # @param filter [Object] - The filter to convert to jgrep string
126
- def self.get_facts(filter=nil)
133
+ def self.get_facts(filter=nil, cache=true)
134
+ if cache && filter && filter == Thread.current[:facterdb_last_filter_seen]
135
+ return Thread.current[:facterdb_last_facts_seen]
136
+ end
127
137
  filter_str = generate_filter_str(filter)
128
- JGrep.jgrep(database, filter_str).map { |hash| Hash[hash.map{ |k, v| [k.to_sym, v] }] }
138
+ result = JGrep.jgrep(database, filter_str).map { |hash| Hash[hash.map{ |k, v| [k.to_sym, v] }] }
139
+ if cache
140
+ Thread.current[:facterdb_last_filter_seen] = filter
141
+ Thread.current[:facterdb_last_facts_seen] = result
142
+ end
143
+ result
129
144
  end
130
145
  end
@@ -1,5 +1,5 @@
1
1
  module FacterDB
2
2
  module Version
3
- STRING = '1.7.0'
3
+ STRING = '1.8.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facterdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vox Pupuli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-19 00:00:00.000000000 Z
11
+ date: 2021-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coveralls
@@ -219,6 +219,7 @@ files:
219
219
  - facts/1.7/centos-7-i386.facts
220
220
  - facts/1.7/centos-7-x86_64.facts
221
221
  - facts/1.7/centos-8-x86_64.facts
222
+ - facts/1.7/centos-9-x86_64.facts
222
223
  - facts/1.7/debian-10-x86_64.facts
223
224
  - facts/1.7/debian-6-i386.facts
224
225
  - facts/1.7/debian-6-x86_64.facts
@@ -313,6 +314,7 @@ files:
313
314
  - facts/2.0/centos-7-i386.facts
314
315
  - facts/2.0/centos-7-x86_64.facts
315
316
  - facts/2.0/centos-8-x86_64.facts
317
+ - facts/2.0/centos-9-x86_64.facts
316
318
  - facts/2.0/darwin-14-i386.facts
317
319
  - facts/2.0/darwin-14-x86_64.facts
318
320
  - facts/2.0/darwin-15-x86_64.facts
@@ -423,6 +425,7 @@ files:
423
425
  - facts/2.1/centos-7-i386.facts
424
426
  - facts/2.1/centos-7-x86_64.facts
425
427
  - facts/2.1/centos-8-x86_64.facts
428
+ - facts/2.1/centos-9-x86_64.facts
426
429
  - facts/2.1/darwin-14-i386.facts
427
430
  - facts/2.1/darwin-14-x86_64.facts
428
431
  - facts/2.1/darwin-15-x86_64.facts
@@ -543,6 +546,7 @@ files:
543
546
  - facts/2.2/centos-7-i386.facts
544
547
  - facts/2.2/centos-7-x86_64.facts
545
548
  - facts/2.2/centos-8-x86_64.facts
549
+ - facts/2.2/centos-9-x86_64.facts
546
550
  - facts/2.2/darwin-14-i386.facts
547
551
  - facts/2.2/darwin-14-x86_64.facts
548
552
  - facts/2.2/darwin-15-x86_64.facts
@@ -663,6 +667,7 @@ files:
663
667
  - facts/2.3/centos-7-i386.facts
664
668
  - facts/2.3/centos-7-x86_64.facts
665
669
  - facts/2.3/centos-8-x86_64.facts
670
+ - facts/2.3/centos-9-x86_64.facts
666
671
  - facts/2.3/darwin-14-i386.facts
667
672
  - facts/2.3/darwin-14-x86_64.facts
668
673
  - facts/2.3/darwin-15-x86_64.facts
@@ -784,6 +789,7 @@ files:
784
789
  - facts/2.4/centos-7-i386.facts
785
790
  - facts/2.4/centos-7-x86_64.facts
786
791
  - facts/2.4/centos-8-x86_64.facts
792
+ - facts/2.4/centos-9-x86_64.facts
787
793
  - facts/2.4/darwin-14-i386.facts
788
794
  - facts/2.4/darwin-14-x86_64.facts
789
795
  - facts/2.4/darwin-15-x86_64.facts
@@ -1284,6 +1290,7 @@ files:
1284
1290
  - facts/3.14/darwin-17-x86_64.facts
1285
1291
  - facts/3.14/darwin-18-x86_64.facts
1286
1292
  - facts/3.14/darwin-19-x86_64.facts
1293
+ - facts/3.14/darwin-20-x86_64.facts
1287
1294
  - facts/3.14/debian-10-x86_64.facts
1288
1295
  - facts/3.14/debian-8-x86_64.facts
1289
1296
  - facts/3.14/debian-9-x86_64.facts
@@ -1697,6 +1704,8 @@ files:
1697
1704
  - facts/4.0/centos-7-x86_64.facts
1698
1705
  - facts/4.0/debian-10-x86_64.facts
1699
1706
  - facts/4.0/solaris-11-sun4v.facts
1707
+ - facts/4.2/centos-9-x86_64.facts
1708
+ - facts/4.2/darwin-20-x86_64.facts
1700
1709
  - facts/Gemfile
1701
1710
  - facts/Vagrantfile
1702
1711
  - facts/Windows_README.md