modules 0.2.0 → 1.0.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 (5) hide show
  1. checksums.yaml +5 -13
  2. data/lib/global.rb +6 -2
  3. data/lib/loader.rb +28 -6
  4. data/lib/modules.rb +1 -1
  5. metadata +4 -4
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MmNjMjU5YTk0YjRjNWE4ZDY3ZTJjNTNkZWUxNThjODk3MWM1MGZlZg==
5
- data.tar.gz: !binary |-
6
- YTE2OWIyNmUwNjk2YmIxMDIxMDM4ZDdhYmI0ODlhOGFiZGQxNGIyZQ==
2
+ SHA1:
3
+ metadata.gz: 7b24e09537c06c0166b2007e16a4ef95b349022d
4
+ data.tar.gz: 4e9a764a755f36c527609b5038df6049a7e3c3f4
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YmQzYTIyZjI3MDM5YzdmZjJmNGFhYmVmNGYxM2RjOWM5YWRmYTgzMTEzNTY1
10
- MDcxMjhkMTdiNDNkZWM1MTkzZmI2NTU5NTg4NWNjMDk3YjA3NjdkYTg2ZTMw
11
- ZDFjZjBiZWI0NTVjNTYwNTZjMGJmMWU1YTg3MzdhNWVjMjNhMjU=
12
- data.tar.gz: !binary |-
13
- ODhiZTFkZDUxMjExMWMxYmJjNmQ1ZTM3OTI2Zjc5NGU0YzI5OTdhZmYyNmUx
14
- ODk5ZmJkNjExNWYyOWYwMjJkMjAxZTE2ZjNhYzEwM2E1ZjQ0YzQzYTc3YmE3
15
- MTg0NjM3OGUxYzBjZjBjNDQyNmQ5OGM4MGQ4M2M0NTY2MTI4ODI=
6
+ metadata.gz: 38c1e2d62347f91e6097f48c927f8ce48f818d22ea3621bd91aa87759c95695a79050182a683e266b45910426c5142c77ddf8253edfd7c93e5cdaaae52c6b181
7
+ data.tar.gz: 32d64a48a41ec2f125255ead2d6e2c8e3de9ebe266aebbd508d3d718ea8d7ab3dd6a384fa005d737c484a3b8f7078c44a0752ee5ca6e14ce7469681b63626dc1
data/lib/global.rb CHANGED
@@ -11,7 +11,11 @@ class Object
11
11
  Loader.export(value)
12
12
  end
13
13
 
14
- def import(id)
15
- Loader.import(id)
14
+ def import(id, type=nil)
15
+ Loader.import(id, type)
16
+ end
17
+
18
+ def modules
19
+ Loader::Api
16
20
  end
17
21
  end
data/lib/loader.rb CHANGED
@@ -23,14 +23,14 @@ module Loader
23
23
  end
24
24
 
25
25
  def self.import(id, type=nil)
26
- chr = id[0]
27
26
  if type == 'interop'
28
27
  return Interop.import(id)
29
28
  end
30
29
 
31
30
  prev = @path
32
31
  if @path.nil?
33
- raw = File.join(@basepath, id)
32
+ container = @basepath
33
+ raw = File.join(container, id)
34
34
  else
35
35
  container = File.dirname(@path)
36
36
  raw = File.join(container, id)
@@ -45,7 +45,12 @@ module Loader
45
45
 
46
46
  if exists
47
47
  # Prefer loading local module since we found it.
48
- Kernel.load(filepath, true) unless @cache.include?(@path)
48
+ begin
49
+ Kernel.load(filepath, true) unless @cache.include?(@path)
50
+ rescue
51
+ raise LoadError, "Could not load #{filepath} from #{container}"
52
+ end
53
+
49
54
  result = @cache[@path]
50
55
  else
51
56
  # Failover to external load.
@@ -56,8 +61,25 @@ module Loader
56
61
  result
57
62
  end
58
63
 
59
- def self.set_basepath(basepath)
60
- DEBUG.call "Set basepath to #{basepath}"
61
- @basepath = basepath
64
+ module Api
65
+ def self.import(id, type=nil)
66
+ Loader.import(id, type)
67
+ end
68
+
69
+ def self.export(name=nil, value=nil)
70
+ if name.nil?
71
+ value = yield
72
+ else
73
+ value = {name => value}
74
+ end
75
+
76
+ Loader.export(value)
77
+ end
78
+
79
+ def self.config(opts)
80
+ if opts.include?(:basepath)
81
+ Loader.instance_variable_set :@basepath, opts[:basepath]
82
+ end
83
+ end
62
84
  end
63
85
  end
data/lib/modules.rb CHANGED
@@ -9,7 +9,7 @@ module Modules
9
9
 
10
10
  file = args[0]
11
11
  abs = "#{Dir.pwd}/#{file}"
12
- Loader.set_basepath(File.dirname(abs))
12
+ Loader::Api.config(basepath: File.dirname(abs))
13
13
  Loader.import(File.basename(abs), 'internal')
14
14
  end
15
15
 
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: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gareth (Ari) Aye
@@ -33,17 +33,17 @@ require_paths:
33
33
  - lib
34
34
  required_ruby_version: !ruby/object:Gem::Requirement
35
35
  requirements:
36
- - - ! '>='
36
+ - - ">="
37
37
  - !ruby/object:Gem::Version
38
38
  version: '0'
39
39
  required_rubygems_version: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ! '>='
41
+ - - ">="
42
42
  - !ruby/object:Gem::Version
43
43
  version: '0'
44
44
  requirements: []
45
45
  rubyforge_project:
46
- rubygems_version: 2.6.8
46
+ rubygems_version: 2.4.8
47
47
  signing_key:
48
48
  specification_version: 4
49
49
  summary: Port of js module loader to ruby