map_by_method 0.1.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.
- data/CHANGELOG +0 -0
- data/README +3 -0
- data/Rakefile +79 -0
- data/lib/map_by_method/version.rb +9 -0
- data/lib/map_by_method.rb +34 -0
- data/test/all_tests.rb +1 -0
- data/test/test_helper.rb +2 -0
- metadata +63 -0
data/CHANGELOG
ADDED
File without changes
|
data/README
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'rake/clean'
|
4
|
+
require 'rake/packagetask'
|
5
|
+
require 'rake/gempackagetask'
|
6
|
+
require 'rake/rdoctask'
|
7
|
+
require 'rake/contrib/rubyforgepublisher'
|
8
|
+
require 'fileutils'
|
9
|
+
include FileUtils
|
10
|
+
require File.join(File.dirname(__FILE__), 'lib', 'map_by_method', 'version')
|
11
|
+
|
12
|
+
AUTHOR = "you"
|
13
|
+
EMAIL = "your contact email for bug fixes and info"
|
14
|
+
DESCRIPTION = "description of gem"
|
15
|
+
HOMEPATH = 'http://map_by_method.rubyforge.org'
|
16
|
+
|
17
|
+
|
18
|
+
NAME = "map_by_method"
|
19
|
+
REV = File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil
|
20
|
+
VERS = ENV['VERSION'] || (MapByMethod::VERSION::STRING + (REV ? ".#{REV}" : ""))
|
21
|
+
CLEAN.include ['**/.*.sw?', '*.gem', '.config']
|
22
|
+
RDOC_OPTS = ['--quiet', '--title', "map_by_method documentation",
|
23
|
+
"--opname", "index.html",
|
24
|
+
"--line-numbers",
|
25
|
+
"--main", "README",
|
26
|
+
"--inline-source"]
|
27
|
+
BIN_FILES = %w( )
|
28
|
+
|
29
|
+
desc "Packages up map_by_method gem."
|
30
|
+
task :default => [:test]
|
31
|
+
task :package => [:clean]
|
32
|
+
|
33
|
+
task :test do
|
34
|
+
require File.dirname(__FILE__) + '/test/all_tests.rb'
|
35
|
+
end
|
36
|
+
|
37
|
+
spec =
|
38
|
+
Gem::Specification.new do |s|
|
39
|
+
s.name = NAME
|
40
|
+
s.version = VERS
|
41
|
+
s.platform = Gem::Platform::RUBY
|
42
|
+
s.has_rdoc = true
|
43
|
+
s.extra_rdoc_files = ["README", "CHANGELOG"]
|
44
|
+
s.rdoc_options += RDOC_OPTS + ['--exclude', '^(examples|extras)/']
|
45
|
+
s.summary = DESCRIPTION
|
46
|
+
s.description = DESCRIPTION
|
47
|
+
s.author = AUTHOR
|
48
|
+
s.email = EMAIL
|
49
|
+
s.homepage = HOMEPATH
|
50
|
+
s.executables = BIN_FILES
|
51
|
+
s.bindir = "bin"
|
52
|
+
s.require_path = "lib"
|
53
|
+
|
54
|
+
#s.add_dependency('activesupport', '>=1.3.1')
|
55
|
+
#s.required_ruby_version = '>= 1.8.2'
|
56
|
+
|
57
|
+
s.files = %w(README CHANGELOG Rakefile) +
|
58
|
+
Dir.glob("{bin,doc,test,lib,templates,extras,website,script}/**/*") +
|
59
|
+
Dir.glob("ext/**/*.{h,c,rb}") +
|
60
|
+
Dir.glob("examples/**/*.rb") +
|
61
|
+
Dir.glob("tools/*.rb")
|
62
|
+
|
63
|
+
# s.extensions = FileList["ext/**/extconf.rb"].to_a
|
64
|
+
end
|
65
|
+
|
66
|
+
Rake::GemPackageTask.new(spec) do |p|
|
67
|
+
p.need_tar = false
|
68
|
+
p.gem_spec = spec
|
69
|
+
end
|
70
|
+
|
71
|
+
task :install do
|
72
|
+
name = "#{NAME}-#{VERS}.gem"
|
73
|
+
sh %{rake package}
|
74
|
+
sh %{sudo gem install pkg/#{name}}
|
75
|
+
end
|
76
|
+
|
77
|
+
task :uninstall => [:clean] do
|
78
|
+
sh %{sudo gem uninstall #{NAME}}
|
79
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module MapByMethod
|
2
|
+
def self.included(base)
|
3
|
+
super
|
4
|
+
|
5
|
+
base.module_eval <<-EOS
|
6
|
+
def method_missing(method, *args, &block)
|
7
|
+
super
|
8
|
+
rescue NoMethodError
|
9
|
+
error = $!
|
10
|
+
begin
|
11
|
+
re = /(map|collect|select|each|reject)_([\\w\\_]+\\??)/
|
12
|
+
if (match = method.to_s.match(re))
|
13
|
+
iterator, callmethod = match[1..2]
|
14
|
+
return self.send(iterator) {|item| item.send callmethod}
|
15
|
+
end
|
16
|
+
return self.map {|item| item.send method.to_s.singularize.to_sym}
|
17
|
+
rescue NoMethodError
|
18
|
+
nil
|
19
|
+
end
|
20
|
+
raise error
|
21
|
+
end
|
22
|
+
EOS
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
unless String.instance_methods.include? "singularize"
|
27
|
+
class String
|
28
|
+
def singularize
|
29
|
+
self.gsub(/e?s\Z/,'')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
Array.send :include, MapByMethod
|
data/test/all_tests.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Dir['**/*_test.rb'].each { |test_case| require test_case }
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.11
|
3
|
+
specification_version: 1
|
4
|
+
name: map_by_method
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.1.0
|
7
|
+
date: 2006-10-10 00:00:00 +02:00
|
8
|
+
summary: description of gem
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: your contact email for bug fixes and info
|
12
|
+
homepage: http://map_by_method.rubyforge.org
|
13
|
+
rubyforge_project:
|
14
|
+
description: description of gem
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
authors:
|
29
|
+
- you
|
30
|
+
files:
|
31
|
+
- README
|
32
|
+
- CHANGELOG
|
33
|
+
- Rakefile
|
34
|
+
- test/all_tests.rb
|
35
|
+
- test/test_helper.rb
|
36
|
+
- lib/map_by_method.rb
|
37
|
+
- lib/map_by_method
|
38
|
+
- lib/map_by_method/version.rb
|
39
|
+
test_files: []
|
40
|
+
|
41
|
+
rdoc_options:
|
42
|
+
- --quiet
|
43
|
+
- --title
|
44
|
+
- map_by_method documentation
|
45
|
+
- --opname
|
46
|
+
- index.html
|
47
|
+
- --line-numbers
|
48
|
+
- --main
|
49
|
+
- README
|
50
|
+
- --inline-source
|
51
|
+
- --exclude
|
52
|
+
- ^(examples|extras)/
|
53
|
+
extra_rdoc_files:
|
54
|
+
- README
|
55
|
+
- CHANGELOG
|
56
|
+
executables: []
|
57
|
+
|
58
|
+
extensions: []
|
59
|
+
|
60
|
+
requirements: []
|
61
|
+
|
62
|
+
dependencies: []
|
63
|
+
|