ruby_ext 0.4.6 → 0.4.7

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/Rakefile CHANGED
@@ -1,64 +1,14 @@
1
- require 'rake'
2
- require 'fileutils'
3
- current_dir = File.expand_path(File.dirname(__FILE__))
4
- Dir.chdir current_dir
1
+ lib_dir = File.expand_path(File.dirname(__FILE__))
2
+ $LOAD_PATH << lib_dir unless $LOAD_PATH.include? lib_dir
5
3
 
4
+ require 'rake_ext'
6
5
 
7
- #
8
- # Specs
9
- #
10
- require 'spec/rake/spectask'
11
-
12
- task :default => :spec
13
-
14
- Spec::Rake::SpecTask.new('spec') do |t|
15
- t.spec_files = FileList["spec/**/*_spec.rb"].select{|f| f !~ /\/_/}
16
- t.libs = ["#{current_dir}/lib"]
17
- end
18
-
19
-
20
- #
21
- # Gem
22
- #
23
- require 'rake/clean'
24
- require 'rake/gempackagetask'
25
-
26
- gem_options = {
6
+ gem_spec(
27
7
  :name => "ruby_ext",
28
- :version => "0.4.6",
29
- :summary => "Ruby language extensions",
30
- :dependencies => %w(facets)
31
- }
8
+ :version => "0.4.7",
9
+ :summary => "Ruby language extensions",
32
10
 
33
- spec = Gem::Specification.new do |s|
34
- gem_options.delete(:dependencies).each{|d| s.add_dependency d}
35
- gem_options.each{|k, v| s.send "#{k}=", v}
36
-
37
- s.author = "Alexey Petrushin"
38
- s.homepage = "http://github.com/alexeypetrushin/#{gem_options[:name]}"
39
- s.require_path = "lib"
40
- s.files = (%w{Rakefile readme.md} + Dir.glob("{lib,spec}/**/*"))
41
-
42
- s.platform = Gem::Platform::RUBY
43
- s.has_rdoc = true
44
- end
45
-
46
- package_dir = "#{current_dir}/build"
47
- Rake::GemPackageTask.new(spec) do |p|
48
- p.need_tar = true if RUBY_PLATFORM !~ /mswin/
49
- p.need_zip = true
50
- p.package_dir = package_dir
51
- end
52
-
53
- task :push do
54
- # dir = Dir.chdir package_dir do
55
- gem_file = Dir.glob("#{package_dir}/#{gem_options[:name]}*.gem").first
56
- system "gem push #{gem_file}"
57
- # end
58
- end
59
-
60
- task :clean do
61
- system "rm -r #{package_dir}"
62
- end
63
-
64
- task :release => [:gem, :push, :clean]
11
+ :author => "Alexey Petrushin",
12
+ :homepage => "http://github.com/alexeypetrushin/ruby_ext",
13
+ :dependencies => %w(facets)
14
+ )
data/lib/rake_ext.rb ADDED
@@ -0,0 +1,73 @@
1
+ require 'rake'
2
+ require 'fileutils'
3
+
4
+ #
5
+ # Rake extensions
6
+ #
7
+ def before task_name, &block
8
+ @task_counter ||= {}
9
+ counter = (@task_counter[task_name] ||= 0)
10
+ before_task_name = "#{task_name}_before_#{counter}"
11
+
12
+ task before_task_name, &block
13
+ task task_name => before_task_name
14
+
15
+ @task_counter[task_name] += 1
16
+ end
17
+
18
+ def after task_name, &block
19
+ task task_name, &block
20
+ end
21
+
22
+
23
+ #
24
+ # Spec
25
+ #
26
+ require 'rspec/core/rake_task'
27
+ task :default => :spec
28
+
29
+ RSpec::Core::RakeTask.new('spec') do |t|
30
+ t.pattern = "spec/**/[^_]*_spec.rb"
31
+ end
32
+
33
+
34
+ #
35
+ # Gem Spec, for sample look at Rakefile
36
+ #
37
+ def gem_spec options
38
+ require 'rake/clean'
39
+ require 'rake/gempackagetask'
40
+ require 'tmpdir'
41
+
42
+ spec = Gem::Specification.new do |s|
43
+ (options.delete(:dependencies) || []).each{|d| s.add_dependency d}
44
+ s.platform = options.delete(:platform) || Gem::Platform::RUBY
45
+ s.has_rdoc = options.delete(:has_rdoc) == nil ? false : true
46
+ s.require_path = options.delete(:lib) || "lib"
47
+ s.files = options.delete(:files) || (%w{Rakefile readme.md} + Dir.glob("{lib,spec}/**/*"))
48
+
49
+ # s.name = options[:name)
50
+ # s.author = options[:author)
51
+ # s.homepage = options[:homepage)
52
+
53
+ options.each{|k, v| s.send "#{k}=", v}
54
+ end
55
+
56
+ package_dir = Dir.tmpdir
57
+ Rake::GemPackageTask.new(spec) do |p|
58
+ p.need_tar = true if RUBY_PLATFORM !~ /mswin/
59
+ p.need_zip = true
60
+ p.package_dir = package_dir
61
+ end
62
+
63
+ task :push do
64
+ gem_file = Dir.glob("#{package_dir}/#{options[:name]}*.gem").first
65
+ system "gem push #{gem_file}"
66
+ end
67
+
68
+ task :clean do
69
+ system "rm -r #{package_dir}"
70
+ end
71
+
72
+ task :release => [:gem, :push, :clean]
73
+ end
data/lib/rspec_ext.rb ADDED
@@ -0,0 +1,43 @@
1
+ require 'rspec'
2
+ require 'fileutils'
3
+
4
+ RSpec.configure do |c|
5
+ c.filter_run :focus => true
6
+ c.run_all_when_everything_filtered = true
7
+ end
8
+
9
+ RSpec::Core::ExampleGroup.class_eval do
10
+ def remove_constants *args
11
+ args = args.first if args.size == 1 and args.first.is_a?(Array)
12
+ args.each{|c| Object.send :remove_const, c if Object.const_defined? c}
13
+ end
14
+
15
+ def prepare_spec_data spec_file_name
16
+ dir = File.expand_path(spec_file_name.sub(/\.rb$/, ''))
17
+ original_data_dir = dir + "_data"
18
+
19
+ FileUtils.rm_r dir if File.exist? dir
20
+ FileUtils.cp_r original_data_dir, dir
21
+
22
+ dir
23
+ end
24
+
25
+ def clean_spec_data spec_file_name
26
+ dir = spec_file_name.sub(/\.rb$/, '')
27
+ FileUtils.rm_r dir if File.exist? dir
28
+ end
29
+ end
30
+
31
+ class String
32
+ # unless "".respond_to? :dirname
33
+ def dirname
34
+ File.expand_path(File.dirname(self))
35
+ end
36
+ # end
37
+
38
+ unless "".respond_to? :parent_dirname
39
+ def parent_dirname
40
+ File.expand_path(File.dirname(self) + "/..")
41
+ end
42
+ end
43
+ end
@@ -1,5 +1,6 @@
1
1
  class ExtraBlankSlate
