core_ex 0.2.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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