require-magic 0.2.1 → 0.2.2

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/README.rdoc CHANGED
@@ -4,6 +4,43 @@ Utility functions to facilitate importing (require) ruby files in complex Ruby p
4
4
  See unit tests in /test directory to see how to use the tools for the best effect.
5
5
  Using this toolset should really simplify your require statements and make your application more flexible to change.
6
6
 
7
+ == USAGE
8
+ See unit tests for demonstrations of how to use it:
9
+
10
+ To require all files within the top level folder 'data' (non-recursively)
11
+ * required_files = Require.folder('data')
12
+
13
+ The required_files returned is a list of the paths of the files that were required
14
+
15
+ To require all files within the top level folder 'data' (non-recursively) and apply tracing to see output for the process of requiring the files
16
+ * required_files = Require.folder('data')
17
+
18
+
19
+ To require all files within the top level folder 'data' recursively
20
+ * required_files = Require.rfolder('data')
21
+
22
+ To require all files within the top level folders 'data' and 'data2' (non-recursively)
23
+ * required_files = Require.rfolders(['data', 'data2'])
24
+
25
+ To require all files within the top level folders 'data' and 'data2' recursively
26
+ * required_files = Require.rfolders(['data', 'data2'])
27
+
28
+ To require files within the top level folders 'data' and 'data2' and also files within the subdirectory 'blip' if it exists
29
+ * required_files = Require.folders(['data', 'data2'], {:folders => ['blip]})
30
+
31
+ To require files within 'data/blip' and 'data2/blip' only
32
+ * required_files = Require.folders(['data', 'data2'], {:folders => ['blip], :ignore_root_files => true})
33
+
34
+ To require files within 'data' and 'data2' first and then any files within the subdirectory 'blip' (default order)
35
+ * required_files = Require.folders(['data', 'data2'], {:folders => ['blip], :root_files => :before})
36
+
37
+ To require files within 'data/blip' and 'data2/blip' first and then any files within 'data' and 'data2' folders
38
+ * required_files = Require.folders(['data', 'data2'], {:folders => ['blip], :root_files => :after})
39
+
40
+ To require files within 'data' and 'data2' first and then any files within the subdirectory 'blip'
41
+ * required_files = Require.folders(['data', 'data2'], {:folders => ['blip], :root_files => :before})
42
+
43
+
7
44
  == Note on Patches/Pull Requests
8
45
 
9
46
  * Fork the project.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.2
data/lib/require-magic.rb CHANGED
@@ -14,7 +14,7 @@ module Require
14
14
 
15
15
  puts_trace "folder:: name: #{name}", options
16
16
 
17
- if options[:root_files] == :before
17
+ if !options[:root_files] || options[:root_files] == :before
18
18
  required_files << require_root_files(name, folder_list, path, options)
19
19
  # options[:root] = false
20
20
  required_files << require_folder_list(name, folder_list, options)
@@ -64,7 +64,7 @@ protected
64
64
  else
65
65
  includes_rexp = options[:include]
66
66
  excludes_rexp = options[:exclude]
67
-
67
+
68
68
  Dir.glob(path).each {|f|
69
69
  next if excludes_rexp && match(f, excludes_rexp)
70
70
  if !includes_rexp || match(f, includes_rexp)
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{require-magic}
8
- s.version = "0.2.1"
8
+ s.version = "0.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kristian Mandrup"]
@@ -39,7 +39,8 @@ Gem::Specification.new do |s|
39
39
  "spec/require-magic_spec.rb",
40
40
  "spec/spec_helper.rb",
41
41
  "test/test_require_magic.rb",
42
- "test/test_require_magic_adv.rb"
42
+ "test/test_require_magic_adv.rb",
43
+ "test/unit_test_require.rb"
43
44
  ]
44
45
 
45
46
  if s.respond_to? :specification_version then
@@ -1,50 +1,46 @@
1
1
  require 'require-magic'
2
- require "test/unit"
2
+ require "unit_test_require"
3
3
 
4
- class TestFilter < Test::Unit::TestCase
5
-
6
- def setup
7
- @folders = ['data', 'data2']
8
- end
9
-
10
- def teardown
11
- ## Nothing really
12
- end
4
+ class TestFilter < UnitTestRequire
13
5
 
14
6
  def test_require_folders
15
7
  required_files = Require.folders(@folders)
16
8
 
17
- found0 = !(required_files[0] =~ /data_a.rb/).nil?
18
- found1 = !(required_files[1] =~ /data2\/blap_a.rb/).nil?
19
-
9
+ found0 = match? required_files[0], 'data_a.rb'
10
+ found1 = match? required_files[1], 'data2/blap_a.rb'
11
+
20
12
  assert_equal 2, required_files.size, "Should require 2 files"
21
- assert_equal true, found0, "Should require data_a.rb in /"
22
- assert_equal true, found1, "Should require blap_a.rb in /data"
13
+ assert found0, "Should require data_a.rb in /"
14
+ assert found1, "Should require blap_a.rb in /data"
23
15
  end
24
16
 
25
17
  def test_require_folders_recursive
26
18
  options = {:recursive => true}
27
19
  required_files = Require.folders(@folders, options)
28
- assert_equal 3, required_files.size, "Should require 3 files"
20
+ assert_equal 5, required_files.size, "Should require 5 files"
29
21
  end
30
22
 
31
- def test_require_folders_recursive
23
+ def test_require_folders_recursive_include
32
24
  options = {:recursive => true, :include => 'blip_'}
33
25
  required_files = Require.folders(@folders, options)
34
26
  assert_equal 2, required_files.size, "Should require 2 files"
35
27
  end
36
28
 
37
- def test_require_folders_recursive
29
+ def test_require_folders_recursive_exclude
38
30
  options = {:recursive => true, :exclude => 'blip_'}
39
31
  required_files = Require.folders(@folders, options)
40
- assert_equal 2, required_files.size, "Should require 2 file"
32
+ assert_equal 3, required_files.size, "Should require 3 file"
41
33
  end
42
34
 
43
- def test_require_folders_recursive
35
+ def test_require_folders_recursive_default
44
36
  options = {:folders => ['blip']}
45
37
  required_files = Require.folders(@folders, options)
46
38
  assert_equal 4, required_files.size, "Should require 4 files"
39
+
40
+ found0 = match? required_files[0], 'data_a.rb'
41
+ assert found0, "Should require root files such as 'data_a.rb' first"
47
42
  end
43
+
48
44
 
49
45
  end
50
46
 
@@ -1,17 +1,7 @@
1
1
  require 'require-magic'
2
- require "test/unit"
2
+ require "unit_test_require"
3
3
 
4
- class TestFilter < Test::Unit::TestCase
5
-
6
- def setup
7
- @folders = ['data', 'data2']
8
- end
9
-
10
- def teardown
11
- ## Nothing really
12
- end
13
-
14
-
4
+ class TestRequireAdv < UnitTestRequire
15
5
 
16
6
  def test_require_folders_recursive
17
7
  options = {:folders => ['blip'], :ignore_root_files => true}
@@ -23,17 +13,24 @@ class TestFilter < Test::Unit::TestCase
23
13
  options = {:folders => ['blip'], :root_files => :before}
24
14
  required_files = Require.folders(@folders, options)
25
15
  assert_equal 4, required_files.size, "Should require 4 files"
16
+
17
+ root_first = match?(required_files[0], 'data_a.rb')
18
+ assert root_first, "First required file should be root file 'data_a.rb'"
26
19
  end
27
20
 
28
- def test_require_folders_root_folders_before
21
+ def test_require_folders_root_folders_after
29
22
  options = {:folders => ['blip'], :root_files => :after}
30
23
  required_files = Require.folders(@folders, options)
31
24
  assert_equal 4, required_files.size, "Should require 4 files"
25
+
26
+ root_last = match?(required_files[2], 'data_a.rb')
27
+ assert root_last, "Last required file of 'data' should be root file 'data_a.rb'"
32
28
  end
33
29
 
34
30
  def test_require_folders_root_folders_before_but_ignore
35
- options = {:folders => ['blip'], :root_files => :after, :ignore_root_files => true}
31
+ options = {:folders => ['blip'], :root_files => :before, :ignore_root_files => true}
36
32
  required_files = Require.folders(@folders, options)
33
+
37
34
  assert_equal 3, required_files.size, "Should require 3 files"
38
35
  end
39
36
 
@@ -43,5 +40,15 @@ class TestFilter < Test::Unit::TestCase
43
40
  assert_equal 3, required_files.size, "Should require 3 files"
44
41
  end
45
42
 
43
+ def test_require_folders_recursive_data_root_folders_after
44
+ options = {:folders => ['blip'], :root_files => :after}
45
+ required_files = Require.folders('data', options)
46
+ assert_equal 3, required_files.size, "Should require 3 files"
47
+
48
+ root_last = match?(required_files[2], 'data_a.rb')
49
+
50
+ assert root_last, "Last required file should be root file 'data_a.rb'"
51
+ end
52
+
46
53
 
47
54
  end
@@ -0,0 +1,16 @@
1
+ require "test/unit"
2
+
3
+ class UnitTestRequire < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @folders = ['data', 'data2']
7
+ end
8
+
9
+ def match?(expr, rexp)
10
+ !(expr =~ /#{Regexp.escape(rexp)}/).nil?
11
+ end
12
+
13
+ def test_me
14
+ assert true, "true"
15
+ end
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: require-magic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kristian Mandrup
@@ -77,3 +77,4 @@ test_files:
77
77
  - spec/spec_helper.rb
78
78
  - test/test_require_magic.rb
79
79
  - test/test_require_magic_adv.rb
80
+ - test/unit_test_require.rb