2
- instance_methods.each { |m| undef_method m unless m =~ /^__/ }
2
+ PRESERVE_METHODS = %w(object_id)
3
+ instance_methods.each { |m| undef_method m unless m =~ /^__/ or PRESERVE_METHODS.include?(m.to_s)}
3
4
 
4
5
  CUSTOM_UNDEFINE = [:p, :select, :puts]
5
6
 
@@ -1,8 +1,10 @@
1
1
  require 'monitor'
2
2
 
3
3
  class Module
4
- def synchronize_method *methods
5
- methods.each do |method|
4
+ def synchronize_method *methods
5
+ methods.each do |method|
6
+ raise "Can't synchronize system method #{method}" if method.to_s =~ /^__/
7
+
6
8
  als = "sync_#{escape_method(method)}"
7
9
 
8
10
  raise "Can't synchronize the '#{method}' twice!" if instance_methods.include?(als)
data/lib/rubyopt.rb ADDED
@@ -0,0 +1,7 @@
1
+ unless defined?(JRuby)
2
+ begin
3
+ gem 'rush'
4
+ autoload :Rush, 'rush'
5
+ rescue Exception
6
+ end
7
+ end
data/spec/helper.rb CHANGED
@@ -1,5 +1,4 @@
1
- require 'spec'
2
- require 'spec_ext'
1
+ require 'rspec_ext'
3
2
 
4
3
  ruby_ext_dir = File.expand_path("#{File.dirname(__FILE__)}/../..")
5
4
  $LOAD_PATH << "#{ruby_ext_dir}/lib"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_ext
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 6
10
- version: 0.4.6
9
+ - 7
10
+ version: 0.4.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Alexey Petrushin
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-11 00:00:00 +04:00
18
+ date: 2010-10-13 00:00:00 +04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -43,6 +43,8 @@ extra_rdoc_files: []
43
43
  files:
44
44
  - Rakefile
45
45
  - readme.md
46
+ - lib/rake_ext.rb
47
+ - lib/rspec_ext.rb
46
48
  - lib/ruby_ext/array.rb
47
49
  - lib/ruby_ext/basic_object.rb
48
50
  - lib/ruby_ext/class.rb
@@ -69,7 +71,7 @@ files:
69
71
  - lib/ruby_ext/synchronize.rb
70
72
  - lib/ruby_ext/tuple.rb
71
73
  - lib/ruby_ext.rb
72
- - lib/spec_ext.rb
74
+ - lib/rubyopt.rb
73
75
  - spec/_prototype_inheritance_spec.rb
74
76
  - spec/array_spec.rb
75
77
  - spec/declarative_cache_spec.rb
@@ -87,7 +89,6 @@ files:
87
89
  - spec/open_object_spec.rb
88
90
  - spec/prepare_arguments_spec.rb
89
91
  - spec/should_spec.rb
90
- - spec/spec.opts
91
92
  - spec/synchronize_spec.rb
92
93
  has_rdoc: true
93
94
  homepage: http://github.com/alexeypetrushin/ruby_ext
data/lib/spec_ext.rb DELETED
@@ -1,10 +0,0 @@
1
- require 'spec'
2
-
3
- Spec::Example::ExampleGroup.class_eval do
4
- def remove_constants *args
5
- args = args.first if args.size == 1 and args.first.is_a?(Array)
6
- # args.each{|c| raise "Invalid constant name '#{c}'!" unless c =~ /^[a-z_][a-z_0-9]*$/i}
7
- # args = args.first if args.first.is_a?(Array)
8
- args.each{|c| Object.send :remove_const, c if Object.const_defined? c}
9
- end
10
- end
data/spec/spec.opts DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- --reverse