modules 1.1.2 → 1.2.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/modules +1 -1
  3. data/lib/modules/loader.rb +22 -6
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ff9bd70ed4bbc3c8462b2a444ee10801aa0794f6
4
- data.tar.gz: 5307157838a65581d6599e0e71da499488cd4a79
3
+ metadata.gz: b36ba99ba435eed24047152bcec21629a26c5a5f
4
+ data.tar.gz: 3f165a8a3d44564b4626195f4d268ea23eb69382
5
5
  SHA512:
6
- metadata.gz: cad0b747b3b3c7137b87c2c16d047ca7742030f379bfdd513a3ab6b1661e1b3fae7b5266ed151f60de20cb92a2bc0bf4a01302686d47b084fafc381f1bbc698d
7
- data.tar.gz: f98b425cd789c94e867eb9d6d7ebfd3aff4652f032338b33445fcc058d20c0a7d7d8d41e9bff373c634bb728c39969e4a51b33dd19e8d93066f2d3df030454e8
6
+ metadata.gz: 4bf1944a9be5b0c7e2bd0f3b3091c7e8cfec80e1b563db0be98ba566e468832f37774e4adf36e74172a18824afc4ae7c634aa3c2a9152392d1fc4057e179446f
7
+ data.tar.gz: fc55bf8b9428742bfa409c19ec328bc98b5e72a0a2961f6274218eba461d2d5d1cf8c61f15b753d6fe216bf2d01fb5b45bf93c84035419a94d7699a20a2e2e0a
@@ -15,7 +15,7 @@ def main
15
15
  end
16
16
 
17
17
  opts.on('-v', '--version') do
18
- puts '1.1.2'
18
+ puts '1.2.0'
19
19
  exit
20
20
  end
21
21
  end
@@ -32,12 +32,7 @@ module Loader
32
32
  return Interop.import(id, save_the_environment: @save_the_environment)
33
33
  end
34
34
 
35
- callsite = Callsite.resolve
36
- parent = @import_called ? File.dirname(callsite) : @basepath
37
- raw = File.join(parent, id)
38
- path = File.expand_path(raw)
39
- filepath = path.end_with?('.rb') ? path : "#{path}.rb"
40
- exists = File.exist?(filepath)
35
+ filepath, exists, parent = resolve_callsite(id)
41
36
 
42
37
  if type == 'internal' && !exists
43
38
  raise "Could not resolve local module at #{path}"
@@ -58,6 +53,11 @@ module Loader
58
53
  return Interop.import(id, save_the_environment: @save_the_environment)
59
54
  end
60
55
 
56
+ def self.delete(id)
57
+ filepath, exists = resolve_callsite(id)
58
+ @cache.delete(exists ? filepath : id)
59
+ end
60
+
61
61
  module Api
62
62
  def self.import(id, type=nil)
63
63
  Loader.import(id, type)
@@ -73,6 +73,10 @@ module Loader
73
73
  Loader.export(value)
74
74
  end
75
75
 
76
+ def self.delete(id)
77
+ Loader.delete(id)
78
+ end
79
+
76
80
  def self.config(opts)
77
81
  [
78
82
  :basepath,
@@ -82,4 +86,16 @@ module Loader
82
86
  end
83
87
  end
84
88
  end
89
+
90
+ private
91
+
92
+ def self.resolve_callsite(id)
93
+ callsite = Callsite.resolve(2)
94
+ parent = @import_called ? File.dirname(callsite) : @basepath
95
+ raw = File.join(parent, id)
96
+ path = File.expand_path(raw)
97
+ filepath = path.end_with?('.rb') ? path : "#{path}.rb"
98
+ exists = File.exist?(filepath)
99
+ [filepath, exists, parent]
100
+ end
85
101
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modules
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gareth (Ari) Aye