rid 0.5.1 → 0.5.2
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/lib/rid/makros.rb +11 -7
- data/lib/rid/version.rb +1 -1
- data/rid.gemspec +2 -2
- data/spec/rid/makros_spec.rb +10 -0
- metadata +3 -3
data/lib/rid/makros.rb
CHANGED
@@ -73,24 +73,28 @@ module Rid
|
|
73
73
|
# injects a makro and yields block with the filenames for found makros
|
74
74
|
#
|
75
75
|
def inject_makro!(makro, &block)
|
76
|
+
matcher = /\/\/\s*!#{makro}\s+[\S]+$/
|
77
|
+
|
76
78
|
hash.flatten.each do |key, value|
|
77
79
|
next unless value.is_a?(String)
|
78
80
|
|
79
81
|
# do not try to inject makros in attachments, libs and injections array
|
80
82
|
next if key =~ /^_attachments|libs|injections/
|
81
83
|
|
82
|
-
|
83
|
-
|
84
|
-
|
84
|
+
while value =~ matcher do
|
85
|
+
value = value.sub(matcher) do |match|
|
86
|
+
start = Regexp.last_match.begin(0)
|
87
|
+
filename = match.sub(/^.*!#{makro}\s*(\S+).*$/, '\1')
|
85
88
|
|
86
|
-
|
89
|
+
value = block.call(filename)
|
87
90
|
|
88
|
-
|
91
|
+
store_injection makro, key, filename, start, value.size
|
89
92
|
|
90
|
-
|
93
|
+
value
|
94
|
+
end
|
91
95
|
end
|
92
96
|
|
93
|
-
self.hash.update_at key,
|
97
|
+
self.hash.update_at key, value
|
94
98
|
end
|
95
99
|
end
|
96
100
|
|
data/lib/rid/version.rb
CHANGED
data/rid.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rid}
|
8
|
-
s.version = "0.5.
|
8
|
+
s.version = "0.5.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Johannes J. Schmidt"]
|
12
|
-
s.date = %q{2010-03-
|
12
|
+
s.date = %q{2010-03-17}
|
13
13
|
s.default_executable = %q{rid}
|
14
14
|
s.description = %q{With Couch you can easy build a standalone CouchDB application. Couch aims to bring some of the Rails beauty to CouchDB. Currently Couch supports Rails style Generators you will love, using the same awesome Thor library used in Rails3.}
|
15
15
|
s.email = %q{schmidt@netzmerk.com}
|
data/spec/rid/makros_spec.rb
CHANGED
@@ -80,5 +80,15 @@ describe "Makros" do
|
|
80
80
|
@doc.hash["key"].should == "// !json hash/json.json"
|
81
81
|
end
|
82
82
|
end
|
83
|
+
|
84
|
+
describe "many makros" do
|
85
|
+
it "should reject properly" do
|
86
|
+
@doc.hash = { "lib" => { "code.js" => "value", "other.js" => "value" }, "key" => "// !code code.js\n// !code other.js" }
|
87
|
+
@doc.inject_makros!
|
88
|
+
@doc.hash["injections"].should == [{"makro"=>"code", "size"=>5, "lib"=>"code.js", "start"=>0, "target"=>"key"}, {"makro"=>"code", "size"=>5, "lib"=>"other.js", "start"=>6, "target"=>"key"}]
|
89
|
+
@doc.reject_makros!
|
90
|
+
@doc.hash["key"].should == "// !code code.js\n// !code other.js"
|
91
|
+
end
|
92
|
+
end
|
83
93
|
end
|
84
94
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 5
|
8
|
-
-
|
9
|
-
version: 0.5.
|
8
|
+
- 2
|
9
|
+
version: 0.5.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Johannes J. Schmidt
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-03-
|
17
|
+
date: 2010-03-17 00:00:00 +01:00
|
18
18
|
default_executable: rid
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|