Modifications for images in html code
This commit is contained in:
parent
0ca354cfd0
commit
2e86d8081f
|
@ -13,3 +13,5 @@ uploads/**/*
|
||||||
public/javascripts
|
public/javascripts
|
||||||
public/stylesheets
|
public/stylesheets
|
||||||
config/application.rb
|
config/application.rb
|
||||||
|
|
||||||
|
.rvmrc
|
||||||
|
|
4
Gemfile
4
Gemfile
|
@ -1,6 +1,6 @@
|
||||||
source 'http://rubygems.org'
|
source 'http://rubygems.org'
|
||||||
|
|
||||||
gem 'rails', '>=3.1.0.rc4'
|
gem 'rails'
|
||||||
gem 'yajl-ruby', :require => 'yajl'
|
gem 'yajl-ruby', :require => 'yajl'
|
||||||
|
|
||||||
gem 'bson_ext'
|
gem 'bson_ext'
|
||||||
|
@ -16,7 +16,7 @@ gem 'mongoid'
|
||||||
gem 'rake', '>=0.9.2'
|
gem 'rake', '>=0.9.2'
|
||||||
gem 'jquery-rails', '>= 1.0.3'
|
gem 'jquery-rails', '>= 1.0.3'
|
||||||
|
|
||||||
gem 'sprockets', '2.0.0.beta.13'
|
gem 'sprockets'
|
||||||
|
|
||||||
# Gems used only for assets and not required
|
# Gems used only for assets and not required
|
||||||
# in production environments by default.
|
# in production environments by default.
|
||||||
|
|
125
Gemfile.lock
125
Gemfile.lock
|
@ -1,50 +1,50 @@
|
||||||
GEM
|
GEM
|
||||||
remote: http://rubygems.org/
|
remote: http://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
actionmailer (3.1.0.rc6)
|
actionmailer (3.1.0)
|
||||||
actionpack (= 3.1.0.rc6)
|
actionpack (= 3.1.0)
|
||||||
mail (~> 2.3.0)
|
mail (~> 2.3.0)
|
||||||
actionpack (3.1.0.rc6)
|
actionpack (3.1.0)
|
||||||
activemodel (= 3.1.0.rc6)
|
activemodel (= 3.1.0)
|
||||||
activesupport (= 3.1.0.rc6)
|
activesupport (= 3.1.0)
|
||||||
builder (~> 3.0.0)
|
builder (~> 3.0.0)
|
||||||
erubis (~> 2.7.0)
|
erubis (~> 2.7.0)
|
||||||
i18n (~> 0.6)
|
i18n (~> 0.6)
|
||||||
rack (~> 1.3.2)
|
rack (~> 1.3.2)
|
||||||
rack-cache (~> 1.0.2)
|
rack-cache (~> 1.0.3)
|
||||||
rack-mount (~> 0.8.1)
|
rack-mount (~> 0.8.2)
|
||||||
rack-test (~> 0.6.0)
|
rack-test (~> 0.6.1)
|
||||||
sprockets (~> 2.0.0.beta.12)
|
sprockets (~> 2.0.0)
|
||||||
activemodel (3.1.0.rc6)
|
activemodel (3.1.0)
|
||||||
activesupport (= 3.1.0.rc6)
|
activesupport (= 3.1.0)
|
||||||
bcrypt-ruby (~> 2.1.4)
|
bcrypt-ruby (~> 3.0.0)
|
||||||
builder (~> 3.0.0)
|
builder (~> 3.0.0)
|
||||||
i18n (~> 0.6)
|
i18n (~> 0.6)
|
||||||
activerecord (3.1.0.rc6)
|
activerecord (3.1.0)
|
||||||
activemodel (= 3.1.0.rc6)
|
activemodel (= 3.1.0)
|
||||||
activesupport (= 3.1.0.rc6)
|
activesupport (= 3.1.0)
|
||||||
arel (~> 2.2.1)
|
arel (~> 2.2.1)
|
||||||
tzinfo (~> 0.3.29)
|
tzinfo (~> 0.3.29)
|
||||||
activeresource (3.1.0.rc6)
|
activeresource (3.1.0)
|
||||||
activemodel (= 3.1.0.rc6)
|
activemodel (= 3.1.0)
|
||||||
activesupport (= 3.1.0.rc6)
|
activesupport (= 3.1.0)
|
||||||
activesupport (3.1.0.rc6)
|
activesupport (3.1.0)
|
||||||
multi_json (~> 1.0)
|
multi_json (~> 1.0)
|
||||||
archive-tar-minitar (0.5.2)
|
archive-tar-minitar (0.5.2)
|
||||||
arel (2.2.1)
|
arel (2.2.1)
|
||||||
bcrypt-ruby (2.1.4)
|
bcrypt-ruby (3.0.1)
|
||||||
bson (1.3.1)
|
bson (1.4.0)
|
||||||
bson_ext (1.3.1)
|
bson_ext (1.4.0)
|
||||||
builder (3.0.0)
|
builder (3.0.0)
|
||||||
carrierwave (0.5.4)
|
carrierwave (0.5.4)
|
||||||
activesupport (~> 3.0)
|
activesupport (~> 3.0)
|
||||||
chronic (0.6.2)
|
chronic (0.6.4)
|
||||||
ckeditor (3.6.1)
|
ckeditor (3.6.2)
|
||||||
mime-types (~> 1.16)
|
mime-types (~> 1.16)
|
||||||
orm_adapter (~> 0.0.5)
|
orm_adapter (~> 0.0.5)
|
||||||
coffee-rails (3.1.0.rc.6)
|
coffee-rails (3.1.1)
|
||||||
coffee-script (>= 2.2.0)
|
coffee-script (>= 2.2.0)
|
||||||
railties (~> 3.1.0.rc1)
|
railties (~> 3.1.0)
|
||||||
coffee-script (2.2.0)
|
coffee-script (2.2.0)
|
||||||
coffee-script-source
|
coffee-script-source
|
||||||
execjs
|
execjs
|
||||||
|
@ -52,21 +52,22 @@ GEM
|
||||||
columnize (0.3.4)
|
columnize (0.3.4)
|
||||||
delorean (1.1.0)
|
delorean (1.1.0)
|
||||||
chronic
|
chronic
|
||||||
devise (1.4.2)
|
devise (1.4.7)
|
||||||
bcrypt-ruby (~> 2.1.2)
|
bcrypt-ruby (~> 3.0)
|
||||||
orm_adapter (~> 0.0.3)
|
orm_adapter (~> 0.0.3)
|
||||||
warden (~> 1.0.3)
|
warden (~> 1.0.3)
|
||||||
diff-lcs (1.1.2)
|
diff-lcs (1.1.3)
|
||||||
erubis (2.7.0)
|
erubis (2.7.0)
|
||||||
execjs (1.2.4)
|
execjs (1.2.9)
|
||||||
multi_json (~> 1.0)
|
multi_json (~> 1.0)
|
||||||
factory_girl (2.0.4)
|
factory_girl (2.1.2)
|
||||||
factory_girl_rails (1.1.0)
|
activesupport
|
||||||
factory_girl (~> 2.0.0)
|
factory_girl_rails (1.2.0)
|
||||||
|
factory_girl (~> 2.1.0)
|
||||||
railties (>= 3.0.0)
|
railties (>= 3.0.0)
|
||||||
hike (1.2.1)
|
hike (1.2.1)
|
||||||
i18n (0.6.0)
|
i18n (0.6.0)
|
||||||
jquery-rails (1.0.13)
|
jquery-rails (1.0.14)
|
||||||
railties (~> 3.0)
|
railties (~> 3.0)
|
||||||
thor (~> 0.14)
|
thor (~> 0.14)
|
||||||
linecache19 (0.5.12)
|
linecache19 (0.5.12)
|
||||||
|
@ -80,40 +81,40 @@ GEM
|
||||||
subexec (~> 0.1.0)
|
subexec (~> 0.1.0)
|
||||||
mongo (1.3.1)
|
mongo (1.3.1)
|
||||||
bson (>= 1.3.1)
|
bson (>= 1.3.1)
|
||||||
mongoid (2.2.0)
|
mongoid (2.2.1)
|
||||||
activemodel (~> 3.0)
|
activemodel (~> 3.0)
|
||||||
mongo (~> 1.3)
|
mongo (>= 1.3, < 1.4)
|
||||||
tzinfo (~> 0.3.22)
|
tzinfo (~> 0.3.22)
|
||||||
multi_json (1.0.3)
|
multi_json (1.0.3)
|
||||||
orm_adapter (0.0.5)
|
orm_adapter (0.0.5)
|
||||||
polyglot (0.3.2)
|
polyglot (0.3.2)
|
||||||
rack (1.3.2)
|
rack (1.3.3)
|
||||||
rack-cache (1.0.2)
|
rack-cache (1.0.3)
|
||||||
rack (>= 0.4)
|
rack (>= 0.4)
|
||||||
rack-mount (0.8.2)
|
rack-mount (0.8.3)
|
||||||
rack (>= 1.0.0)
|
rack (>= 1.0.0)
|
||||||
rack-ssl (1.3.2)
|
rack-ssl (1.3.2)
|
||||||
rack
|
rack
|
||||||
rack-test (0.6.1)
|
rack-test (0.6.1)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
rails (3.1.0.rc6)
|
rails (3.1.0)
|
||||||
actionmailer (= 3.1.0.rc6)
|
actionmailer (= 3.1.0)
|
||||||
actionpack (= 3.1.0.rc6)
|
actionpack (= 3.1.0)
|
||||||
activerecord (= 3.1.0.rc6)
|
activerecord (= 3.1.0)
|
||||||
activeresource (= 3.1.0.rc6)
|
activeresource (= 3.1.0)
|
||||||
activesupport (= 3.1.0.rc6)
|
activesupport (= 3.1.0)
|
||||||
bundler (~> 1.0)
|
bundler (~> 1.0)
|
||||||
railties (= 3.1.0.rc6)
|
railties (= 3.1.0)
|
||||||
railties (3.1.0.rc6)
|
railties (3.1.0)
|
||||||
actionpack (= 3.1.0.rc6)
|
actionpack (= 3.1.0)
|
||||||
activesupport (= 3.1.0.rc6)
|
activesupport (= 3.1.0)
|
||||||
rack-ssl (~> 1.3.2)
|
rack-ssl (~> 1.3.2)
|
||||||
rake (>= 0.8.7)
|
rake (>= 0.8.7)
|
||||||
rdoc (~> 3.4)
|
rdoc (~> 3.4)
|
||||||
thor (~> 0.14.6)
|
thor (~> 0.14.6)
|
||||||
rake (0.9.2)
|
rake (0.9.2)
|
||||||
rcov (0.9.10)
|
rcov (0.9.10)
|
||||||
rdoc (3.9.2)
|
rdoc (3.9.4)
|
||||||
rspec (2.6.0)
|
rspec (2.6.0)
|
||||||
rspec-core (~> 2.6.0)
|
rspec-core (~> 2.6.0)
|
||||||
rspec-expectations (~> 2.6.0)
|
rspec-expectations (~> 2.6.0)
|
||||||
|
@ -139,32 +140,34 @@ GEM
|
||||||
archive-tar-minitar (>= 0.5.2)
|
archive-tar-minitar (>= 0.5.2)
|
||||||
rubyzip (0.9.4)
|
rubyzip (0.9.4)
|
||||||
sass (3.1.7)
|
sass (3.1.7)
|
||||||
sass-rails (3.1.0.rc.6)
|
sass-rails (3.1.3)
|
||||||
actionpack (~> 3.1.0.rc6)
|
actionpack (~> 3.1.0)
|
||||||
railties (~> 3.1.0.rc6)
|
railties (~> 3.1.0)
|
||||||
sass (>= 3.1.4)
|
sass (>= 3.1.4)
|
||||||
|
sprockets (~> 2.0.0)
|
||||||
|
tilt (~> 1.3.2)
|
||||||
shoulda-matchers (1.0.0.beta3)
|
shoulda-matchers (1.0.0.beta3)
|
||||||
sinatra (1.2.6)
|
sinatra (1.2.6)
|
||||||
rack (~> 1.1)
|
rack (~> 1.1)
|
||||||
tilt (< 2.0, >= 1.2.2)
|
tilt (>= 1.2.2, < 2.0)
|
||||||
sprockets (2.0.0.beta.13)
|
sprockets (2.0.0)
|
||||||
hike (~> 1.2)
|
hike (~> 1.2)
|
||||||
rack (~> 1.0)
|
rack (~> 1.0)
|
||||||
tilt (!= 1.3.0, ~> 1.1)
|
tilt (~> 1.1, != 1.3.0)
|
||||||
subexec (0.1.0)
|
subexec (0.1.0)
|
||||||
thor (0.14.6)
|
thor (0.14.6)
|
||||||
tilt (1.3.2)
|
tilt (1.3.3)
|
||||||
treetop (1.4.10)
|
treetop (1.4.10)
|
||||||
polyglot
|
polyglot
|
||||||
polyglot (>= 0.3.1)
|
polyglot (>= 0.3.1)
|
||||||
tzinfo (0.3.29)
|
tzinfo (0.3.29)
|
||||||
uglifier (1.0.1)
|
uglifier (1.0.3)
|
||||||
execjs (>= 0.3.0)
|
execjs (>= 0.3.0)
|
||||||
multi_json (>= 1.0.2)
|
multi_json (>= 1.0.2)
|
||||||
warden (1.0.5)
|
warden (1.0.5)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
watchr (0.7)
|
watchr (0.7)
|
||||||
yajl-ruby (0.8.3)
|
yajl-ruby (1.0.0)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
|
@ -180,7 +183,7 @@ DEPENDENCIES
|
||||||
jquery-rails (>= 1.0.3)
|
jquery-rails (>= 1.0.3)
|
||||||
mini_magick
|
mini_magick
|
||||||
mongoid
|
mongoid
|
||||||
rails (>= 3.1.0.rc4)
|
rails
|
||||||
rake (>= 0.9.2)
|
rake (>= 0.9.2)
|
||||||
rcov
|
rcov
|
||||||
rspec (~> 2.0)
|
rspec (~> 2.0)
|
||||||
|
@ -190,7 +193,7 @@ DEPENDENCIES
|
||||||
sass-rails (~> 3.1.0.rc)
|
sass-rails (~> 3.1.0.rc)
|
||||||
shoulda-matchers
|
shoulda-matchers
|
||||||
sinatra
|
sinatra
|
||||||
sprockets (= 2.0.0.beta.13)
|
sprockets
|
||||||
uglifier
|
uglifier
|
||||||
watchr
|
watchr
|
||||||
yajl-ruby
|
yajl-ruby
|
||||||
|
|
|
@ -16,6 +16,7 @@ class Design
|
||||||
embeds_many :themes
|
embeds_many :themes
|
||||||
embeds_many :javascripts
|
embeds_many :javascripts
|
||||||
embeds_many :images
|
embeds_many :images
|
||||||
|
embeds_many :custom_images, as: :design_image
|
||||||
|
|
||||||
validates_presence_of :title
|
validates_presence_of :title
|
||||||
validates_presence_of :author
|
validates_presence_of :author
|
||||||
|
@ -75,7 +76,6 @@ class Design
|
||||||
if self.layout.to_save
|
if self.layout.to_save
|
||||||
self.layout.to_save = false
|
self.layout.to_save = false
|
||||||
self.layout.save
|
self.layout.save
|
||||||
self.layout.parse_urls
|
|
||||||
end
|
end
|
||||||
[[self.default_css], [self.reset_css], self.themes].each do |objects|
|
[[self.default_css], [self.reset_css], self.themes].each do |objects|
|
||||||
objects.each do |object|
|
objects.each do |object|
|
||||||
|
@ -91,11 +91,12 @@ class Design
|
||||||
def process_object(object)
|
def process_object(object)
|
||||||
if object.to_save
|
if object.to_save
|
||||||
if object.file_filename.nil?
|
if object.file_filename.nil?
|
||||||
new_object = self.send(object._type.downcase.pluralize).build
|
new_object = self.send(object._type.downcase.pluralize).build(object)
|
||||||
new_object.file = object.file
|
|
||||||
object.destroy
|
object.destroy
|
||||||
|
new_object.to_save = false
|
||||||
new_object.save
|
new_object.save
|
||||||
else
|
else
|
||||||
|
object.to_save = false
|
||||||
object.save
|
object.save
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
class Image < DesignFile
|
class Image < DesignFile
|
||||||
embedded_in :design
|
|
||||||
|
field :in_css, :type => Boolean
|
||||||
|
field :name
|
||||||
|
field :html_id
|
||||||
|
field :html_class
|
||||||
|
|
||||||
|
embedded_in :design_image, polymorphic: true
|
||||||
|
|
||||||
mount_uploader :file, ImageUploader
|
mount_uploader :file, ImageUploader
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
class Layout < DesignFile
|
class Layout < DesignFile
|
||||||
include Parser
|
include Parser
|
||||||
|
|
||||||
mount_uploader :file_orig, AssetUploader
|
|
||||||
|
|
||||||
attr_reader :content
|
attr_reader :content
|
||||||
|
|
||||||
embeds_one :menu
|
embeds_one :menu
|
||||||
|
@ -23,38 +21,4 @@ class Layout < DesignFile
|
||||||
parse_layout_contents(self)
|
parse_layout_contents(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
def parse_urls
|
|
||||||
orig_content = content = self.content
|
|
||||||
self.remove_file!
|
|
||||||
self.remove_file_orig!
|
|
||||||
names = []
|
|
||||||
images = self.design.images
|
|
||||||
html_name = nil
|
|
||||||
content.scan(/(?<=\<img)(.*?)(?=\/\>)/){
|
|
||||||
$1.gsub(' ','').scan(/(?<=src=\")(.*?)(?=\")/){
|
|
||||||
html_name = $1
|
|
||||||
}
|
|
||||||
name = File.basename(html_name).gsub(/[\\\"]/, '')
|
|
||||||
file_name = images.detect{ |i| i.file_filename.eql?(name) }.file_url rescue nil
|
|
||||||
names << [html_name, file_name]
|
|
||||||
}
|
|
||||||
names.each do |name|
|
|
||||||
content.gsub!(name[0], name[1]) rescue nil
|
|
||||||
end
|
|
||||||
Dir.mktmpdir('f_path') { |dir|
|
|
||||||
orig_file_name = self.file_filename
|
|
||||||
|
|
||||||
temp_file = File.new(dir + '/' + orig_file_name, 'w+')
|
|
||||||
temp_file.write orig_content.force_encoding("UTF-8")
|
|
||||||
self.file_orig = temp_file
|
|
||||||
|
|
||||||
temp_file = File.new(dir + '/' + orig_file_name, 'w+')
|
|
||||||
temp_file.write content.force_encoding("UTF-8")
|
|
||||||
self.file = temp_file
|
|
||||||
|
|
||||||
Layout.without_callback(:save, :after, :parse_layout) do
|
|
||||||
self.save
|
|
||||||
end
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,6 +6,8 @@ class Page < Item
|
||||||
belongs_to :design
|
belongs_to :design
|
||||||
has_many :page_parts
|
has_many :page_parts
|
||||||
|
|
||||||
|
embeds_many :custom_images, as: :design_image
|
||||||
|
|
||||||
def create_parts
|
def create_parts
|
||||||
page_design = self.design
|
page_design = self.design
|
||||||
page_design.layout.layout_parts.each do |p|
|
page_design.layout.layout_parts.each do |p|
|
||||||
|
|
|
@ -6,7 +6,7 @@ class AssetUploader < CarrierWave::Uploader::Base
|
||||||
process :set_content_type
|
process :set_content_type
|
||||||
|
|
||||||
def set_content_type(*args)
|
def set_content_type(*args)
|
||||||
content_type = file.content_type == 'binary/octet-stream' || 'application/octet-stream' || file.content_type.blank? ? MIME::Types.type_for(original_filename).first.to_s : file.content_type
|
content_type = file.content_type == ('binary/octet-stream' || 'application/octet-stream') || file.content_type.blank? ? MIME::Types.type_for(original_filename).first.to_s : file.content_type
|
||||||
self.file.instance_variable_set(:@content_type, content_type)
|
self.file.instance_variable_set(:@content_type, content_type)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ class ImageUploader < CarrierWave::Uploader::Base
|
||||||
include CarrierWave::MiniMagick
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
def set_content_type(*args)
|
def set_content_type(*args)
|
||||||
content_type = file.content_type == 'binary/octet-stream' || 'application/octet-stream' || file.content_type.blank? ? MIME::Types.type_for(original_filename).first.to_s : file.content_type
|
content_type = file.content_type == ('binary/octet-stream' || 'application/octet-stream') || file.content_type.blank? ? MIME::Types.type_for(original_filename).first.to_s : file.content_type
|
||||||
self.file.instance_variable_set(:@content_type, content_type)
|
self.file.instance_variable_set(:@content_type, content_type)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -58,14 +58,14 @@ class ImageUploader < CarrierWave::Uploader::Base
|
||||||
# "something.jpg" if original_filename
|
# "something.jpg" if original_filename
|
||||||
# end
|
# end
|
||||||
|
|
||||||
# def manipulate!
|
def manipulate!
|
||||||
# raise current_path.inspect
|
cache_stored_file! if !cached?
|
||||||
# image = ::MiniMagick::Image.open(current_path)
|
image = ::MiniMagick::Image.open(current_path)
|
||||||
# image = yield(image)
|
image = yield(image)
|
||||||
# image.write(current_path)
|
image.write(current_path)
|
||||||
# ::MiniMagick::Image.open(current_path)
|
::MiniMagick::Image.open(current_path)
|
||||||
# rescue ::MiniMagick::Error, ::MiniMagick::Invalid => e
|
rescue
|
||||||
# raise CarrierWave::ProcessingError.new("Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: #{e}")
|
nil
|
||||||
# end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -164,9 +164,11 @@ module Parser
|
||||||
res
|
res
|
||||||
end
|
end
|
||||||
c.define_tag 'image' do |tag|
|
c.define_tag 'image' do |tag|
|
||||||
asset = Asset.find(tag.attr['id'])
|
image = page.custom_images.detect{|image| image.name.eql?(tag.attr['name']) }
|
||||||
if asset
|
image = page.design.custom_images.detect{|image| image.name.eql?(tag.attr['name']) } unless image
|
||||||
res = "<img src=#{asset.data.file.url} "
|
image = page.design.images.detect{|image| image.name.eql?(tag.attr['name']) } unless image
|
||||||
|
if image
|
||||||
|
res = "<img src=#{image.file.url} "
|
||||||
tag.attr.each do |l|
|
tag.attr.each do |l|
|
||||||
res << "#{l[0]}='#{l[1]}' "
|
res << "#{l[0]}='#{l[1]}' "
|
||||||
end
|
end
|
||||||
|
@ -278,8 +280,20 @@ module Parser
|
||||||
c.define_tag 'content' do |tag|
|
c.define_tag 'content' do |tag|
|
||||||
layout.layout_parts.create(:name => tag.attr['name'], :editable => true)
|
layout.layout_parts.create(:name => tag.attr['name'], :editable => true)
|
||||||
end
|
end
|
||||||
|
c.define_tag 'image' do |tag|
|
||||||
|
image = layout.design.images.detect{ |i| i.file_filename.eql?(parse_html_image(tag.expand)) }
|
||||||
|
image.update_attributes(:name => tag.attr['name'], :html_id => tag.attr['id'], :html_class => tag.attr['class'])
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def parse_html_image(html)
|
||||||
|
html.scan(/(?<=\<img)(.*?)(?=\/\>)/){
|
||||||
|
$1.gsub(' ','').scan(/(?<=src=\")(.*?)(?=\")/){
|
||||||
|
return File.basename($1).gsub(/[\\\"]/, '')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
def self.included(base)
|
def self.included(base)
|
||||||
base.send :helper_method, :parse_page if base.respond_to? :helper_method
|
base.send :helper_method, :parse_page if base.respond_to? :helper_method
|
||||||
|
|
Reference in New Issue