core_ex 0.2.0 → 0.3.1

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 (41) hide show
  1. data/NEWS +39 -1
  2. data/SPEC.dyn.yml +6 -6
  3. data/SPEC.gemspec +13 -0
  4. data/SPEC.yml +3 -3
  5. data/lib/core_ex/dependencies_ext/constant_load_path.rb +23 -0
  6. data/lib/core_ex/embedded_tests.rb +29 -23
  7. data/lib/core_ex/enumerable.rb +10 -18
  8. data/lib/core_ex/exception.rb +24 -21
  9. data/lib/core_ex/file_utils.rb +51 -0
  10. data/lib/core_ex/module/attr_once.rb +41 -0
  11. data/lib/core_ex/module/import.rb +28 -0
  12. data/lib/core_ex/module/mix_in_with_args.rb +267 -0
  13. data/lib/core_ex/object/instance_eval_with_args.rb +56 -0
  14. data/lib/core_ex/object/singleton_class.rb +78 -0
  15. data/lib/core_ex/object/the_first_time.rb +32 -0
  16. data/lib/core_ex/pathname.rb +268 -164
  17. data/lib/core_ex/proc.rb +77 -0
  18. data/lib/core_ex/rakefile_base.rf +93 -51
  19. data/lib/core_ex/require.rb +43 -384
  20. data/lib/core_ex/string.rb +52 -41
  21. data/lib/core_ex/time.rb +26 -41
  22. data/lib/core_ex/try_dup.rb +68 -0
  23. data/lib/core_ex/yaml.rb +103 -100
  24. data/lib/core_ex.rb +246 -35
  25. data/lib/{core_ex/dtime.rb → d_time.rb} +36 -22
  26. data/lib/{core_ex/dumpable_proc.rb → dumpable_proc.rb} +1 -2
  27. data/lib/{core_ex/pathlist.rb → path_list.rb} +111 -63
  28. data/lib/{core_ex/temp_path.rb → temp_path.rb} +55 -41
  29. data/lib/{core_ex/test/unit/ui/yaml/testrunner.rb → test/unit/u_i/yaml/test_runner.rb} +7 -10
  30. data/lib/{core_ex/version.rb → version.rb} +4 -7
  31. data/lib/yaml_extension.rb +78 -0
  32. data/test/check-core_ex.yml +6 -8
  33. data/test/check-pkg-core_ex.yml +3 -6
  34. data/test/sanity/multiple-requires.yml +41 -17
  35. data/test/sanity/single-requires.yml +36 -20
  36. data/test/sanity-suite.yml +5 -7
  37. data/test/test-unit-setup.rb +11 -3
  38. data/test/unit-suite.yml +8 -9
  39. metadata +35 -13
  40. data/lib/core_ex/attr_once.rb +0 -36
  41. data/lib/core_ex/fileutils.rb +0 -44
@@ -1,24 +1,40 @@
1
1
  ---
2
2
 
3
- CoreEx Sanity Single Requires Test Suite:
3
+ CoreEx Sanity Single Requires Test Suite: !S::Iterate
4
4
 
5
- strategy: Glob
6
- glob: <<pwd>>/../../lib/**/*.rb
7
- regexp: !re ^<<pwd>>\/\.\.\/\.\.\/lib\/(.*)\.rb$
5
+ over: !pathlist <<pwd>>/../../lib/(*).rb
6
+ iter: [it_file, it_name]
8
7
  test:
