ruby-plsql 0.2.2 → 0.2.3
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 +8 -0
- data/README.txt +2 -2
- data/lib/plsql/connection.rb +0 -421
- data/lib/plsql/jdbc_connection.rb +302 -0
- data/lib/plsql/oci_connection.rb +165 -0
- data/lib/plsql/procedure.rb +3 -0
- data/lib/ruby_plsql.rb +2 -2
- data/lib/ruby_plsql/version.rb +1 -1
- data/spec/plsql/procedure_spec.rb +102 -3
- data/spec/spec_helper.rb +14 -2
- metadata +15 -24
- data/Manifest.txt +0 -33
- data/Rakefile +0 -4
- data/config/hoe.rb +0 -70
- data/config/requirements.rb +0 -17
- data/log/debug.log +0 -0
- data/script/destroy +0 -14
- data/script/generate +0 -14
- data/script/txt2html +0 -74
- data/setup.rb +0 -1585
- data/tasks/deployment.rake +0 -34
- data/tasks/environment.rake +0 -7
- data/tasks/rspec.rake +0 -21
- data/tasks/website.rake +0 -17
- data/website/index.html +0 -112
- data/website/index.txt +0 -53
- data/website/javascripts/rounded_corners_lite.inc.js +0 -285
- data/website/stylesheets/screen.css +0 -138
- data/website/template.rhtml +0 -48
data/lib/plsql/procedure.rb
CHANGED
@@ -82,6 +82,9 @@ module PLSQL
|
|
82
82
|
}
|
83
83
|
end
|
84
84
|
end
|
85
|
+
# if procedure is without arguments then create default empty argument list for default overload
|
86
|
+
@arguments[0] = {} if @arguments.keys.empty?
|
87
|
+
|
85
88
|
@overloads = @arguments.keys.sort
|
86
89
|
@overloads.each do |overload|
|
87
90
|
@argument_list[overload] = @arguments[overload].keys.sort {|k1, k2| @arguments[overload][k1][:position] <=> @arguments[overload][k2][:position]}
|
data/lib/ruby_plsql.rb
CHANGED
@@ -20,7 +20,7 @@ else
|
|
20
20
|
java.lang.Thread.currentThread.setContextClassLoader(JRuby.runtime.jruby_class_loader)
|
21
21
|
|
22
22
|
ojdbc_jar = "ojdbc14.jar"
|
23
|
-
if ojdbc_jar_path = ENV["PATH"].split(
|
23
|
+
if ojdbc_jar_path = ENV["PATH"].split(/[:;]/).find{|d| File.exists?(File.join(d,ojdbc_jar))}
|
24
24
|
require File.join(ojdbc_jar_path,ojdbc_jar)
|
25
25
|
else
|
26
26
|
require ojdbc_jar
|
@@ -42,6 +42,6 @@ require "time"
|
|
42
42
|
require "date"
|
43
43
|
require "bigdecimal"
|
44
44
|
|
45
|
-
%w(connection schema procedure package).each do |file|
|
45
|
+
%w(connection oci_connection jdbc_connection schema procedure package).each do |file|
|
46
46
|
require File.dirname(__FILE__) + "/plsql/#{file}"
|
47
47
|
end
|
data/lib/ruby_plsql/version.rb
CHANGED
@@ -355,7 +355,7 @@ describe "Function with output parameters" do
|
|
355
355
|
|
356
356
|
end
|
357
357
|
|
358
|
-
describe "Function without parameters" do
|
358
|
+
describe "Function or procedure without parameters" do
|
359
359
|
before(:all) do
|
360
360
|
plsql.connection = get_connection
|
361
361
|
plsql.connection.exec <<-EOS
|
@@ -366,13 +366,112 @@ describe "Function without parameters" do
|
|
366
366
|
RETURN 'dummy';
|
367
367
|
END test_no_params;
|
368
368
|
EOS
|
369
|
+
plsql.connection.exec <<-EOS
|
370
|
+
CREATE OR REPLACE PROCEDURE test_proc_no_params
|
371
|
+
IS
|
372
|
+
BEGIN
|
373
|
+
NULL;
|
374
|
+
END test_proc_no_params;
|
375
|
+
EOS
|
369
376
|
end
|
370
377
|
|
371
378
|
after(:all) do
|
372
379
|
plsql.logoff
|
373
380
|
end
|
374
381
|
|
375
|
-
it "should
|
382
|
+
it "should find function" do
|
383
|
+
PLSQL::Procedure.find(plsql, :test_no_params).should_not be_nil
|
384
|
+
end
|
385
|
+
|
386
|
+
it "should return function value" do
|
376
387
|
plsql.test_no_params.should == "dummy"
|
377
388
|
end
|
378
|
-
|
389
|
+
|
390
|
+
it "should find procedure" do
|
391
|
+
PLSQL::Procedure.find(plsql, :test_proc_no_params).should_not be_nil
|
392
|
+
end
|
393
|
+
|
394
|
+
it "should execute procedure" do
|
395
|
+
plsql.test_proc_no_params.should be_nil
|
396
|
+
end
|
397
|
+
|
398
|
+
end
|
399
|
+
|
400
|
+
describe "Function with CLOB parameter and return value" do
|
401
|
+
|
402
|
+
before(:all) do
|
403
|
+
plsql.connection = get_connection
|
404
|
+
plsql.connection.exec <<-EOS
|
405
|
+
CREATE OR REPLACE FUNCTION test_clob
|
406
|
+
( p_clob CLOB )
|
407
|
+
RETURN CLOB
|
408
|
+
IS
|
409
|
+
BEGIN
|
410
|
+
RETURN p_clob;
|
411
|
+
END test_clob;
|
412
|
+
EOS
|
413
|
+
end
|
414
|
+
|
415
|
+
after(:all) do
|
416
|
+
plsql.logoff
|
417
|
+
end
|
418
|
+
|
419
|
+
it "should find existing procedure" do
|
420
|
+
PLSQL::Procedure.find(plsql, :test_clob).should_not be_nil
|
421
|
+
end
|
422
|
+
|
423
|
+
it "should execute function and return correct value" do
|
424
|
+
large_text = 'ābčdēfghij' * 10_000
|
425
|
+
plsql.test_clob(large_text).should == large_text
|
426
|
+
end
|
427
|
+
|
428
|
+
unless defined?(JRUBY_VERSION)
|
429
|
+
|
430
|
+
it "should execute function with empty string and return nil (oci8 cannot pass empty CLOB parameter)" do
|
431
|
+
text = ''
|
432
|
+
plsql.test_clob(text).should be_nil
|
433
|
+
end
|
434
|
+
|
435
|
+
else
|
436
|
+
|
437
|
+
it "should execute function with empty string and return empty string" do
|
438
|
+
text = ''
|
439
|
+
plsql.test_clob(text).should == text
|
440
|
+
end
|
441
|
+
|
442
|
+
end
|
443
|
+
|
444
|
+
it "should execute function with nil and return nil" do
|
445
|
+
plsql.test_clob(nil).should be_nil
|
446
|
+
end
|
447
|
+
|
448
|
+
end
|
449
|
+
|
450
|
+
describe "Procedrue with CLOB parameter and return value" do
|
451
|
+
|
452
|
+
before(:all) do
|
453
|
+
plsql.connection = get_connection
|
454
|
+
plsql.connection.exec <<-EOS
|
455
|
+
CREATE OR REPLACE PROCEDURE test_clob_proc
|
456
|
+
( p_clob CLOB,
|
457
|
+
p_return OUT CLOB)
|
458
|
+
IS
|
459
|
+
BEGIN
|
460
|
+
p_return := p_clob;
|
461
|
+
END test_clob_proc;
|
462
|
+
EOS
|
463
|
+
end
|
464
|
+
|
465
|
+
after(:all) do
|
466
|
+
plsql.logoff
|
467
|
+
end
|
468
|
+
|
469
|
+
it "should find existing procedure" do
|
470
|
+
PLSQL::Procedure.find(plsql, :test_clob_proc).should_not be_nil
|
471
|
+
end
|
472
|
+
|
473
|
+
it "should execute function and return correct value" do
|
474
|
+
large_text = 'ābčdēfghij' * 10_000
|
475
|
+
plsql.test_clob_proc(large_text)[:p_return].should == large_text
|
476
|
+
end
|
477
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,8 +10,20 @@ require File.expand_path(File.dirname(__FILE__) + "/../lib/ruby_plsql")
|
|
10
10
|
|
11
11
|
def get_connection
|
12
12
|
unless defined?(JRUBY_VERSION)
|
13
|
-
|
13
|
+
begin
|
14
|
+
OCI8.new("hr","hr","xe")
|
15
|
+
# if connection fails then sleep 5 seconds and retry
|
16
|
+
rescue OCIError
|
17
|
+
sleep 5
|
18
|
+
OCI8.new("hr","hr","xe")
|
19
|
+
end
|
14
20
|
else
|
15
|
-
|
21
|
+
begin
|
22
|
+
DriverManager.getConnection("jdbc:oracle:thin:@ubuntu710:1521:XE","hr","hr")
|
23
|
+
# if connection fails then sleep 5 seconds and retry
|
24
|
+
rescue NativeException
|
25
|
+
sleep 5
|
26
|
+
DriverManager.getConnection("jdbc:oracle:thin:@ubuntu710:1521:XE","hr","hr")
|
27
|
+
end
|
16
28
|
end
|
17
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-plsql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Raimonds Simanovskis
|
@@ -9,10 +9,19 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-10-17 00:00:00 +03:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: hoe
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.7.0
|
24
|
+
version:
|
16
25
|
description: ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL procedures.
|
17
26
|
email:
|
18
27
|
- raymonds72@gmail.com
|
@@ -23,43 +32,25 @@ extensions: []
|
|
23
32
|
extra_rdoc_files:
|
24
33
|
- History.txt
|
25
34
|
- License.txt
|
26
|
-
- Manifest.txt
|
27
35
|
- README.txt
|
28
|
-
- website/index.txt
|
29
36
|
files:
|
30
37
|
- History.txt
|
31
38
|
- License.txt
|
32
|
-
- Manifest.txt
|
33
39
|
- README.txt
|
34
|
-
- Rakefile
|
35
|
-
- config/hoe.rb
|
36
|
-
- config/requirements.rb
|
37
40
|
- lib/oradate_patch.rb
|
38
41
|
- lib/plsql/connection.rb
|
42
|
+
- lib/plsql/jdbc_connection.rb
|
43
|
+
- lib/plsql/oci_connection.rb
|
39
44
|
- lib/plsql/package.rb
|
40
45
|
- lib/plsql/procedure.rb
|
41
46
|
- lib/plsql/schema.rb
|
42
47
|
- lib/ruby_plsql.rb
|
43
48
|
- lib/ruby_plsql/version.rb
|
44
|
-
- log/debug.log
|
45
|
-
- script/destroy
|
46
|
-
- script/generate
|
47
|
-
- script/txt2html
|
48
|
-
- setup.rb
|
49
49
|
- spec/plsql/package_spec.rb
|
50
50
|
- spec/plsql/procedure_spec.rb
|
51
51
|
- spec/plsql/schema_spec.rb
|
52
52
|
- spec/spec.opts
|
53
53
|
- spec/spec_helper.rb
|
54
|
-
- tasks/deployment.rake
|
55
|
-
- tasks/environment.rake
|
56
|
-
- tasks/rspec.rake
|
57
|
-
- tasks/website.rake
|
58
|
-
- website/index.html
|
59
|
-
- website/index.txt
|
60
|
-
- website/javascripts/rounded_corners_lite.inc.js
|
61
|
-
- website/stylesheets/screen.css
|
62
|
-
- website/template.rhtml
|
63
54
|
has_rdoc: true
|
64
55
|
homepage: http://ruby-plsql.rubyforge.org
|
65
56
|
post_install_message:
|
data/Manifest.txt
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
History.txt
|
2
|
-
License.txt
|
3
|
-
Manifest.txt
|
4
|
-
README.txt
|
5
|
-
Rakefile
|
6
|
-
config/hoe.rb
|
7
|
-
config/requirements.rb
|
8
|
-
lib/oradate_patch.rb
|
9
|
-
lib/plsql/connection.rb
|
10
|
-
lib/plsql/package.rb
|
11
|
-
lib/plsql/procedure.rb
|
12
|
-
lib/plsql/schema.rb
|
13
|
-
lib/ruby_plsql.rb
|
14
|
-
lib/ruby_plsql/version.rb
|
15
|
-
log/debug.log
|
16
|
-
script/destroy
|
17
|
-
script/generate
|
18
|
-
script/txt2html
|
19
|
-
setup.rb
|
20
|
-
spec/plsql/package_spec.rb
|
21
|
-
spec/plsql/procedure_spec.rb
|
22
|
-
spec/plsql/schema_spec.rb
|
23
|
-
spec/spec.opts
|
24
|
-
spec/spec_helper.rb
|
25
|
-
tasks/deployment.rake
|
26
|
-
tasks/environment.rake
|
27
|
-
tasks/rspec.rake
|
28
|
-
tasks/website.rake
|
29
|
-
website/index.html
|
30
|
-
website/index.txt
|
31
|
-
website/javascripts/rounded_corners_lite.inc.js
|
32
|
-
website/stylesheets/screen.css
|
33
|
-
website/template.rhtml
|
data/Rakefile
DELETED
data/config/hoe.rb
DELETED
@@ -1,70 +0,0 @@
|
|
1
|
-
require 'ruby_plsql/version'
|
2
|
-
|
3
|
-
AUTHOR = 'Raimonds Simanovskis' # can also be an array of Authors
|
4
|
-
EMAIL = "raymonds72@gmail.com"
|
5
|
-
DESCRIPTION = "ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL procedures."
|
6
|
-
GEM_NAME = 'ruby-plsql' # what ppl will type to install your gem
|
7
|
-
RUBYFORGE_PROJECT = 'ruby-plsql' # The unix name for your project
|
8
|
-
HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
|
9
|
-
DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
|
10
|
-
|
11
|
-
@config_file = "~/.rubyforge/user-config.yml"
|
12
|
-
@config = nil
|
13
|
-
RUBYFORGE_USERNAME = "unknown"
|
14
|
-
def rubyforge_username
|
15
|
-
unless @config
|
16
|
-
begin
|
17
|
-
@config = YAML.load(File.read(File.expand_path(@config_file)))
|
18
|
-
rescue
|
19
|
-
puts <<-EOS
|
20
|
-
ERROR: No rubyforge config file found: #{@config_file}
|
21
|
-
Run 'rubyforge setup' to prepare your env for access to Rubyforge
|
22
|
-
- See http://newgem.rubyforge.org/rubyforge.html for more details
|
23
|
-
EOS
|
24
|
-
exit
|
25
|
-
end
|
26
|
-
end
|
27
|
-
RUBYFORGE_USERNAME.replace @config["username"]
|
28
|
-
end
|
29
|
-
|
30
|
-
|
31
|
-
REV = nil
|
32
|
-
# UNCOMMENT IF REQUIRED:
|
33
|
-
# REV = `svn info`.each {|line| if line =~ /^Revision:/ then k,v = line.split(': '); break v.chomp; else next; end} rescue nil
|
34
|
-
VERS = RubyPlsql::VERSION::STRING + (REV ? ".#{REV}" : "")
|
35
|
-
RDOC_OPTS = ['--quiet', '--title', 'ruby_plsql documentation',
|
36
|
-
"--opname", "index.html",
|
37
|
-
"--line-numbers",
|
38
|
-
"--main", "README",
|
39
|
-
"--inline-source"]
|
40
|
-
|
41
|
-
class Hoe
|
42
|
-
def extra_deps
|
43
|
-
@extra_deps.reject! { |x| Array(x).first == 'hoe' }
|
44
|
-
@extra_deps
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
# Generate all the Rake tasks
|
49
|
-
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
50
|
-
hoe = Hoe.new(GEM_NAME, VERS) do |p|
|
51
|
-
p.developer(AUTHOR, EMAIL)
|
52
|
-
p.description = DESCRIPTION
|
53
|
-
p.summary = DESCRIPTION
|
54
|
-
p.url = HOMEPATH
|
55
|
-
p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
|
56
|
-
p.test_globs = ["test/**/test_*.rb"]
|
57
|
-
p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] #An array of file patterns to delete on clean.
|
58
|
-
|
59
|
-
# == Optional
|
60
|
-
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
61
|
-
#p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
|
62
|
-
|
63
|
-
#p.spec_extras = {} # A hash of extra values to set in the gemspec.
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
|
-
CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
|
68
|
-
PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
|
69
|
-
hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
|
70
|
-
hoe.rsync_args = '-av --delete --ignore-errors'
|
data/config/requirements.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
include FileUtils
|
3
|
-
|
4
|
-
require 'rubygems'
|
5
|
-
%w[rake hoe newgem rubigen].each do |req_gem|
|
6
|
-
begin
|
7
|
-
require req_gem
|
8
|
-
rescue LoadError
|
9
|
-
puts "This Rakefile requires the '#{req_gem}' RubyGem."
|
10
|
-
puts "Installation: gem install #{req_gem} -y"
|
11
|
-
exit
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
$:.unshift(File.join(File.dirname(__FILE__), %w[.. lib]))
|
16
|
-
|
17
|
-
require 'ruby_plsql'
|
data/log/debug.log
DELETED
File without changes
|
data/script/destroy
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'rubigen'
|
6
|
-
rescue LoadError
|
7
|
-
require 'rubygems'
|
8
|
-
require 'rubigen'
|
9
|
-
end
|
10
|
-
require 'rubigen/scripts/destroy'
|
11
|
-
|
12
|
-
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
-
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
-
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'rubigen'
|
6
|
-
rescue LoadError
|
7
|
-
require 'rubygems'
|
8
|
-
require 'rubigen'
|
9
|
-
end
|
10
|
-
require 'rubigen/scripts/generate'
|
11
|
-
|
12
|
-
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
-
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
-
RubiGen::Scripts::Generate.new.run(ARGV)
|
data/script/txt2html
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
begin
|
5
|
-
require 'newgem'
|
6
|
-
rescue LoadError
|
7
|
-
puts "\n\nGenerating the website requires the newgem RubyGem"
|
8
|
-
puts "Install: gem install newgem\n\n"
|
9
|
-
exit(1)
|
10
|
-
end
|
11
|
-
require 'redcloth'
|
12
|
-
require 'syntax/convertors/html'
|
13
|
-
require 'erb'
|
14
|
-
require File.dirname(__FILE__) + '/../lib/ruby_plsql/version.rb'
|
15
|
-
|
16
|
-
version = RubyPlsql::VERSION::STRING
|
17
|
-
download = 'http://rubyforge.org/projects/ruby-plsql'
|
18
|
-
|
19
|
-
class Fixnum
|
20
|
-
def ordinal
|
21
|
-
# teens
|
22
|
-
return 'th' if (10..19).include?(self % 100)
|
23
|
-
# others
|
24
|
-
case self % 10
|
25
|
-
when 1: return 'st'
|
26
|
-
when 2: return 'nd'
|
27
|
-
when 3: return 'rd'
|
28
|
-
else return 'th'
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
class Time
|
34
|
-
def pretty
|
35
|
-
return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def convert_syntax(syntax, source)
|
40
|
-
return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^<pre>|</pre>$!,'')
|
41
|
-
end
|
42
|
-
|
43
|
-
if ARGV.length >= 1
|
44
|
-
src, template = ARGV
|
45
|
-
template ||= File.join(File.dirname(__FILE__), '/../website/template.rhtml')
|
46
|
-
|
47
|
-
else
|
48
|
-
puts("Usage: #{File.split($0).last} source.txt [template.rhtml] > output.html")
|
49
|
-
exit!
|
50
|
-
end
|
51
|
-
|
52
|
-
template = ERB.new(File.open(template).read)
|
53
|
-
|
54
|
-
title = nil
|
55
|
-
body = nil
|
56
|
-
File.open(src) do |fsrc|
|
57
|
-
title_text = fsrc.readline
|
58
|
-
body_text = fsrc.read
|
59
|
-
syntax_items = []
|
60
|
-
body_text.gsub!(%r!<(pre|code)[^>]*?syntax=['"]([^'"]+)[^>]*>(.*?)</\1>!m){
|
61
|
-
ident = syntax_items.length
|
62
|
-
element, syntax, source = $1, $2, $3
|
63
|
-
syntax_items << "<#{element} class='syntax'>#{convert_syntax(syntax, source)}</#{element}>"
|
64
|
-
"syntax-temp-#{ident}"
|
65
|
-
}
|
66
|
-
title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip
|
67
|
-
body = RedCloth.new(body_text).to_html
|
68
|
-
body.gsub!(%r!(?:<pre><code>)?syntax-temp-(\d+)(?:</code></pre>)?!){ syntax_items[$1.to_i] }
|
69
|
-
end
|
70
|
-
stat = File.stat(src)
|
71
|
-
created = stat.ctime
|
72
|
-
modified = stat.mtime
|
73
|
-
|
74
|
-
$stdout << template.result(binding)
|