Files
gollum/lib/gollum/views/helpers.rb
T
2018-12-10 19:54:21 +01:00

74 lines
1.8 KiB
Ruby

require 'json'
module Precious
module Views
module RouteHelpers
ROUTES = {
'gollum' => {
assets: 'assets',
last_commit_info: 'last_commit_info',
latest_changes: 'latest_changes',
upload_file: 'upload_file',
create: 'create',
delete: 'delete',
edit: 'edit',
pages: 'pages',
history: 'history',
rename: 'rename',
preview: 'preview',
compare: 'compare',
search: 'search'
}
}
def self.parse_routes(routes, prefix = '')
routes.each do |name, path|
if path.respond_to?(:keys)
self.parse_routes(path, "#{prefix}/#{name}")
else
route_path = "#{prefix}/#{path}"
@@route_methods[name.to_s] = route_path
define_method :"#{name.to_s}_path" do
"#{base_url}/#{route_path}".gsub(/\/{2,}/, '/') # remove double slashes
end
end
end
end
def self.included(base)
@@route_methods = {}
self.parse_routes(ROUTES)
define_method :routes_to_json do
@@route_methods.to_json
end
end
end
module SprocketsHelpers
def self.included(base)
def sprockets_stylesheet_tag
lambda do |args|
args = args.split(' ')
name = args[0]
options = {:media => :all}
options[:media] = :print if args[1] == 'print'
send(:stylesheet_tag, name, options)
end
end
def sprockets_javascript_tag
lambda do |name|
send(:javascript_tag, name)
end
end
def sprockets_image_path
lambda do |args|
send(:image_path, name)
end
end
end
end
end
end