9
- <<match>>:
10
- strategy: RUnit
11
- strategy: Cmd
12
- command: ruby
13
- exit: 0
14
- error: ""
15
- output: !re 0 failures, 0 errors$
16
- args: -I<<pwd>>/../../lib
17
- input: |
18
- require '<<match>>'
19
- require 'test/unit'
20
- class TC_ < Test::Unit::TestCase
21
- def test_definitions
22
- assert($".include?('<<match>>.rb')) #"
23
- end
24
- end
8
+ <<it_name>>: !S::Suite
9
+ attributes: !S::Cmd
10
+ command: ruby
11
+ exit: 0
12
+ error: ""
13
+ output: !re 0 failures, 0 errors$
14
+ args: -I<<pwd>>/../../lib
15
+ contents:
16
+ - require:
17
+ input: |
18
+ require 'core_ex'
19
+ require '<<it_name>>'
20
+ require 'test/unit'
21
+ class TC_ < Test::Unit::TestCase
22
+ def test_definitions
23
+ assert($LOADED_FEATURES.include?('<<it_name>>.rb'),
24
+ "<<it_name>> not in $LOADED_FEATURES")
25
+ end
26
+ end
27
+ - lazy loading:
28
+ input: |
29
+ require 'core_ex'
30
+ require 'test/unit'
31
+ class TC_ < Test::Unit::TestCase
32
+ def test_definitions
33
+ assert_nothing_raised('cannot camelmize <<it_name>>') do
34
+ @camel = '<<it_name>>'.camelize
35
+ end
36
+ assert_nothing_raised("#@camel not defined?") do
37
+ @camel.constantize
38
+ end
39
+ end
40
+ end
@@ -1,12 +1,10 @@
1
1
  ---
2
2
 
3
- CoreEx Sanity Test Suite:
3
+ CoreEx Sanity Test Suite: !S::Iterate
4
4
 
5
- strategy: Glob
6
- glob : <<pwd>>/sanity/**/*.yml
7
- regexp : !re ([^\/]*)\.yml$
5
+ over: !pathlist <<pwd>>/(sanity/**/*.yml)
6
+ iter: [it_file, it_name]
8
7
 
9
8
  test:
10
- <<match>>:
11
- strategy: Import
12
- import : <<path>>
9
+ <<it_name>>: !S::Import
10
+ import : <<it_file>>
@@ -2,10 +2,18 @@
2
2
  raise 'Do not load CoreEx before me' if defined? CoreEx
3
3
  require 'pathname'
4
4
  $VERBOSE = true
5
- $: << Pathname.new(__FILE__).dirname.parent + 'lib'
5
+ lib = (Pathname.new(__FILE__).dirname.parent + 'lib').expand_path.cleanpath
6
+ $: << lib
6
7
  args = ARGV.inject(nil) { |accu, x| (accu)? accu << x : ((x == '--')? [] : accu) } || ARGV
7
8
  path = Pathname.new(args[0]).expand_path.cleanpath
8
9
  EMBEDDED_TEST_MODE = Regexp.new(path)
10
+ $LOAD_PATH << lib.parent.parent + 'lib'
9
11
  require 'core_ex'
10
- require 'core_ex/test/unit/ui/yaml/testrunner'
11
- require path.to_s
12
+ Test::Unit::UI::Yaml::TestRunner.import!
13
+ begin
14
+ file = path.ext('').to_s.sub(/^#{lib}\/*/, '')
15
+ file.camelize.constantize unless file.empty?
16
+ rescue NameError
17
+ require file
18
+ end
19
+ run_embedded_test_sections
data/test/unit-suite.yml CHANGED
@@ -1,14 +1,13 @@
1
1
  ---
2
2
 
3
- CoreEx Unit Test Suite:
3
+ CoreEx Unit Test Suite: !S::Iterate
4
4
 
5
- strategy: Glob
6
- glob : <<pwd>>/../lib/**/*.rb
7
- regexp : !re ([^/]*)\.rb$
5
+ over : !pathlist <<pwd>>/../lib/(**/*).rb
6
+ iter : [it_file, it_name]
8
7
 
9
8
  test:
10
- <<match>>:
11
- strategy: RUnit
12
- input: !path <<pwd>>/test-unit-setup.rb
13
- args: <<path>>
14
- verbose: true
9
+ Unit test <<it_name>>: !S::RUnit
10
+ input: !path <<pwd>>/test-unit-setup.rb
11
+ args: <<it_file>>
12
+ dir: <<pwd>>
13
+ verbose: true
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.10
2
+ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: core_ex
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.0
7
- date: 2005-06-24
6
+ version: 0.3.1
7
+ date: 2005-09-16 00:00:00 +02:00
8
8
  summary: CoreEx is a proposal for a standard library extension.
9
9
  require_paths:
10
10
  - lib
@@ -19,7 +19,7 @@ description: "CoreEx is designed to provides a simple but quite useful extens
19
19
  also some new features like attr_once, DTime, TempPath, Version,
20
20
  embedded_tests, filelist (almost from rake), a common Rakefile, and an
21
21
  extension of the require system."
22
- autorequire: core_ex
22
+ autorequire:
23
23
  default_executable:
24
24
  bindir: bin
25
25
  has_rdoc: false
@@ -31,28 +31,39 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
31
31
  version: 0.0.0
32
32
  version:
33
33
  platform: ruby
34
+ signing_key:
35
+ cert_chain:
34
36
  authors:
35
37
  - Nicolas Despr�s
36
38
  - Nicolas Pouillard
37
39
  files:
38
40
  - lib/core_ex.rb
39
- - lib/core_ex/attr_once.rb
40
- - lib/core_ex/dtime.rb
41
- - lib/core_ex/dumpable_proc.rb
41
+ - lib/d_time.rb
42
+ - lib/dumpable_proc.rb
43
+ - lib/path_list.rb
44
+ - lib/temp_path.rb
45
+ - lib/version.rb
46
+ - lib/yaml_extension.rb
42
47
  - lib/core_ex/embedded_tests.rb
43
48
  - lib/core_ex/enumerable.rb
44
49
  - lib/core_ex/exception.rb
45
- - lib/core_ex/fileutils.rb
46
- - lib/core_ex/pathlist.rb
50
+ - lib/core_ex/file_utils.rb
47
51
  - lib/core_ex/pathname.rb
52
+ - lib/core_ex/proc.rb
48
53
  - lib/core_ex/rakefile_base.rf
49
54
  - lib/core_ex/require.rb
50
55
  - lib/core_ex/string.rb
51
- - lib/core_ex/temp_path.rb
52
56
  - lib/core_ex/time.rb
53
- - lib/core_ex/version.rb
57
+ - lib/core_ex/try_dup.rb
54
58
  - lib/core_ex/yaml.rb
55
- - lib/core_ex/test/unit/ui/yaml/testrunner.rb
59
+ - lib/core_ex/dependencies_ext/constant_load_path.rb
60
+ - lib/core_ex/module/attr_once.rb
61
+ - lib/core_ex/module/import.rb
62
+ - lib/core_ex/module/mix_in_with_args.rb
63
+ - lib/core_ex/object/instance_eval_with_args.rb
64
+ - lib/core_ex/object/singleton_class.rb
65
+ - lib/core_ex/object/the_first_time.rb
66
+ - lib/test/unit/u_i/yaml/test_runner.rb
56
67
  - test/check-core_ex.yml
57
68
  - test/check-pkg-core_ex.yml
58
69
  - test/resources
@@ -74,6 +85,7 @@ files:
74
85
  - Rakefile
75
86
  - README
76
87
  - SPEC.dyn.yml
88
+ - SPEC.gemspec
77
89
  - SPEC.yml
78
90
  test_files: []
79
91
  rdoc_options: []
@@ -81,4 +93,14 @@ extra_rdoc_files: []
81
93
  executables: []
82
94
  extensions: []
83
95
  requirements: []
84
- dependencies: []
96
+ dependencies:
97
+ - !ruby/object:Gem::Dependency
98
+ name: activesupport
99
+ version_requirement:
100
+ version_requirements: !ruby/object:Gem::Version::Requirement
101
+ requirements:
102
+ -
103
+ - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: 1.1.1
106
+ version:
@@ -1,36 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: ertai $
6
- # $Id: attr_once.rb 249 2005-05-31 13:23:42Z ertai $
7
-
8
-
9
- class Module
10
-
11
- # You can use this method as you use attr_reader. Must be used only with
12
- # immutable object.
13
- #
14
- # This method is imported from the Date implementation. It provides a way
15
- # to compute only once the value of getter. Basically, the first time, the
16
- # getter is used, its result is computed and stored in an attribute with the
17
- # same name. The second times only the attribute is returned.
18
- def attr_once(*ids)
19
- for id in ids
20
- module_eval <<-"end;", __FILE__, __LINE__
21
- alias_method :__#{id.to_i}__, :#{id.to_s}
22
- private :__#{id.to_i}__
23
- def #{id.to_s}(*args, &block)
24
- if defined? @__#{id.to_i}__
25
- @__#{id.to_i}__
26
- elsif ! self.frozen?
27
- @__#{id.to_i}__ ||= __#{id.to_i}__(*args, &block)
28
- else
29
- __#{id.to_i}__(*args, &block)
30
- end
31
- end
32
- end;
33
- end
34
- end
35
-
36
- end # class Module
@@ -1,44 +0,0 @@
1
- # Copyright: Copyright (c) 2005 Nicolas Pouillard. All rights reserved.
2
- # Author: Nicolas Pouillard <ertai@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: ertai $
6
- # $Id: fileutils.rb 249 2005-05-31 13:23:42Z ertai $
7
-
8
- require 'fileutils'
9
-
10
- module FileUtils
11
-
12
- alias remove_dir_without_chmod remove_dir
13
-
14
- def remove_dir (dir, force = false) #:nodoc:
15
- dir = dir.sub(%r</\z>, '')
16
- first_time_p = true
17
- begin
18
- Dir.foreach(dir) do |file|
19
- next if /\A\.\.?\z/ =~ file
20
- path = "#{dir}/#{file.untaint}"
21
- if File.symlink?(path)
22
- remove_file path, force
23
- elsif File.directory?(path)
24
- remove_dir path, force
25
- else
26
- remove_file path, force
27
- end
28
- end
29
- begin
30
- Dir.rmdir dir
31
- rescue Errno::ENOENT
32
- raise unless force
33
- end
34
- rescue
35
- if first_time_p
36
- first_time_p = false
37
- File.chmod 0777, dir
38
- retry
39
- end
40
- raise
41
- end
42
- end
43
-
44
- end