string-mapper 0.1.0 → 0.1.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.
- data/History.txt +7 -0
- data/Rakefile +18 -19
- data/lib/string-mapper.rb +6 -6
- data/spec/string-mapper_spec.rb +12 -7
- data/string-mapper.gemspec +16 -11
- metadata +2 -2
data/History.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
== 0.1.1 2009-10-27
|
2
|
+
* 1 major enhancement:
|
3
|
+
* Map of Regexp with captures to a Proc that receive them as an array. For
|
4
|
+
example:
|
5
|
+
my_mappings["(.+) and (.+)"] => lambda { |captures|
|
6
|
+
"First #{captures[0]} and then #{captures[1]}" }
|
7
|
+
|
1
8
|
== 0.1.0 2009-09-30
|
2
9
|
|
3
10
|
* 1 major enhancement:
|
data/Rakefile
CHANGED
@@ -1,9 +1,3 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
gem 'hoe', '>= 2.1.0'
|
3
|
-
require 'hoe'
|
4
|
-
require 'fileutils'
|
5
|
-
require 'lib/string-mapper'
|
6
|
-
|
7
1
|
require 'spec/rake/spectask'
|
8
2
|
|
9
3
|
desc 'Run specs for StringMapper.'
|
@@ -11,17 +5,22 @@ Spec::Rake::SpecTask.new(:default) do |t|
|
|
11
5
|
t.spec_files = FileList['spec/string-mapper_spec.rb']
|
12
6
|
end
|
13
7
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
8
|
+
# gem stuff
|
9
|
+
if ENV['BUILDING_NEWGEM']
|
10
|
+
require 'rubygems'
|
11
|
+
gem 'hoe', '>= 2.1.0'
|
12
|
+
require 'hoe'
|
13
|
+
require 'fileutils'
|
14
|
+
require 'lib/string-mapper'
|
15
|
+
require 'newgem/tasks'
|
16
|
+
|
17
|
+
Hoe.plugin :newgem
|
18
|
+
|
19
|
+
$hoe = Hoe.spec 'string-mapper' do
|
20
|
+
self.summary = 'String extension for conversions based on dynamic mappings'
|
21
|
+
self.version = StringMapper::VERSION::STRING
|
22
|
+
self.developer 'Fernando García Samblas', 'fernando.garcia@the-cocktail.com'
|
23
|
+
self.rubyforge_name = self.name # TODO this is default value
|
24
|
+
self.extra_deps = [['activesupport','>= 1.2.0']]
|
25
|
+
end
|
23
26
|
end
|
24
|
-
|
25
|
-
require 'newgem/tasks'
|
26
|
-
Dir['tasks/**/*.rake'].each { |t| load t }
|
27
|
-
|
data/lib/string-mapper.rb
CHANGED
@@ -29,14 +29,10 @@ module StringMapper #:nodoc:
|
|
29
29
|
class VERSION #:nodoc:
|
30
30
|
MAJOR = 0
|
31
31
|
MINOR = 1
|
32
|
-
TINY =
|
32
|
+
TINY = 1
|
33
33
|
PATCH = nil # Set to nil for official release
|
34
34
|
|
35
35
|
STRING = [MAJOR, MINOR, TINY, PATCH].compact.join('.')
|
36
|
-
|
37
|
-
def to_s
|
38
|
-
STRING
|
39
|
-
end
|
40
36
|
end
|
41
37
|
end
|
42
38
|
|
@@ -57,7 +53,11 @@ class String
|
|
57
53
|
mapping = if value.is_a?(String)
|
58
54
|
eval('"'+value+'"')
|
59
55
|
elsif value.is_a?(Proc)
|
60
|
-
|
56
|
+
if $~.captures.any?
|
57
|
+
value.call $~.captures
|
58
|
+
else
|
59
|
+
value.call
|
60
|
+
end
|
61
61
|
else
|
62
62
|
value
|
63
63
|
end
|
data/spec/string-mapper_spec.rb
CHANGED
@@ -41,16 +41,21 @@ describe "String.add_mapper(:target)" do
|
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'should convert from RegExps using matched captures in the returned value' do
|
44
|
-
String.target_mappings[/In the (.+) of the (.+)$/i] = '#{$1.downcase}
|
45
|
-
'In the Name of the Father'.to_target.should == 'name
|
44
|
+
String.target_mappings[/In the (.+) of the (.+)$/i] = '#{$1.downcase} of #{$2.downcase}'
|
45
|
+
'In the Name of the Father'.to_target.should == 'name of father'
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'should execute the value if it is a Proc object' do
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
String.target_mappings['new world'] = lambda {'for all of us'}
|
50
|
+
'new world'.to_target.should == 'for all of us'
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should pass matched captures as arguments to the proc object' do
|
54
|
+
String.target_mappings["(.+) new (.+)"] = lambda {|captures|
|
55
|
+
"This is a #{captures[0]} new #{captures[1]}"
|
56
|
+
}
|
57
|
+
'brand new world'.to_target.should == "This is a brand new world"
|
58
|
+
|
54
59
|
end
|
55
60
|
end
|
56
61
|
|
data/string-mapper.gemspec
CHANGED
@@ -1,30 +1,35 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
require 'rake'
|
3
2
|
|
4
3
|
Gem::Specification.new do |s|
|
5
4
|
s.name = %q{string-mapper}
|
6
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.1"
|
6
|
+
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Fernando
|
9
|
-
s.
|
10
|
-
s.
|
11
|
-
s.email =
|
12
|
-
s.
|
13
|
-
s.
|
8
|
+
s.authors = ["Fernando Garc\303\255a Samblas"]
|
9
|
+
s.date = %q{2009-10-27}
|
10
|
+
s.description = %q{}
|
11
|
+
s.email = ["fernando.garcia@the-cocktail.com"]
|
12
|
+
s.extra_rdoc_files = ["History.txt", "Manifest.txt"]
|
13
|
+
s.files = ["COPYING", "History.txt", "Manifest.txt", "README.markdown", "Rakefile", "init.rb", "lib/string-mapper.rb", "spec/string-mapper_spec.rb", "string-mapper.gemspec"]
|
14
|
+
s.rdoc_options = ["--main", "README.rdoc"]
|
14
15
|
s.require_paths = ["lib"]
|
15
|
-
s.
|
16
|
+
s.rubyforge_project = %q{string-mapper}
|
17
|
+
s.rubygems_version = %q{1.3.5}
|
16
18
|
s.summary = %q{String extension for conversions based on dynamic mappings}
|
17
19
|
|
18
20
|
if s.respond_to? :specification_version then
|
19
21
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
20
|
-
s.specification_version =
|
22
|
+
s.specification_version = 3
|
21
23
|
|
22
|
-
if
|
24
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
23
25
|
s.add_runtime_dependency(%q<activesupport>, [">= 1.2.0"])
|
26
|
+
s.add_development_dependency(%q<hoe>, [">= 2.3.3"])
|
24
27
|
else
|
25
28
|
s.add_dependency(%q<activesupport>, [">= 1.2.0"])
|
29
|
+
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
26
30
|
end
|
27
31
|
else
|
28
32
|
s.add_dependency(%q<activesupport>, [">= 1.2.0"])
|
33
|
+
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
29
34
|
end
|
30
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: string-mapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Fernando Garc\xC3\xADa Samblas"
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-27 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|