alchemy_cms 3.2.0.beta → 3.2.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +661 -863
- data/README.md +5 -63
- data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +11 -10
- data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +6 -0
- data/app/assets/stylesheets/alchemy/_extends.scss +0 -6
- data/app/assets/stylesheets/alchemy/_mixins.scss +6 -0
- data/app/assets/stylesheets/alchemy/buttons.scss +1 -1
- data/app/assets/stylesheets/alchemy/elements.scss +1 -1
- data/app/assets/stylesheets/alchemy/menubar.scss +1 -1
- data/app/assets/stylesheets/alchemy/selects.scss +5 -1
- data/app/assets/stylesheets/alchemy/upload.scss +1 -1
- data/app/controllers/alchemy/admin/pages_controller.rb +1 -1
- data/app/controllers/alchemy/base_controller.rb +4 -57
- data/app/controllers/alchemy/messages_controller.rb +2 -2
- data/app/controllers/alchemy/pages_controller.rb +22 -31
- data/app/controllers/alchemy/pictures_controller.rb +2 -2
- data/app/helpers/alchemy/admin/base_helper.rb +7 -0
- data/app/helpers/alchemy/admin/elements_helper.rb +31 -15
- data/app/helpers/alchemy/admin/pages_helper.rb +17 -0
- data/app/helpers/alchemy/base_helper.rb +0 -28
- data/app/helpers/alchemy/pages_helper.rb +18 -12
- data/app/helpers/alchemy/url_helper.rb +2 -2
- data/app/models/alchemy/cell.rb +1 -1
- data/app/models/alchemy/content/factory.rb +12 -6
- data/app/models/alchemy/element.rb +3 -3
- data/app/models/alchemy/element/definitions.rb +1 -1
- data/app/models/alchemy/element_to_page.rb +7 -0
- data/app/models/alchemy/language.rb +1 -1
- data/app/models/alchemy/page.rb +8 -1
- data/app/models/alchemy/page/page_cells.rb +2 -2
- data/app/models/alchemy/page/page_elements.rb +23 -5
- data/app/models/alchemy/page/page_natures.rb +3 -3
- data/app/models/alchemy/page/page_scopes.rb +1 -1
- data/app/models/alchemy/picture.rb +1 -1
- data/app/views/alchemy/admin/pages/_create_language_form.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_form.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +1 -1
- data/app/views/alchemy/breadcrumb/_page.html.erb +3 -2
- data/app/views/alchemy/breadcrumb/_separator.html.erb +1 -0
- data/app/views/alchemy/breadcrumb/_wrapper.html.erb +13 -0
- data/app/views/alchemy/language_links/_language.html.erb +1 -1
- data/app/views/alchemy/navigation/_link.html.erb +1 -1
- data/app/views/alchemy/pages/show.rss.builder +5 -7
- data/app/views/layouts/alchemy/admin.html.erb +5 -0
- data/config/routes.rb +13 -10
- data/lib/alchemy/configuration_methods.rb +29 -0
- data/lib/alchemy/controller_actions.rb +12 -4
- data/lib/alchemy/engine.rb +3 -0
- data/lib/alchemy/errors.rb +1 -1
- data/lib/alchemy/essence.rb +14 -12
- data/lib/alchemy/on_page_layout.rb +58 -0
- data/lib/alchemy/page_layout.rb +1 -1
- data/lib/alchemy/permissions.rb +21 -16
- data/lib/alchemy/routing_constraints.rb +49 -0
- data/lib/alchemy/seeder.rb +4 -2
- data/lib/alchemy/ssl_protection.rb +30 -0
- data/lib/alchemy/test_support/essence_shared_examples.rb +118 -25
- data/lib/alchemy/test_support/factories.rb +5 -8
- data/lib/alchemy/test_support/integration_helpers.rb +16 -10
- data/lib/alchemy/upgrader/three_point_two.rb +34 -4
- data/lib/alchemy/version.rb +1 -1
- data/lib/rails/generators/alchemy/{scaffold → install}/files/_article_editor.html.erb +0 -0
- data/lib/rails/generators/alchemy/{scaffold → install}/files/_article_view.html.erb +0 -0
- data/lib/rails/generators/alchemy/{scaffold → install}/files/_standard.html.erb +0 -0
- data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.de.yml +0 -0
- data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.elements.css.scss +0 -0
- data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.en.yml +0 -0
- data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.es.yml +0 -0
- data/lib/rails/generators/alchemy/{scaffold → install}/files/application.html.erb +0 -0
- data/lib/rails/generators/alchemy/install/install_generator.rb +69 -0
- data/lib/rails/generators/alchemy/{scaffold/files/elements.yml → install/templates/elements.yml.tt} +2 -0
- data/lib/rails/generators/alchemy/{scaffold → install}/templates/page_layouts.yml.tt +2 -0
- data/lib/rails/generators/alchemy/views/views_generator.rb +41 -0
- data/lib/rails/templates/alchemy.rb +2 -2
- data/lib/tasks/alchemy/db.rake +0 -5
- data/lib/tasks/alchemy/install.rake +10 -5
- data/lib/tasks/alchemy/tidy.rake +2 -0
- data/spec/controllers/admin/attachments_controller_spec.rb +1 -1
- data/spec/controllers/admin/clipboard_controller_spec.rb +1 -1
- data/spec/controllers/admin/contents_controller_spec.rb +1 -1
- data/spec/controllers/admin/dashboard_controller_spec.rb +2 -2
- data/spec/controllers/admin/elements_controller_spec.rb +1 -1
- data/spec/controllers/admin/essence_files_controller_spec.rb +1 -1
- data/spec/controllers/admin/essence_pictures_controller_spec.rb +1 -1
- data/spec/controllers/admin/languages_controller_spec.rb +1 -1
- data/spec/controllers/admin/layoutpages_controller_spec.rb +1 -1
- data/spec/controllers/admin/pages_controller_spec.rb +4 -4
- data/spec/controllers/admin/pictures_controller_spec.rb +1 -1
- data/spec/controllers/admin/resources_controller_spec.rb +1 -1
- data/spec/controllers/admin/trash_controller_spec.rb +1 -1
- data/spec/controllers/alchemy/admin/tags_controller_spec.rb +1 -1
- data/spec/controllers/attachments_controller_spec.rb +1 -1
- data/spec/controllers/base_controller_spec.rb +22 -0
- data/spec/controllers/elements_controller_spec.rb +1 -1
- data/spec/controllers/pages_controller_spec.rb +15 -16
- data/spec/controllers/pictures_controller_spec.rb +212 -162
- data/spec/dummy/app/controllers/login_controller.rb +5 -0
- data/spec/dummy/app/models/dummy_model.rb +3 -0
- data/spec/dummy/config/alchemy/cells.yml +4 -1
- data/spec/dummy/config/alchemy/elements.yml +8 -0
- data/spec/dummy/config/alchemy/page_layouts.yml +5 -1
- data/spec/dummy/config/routes.rb +1 -2
- data/spec/dummy/db/migrate/20150412103152_create_dummy_model.rb +7 -0
- data/spec/dummy/db/schema.rb +30 -26
- data/spec/features/admin/dashboard_spec.rb +11 -9
- data/spec/features/admin/language_tree_feature_spec.rb +5 -6
- data/spec/features/admin/legacy_page_url_management_spec.rb +1 -1
- data/spec/features/admin/link_overlay_spec.rb +1 -1
- data/spec/features/admin/locale_select_feature_spec.rb +1 -1
- data/spec/features/admin/modules_integration_spec.rb +1 -1
- data/spec/features/admin/navigation_feature_spec.rb +1 -1
- data/spec/features/admin/page_creation_feature_spec.rb +1 -1
- data/spec/features/admin/page_editing_feature_spec.rb +3 -3
- data/spec/features/admin/picture_library_integration_spec.rb +1 -1
- data/spec/features/admin/resources_integration_spec.rb +1 -1
- data/spec/features/admin/site_select_feature_spec.rb +32 -0
- data/spec/features/admin/tinymce_feature_spec.rb +1 -3
- data/spec/features/page_feature_spec.rb +36 -27
- data/spec/features/security_spec.rb +1 -1
- data/spec/features/translation_integration_spec.rb +3 -3
- data/spec/helpers/admin/elements_helper_spec.rb +103 -26
- data/spec/helpers/admin/pages_helper_spec.rb +32 -1
- data/spec/helpers/base_helper_spec.rb +0 -45
- data/spec/helpers/pages_helper_spec.rb +18 -17
- data/spec/helpers/url_helper_spec.rb +8 -5
- data/spec/libraries/controller_actions_spec.rb +2 -2
- data/spec/libraries/on_page_layout_spec.rb +112 -0
- data/spec/libraries/page_layout_spec.rb +5 -1
- data/spec/libraries/permissions_spec.rb +13 -15
- data/spec/models/cell_spec.rb +4 -0
- data/spec/models/content_spec.rb +6 -0
- data/spec/models/dummy_model_spec.rb +11 -0
- data/spec/models/element_spec.rb +6 -1
- data/spec/models/element_to_page_spec.rb +14 -0
- data/spec/models/page_spec.rb +111 -19
- data/spec/routing/routing_spec.rb +120 -101
- data/spec/spec_helper.rb +3 -3
- metadata +36 -21
- data/app/views/alchemy/breadcrumb/_spacer.html.erb +0 -1
- data/lib/alchemy/capistrano.rb +0 -230
- data/lib/alchemy/test_support/auth_helpers.rb +0 -35
- data/lib/rails/generators/alchemy/deploy_script/deploy_script_generator.rb +0 -90
- data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +0 -113
- data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +0 -63
- data/spec/dummy/app/controllers/errors_controller.rb +0 -5
@@ -1,35 +0,0 @@
|
|
1
|
-
module Alchemy
|
2
|
-
module TestSupport
|
3
|
-
|
4
|
-
# Helpers for authentication
|
5
|
-
#
|
6
|
-
module AuthHelpers
|
7
|
-
|
8
|
-
def sign_in(user = admin_user)
|
9
|
-
allow(controller).to receive(:current_alchemy_user).and_return user
|
10
|
-
end
|
11
|
-
|
12
|
-
def member_user
|
13
|
-
mock_user([:member])
|
14
|
-
end
|
15
|
-
|
16
|
-
def author_user
|
17
|
-
mock_user([:author])
|
18
|
-
end
|
19
|
-
|
20
|
-
def editor_user
|
21
|
-
mock_user([:editor])
|
22
|
-
end
|
23
|
-
|
24
|
-
def admin_user
|
25
|
-
mock_user([:admin])
|
26
|
-
end
|
27
|
-
|
28
|
-
def mock_user(roles)
|
29
|
-
mock_model(Alchemy.user_class, alchemy_roles: roles.map(&:to_sym))
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
end
|
@@ -1,90 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
|
3
|
-
module Alchemy
|
4
|
-
module Generators
|
5
|
-
class DeployScriptGenerator < ::Rails::Generators::Base
|
6
|
-
|
7
|
-
desc "This generator generates a Capistrano receipt for deploying Alchemy CMS."
|
8
|
-
|
9
|
-
class_option :scm,
|
10
|
-
type: 'string',
|
11
|
-
desc: "Set the type of scm you use for deployment.",
|
12
|
-
default: 'git'
|
13
|
-
|
14
|
-
class_option :db,
|
15
|
-
type: 'string',
|
16
|
-
desc: "Set the type of database you use on your server.",
|
17
|
-
default: 'mysql'
|
18
|
-
|
19
|
-
source_root File.expand_path('templates', File.dirname(__FILE__))
|
20
|
-
|
21
|
-
def copy_script
|
22
|
-
@scm = options[:scm]
|
23
|
-
@database_type = options[:db]
|
24
|
-
ask_questions
|
25
|
-
template "deploy.rb.tt", Rails.root.join('config', 'deploy.rb')
|
26
|
-
setup_capistrano
|
27
|
-
show_read_me
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def ask_questions
|
33
|
-
@app_name = ask('Please enter a name for your application:')
|
34
|
-
@server = ask('Please enter server ip or domain:')
|
35
|
-
if @store_credentials = yes?('Do want to store the ssh credentials? (PLEASE DO NOT STORE THEM IF THE REPOSITORY IS PUBLIC) (y/N)')
|
36
|
-
ask_for_credentials
|
37
|
-
end
|
38
|
-
@deploy_path = ask('Please enter the path to the public html folder:')
|
39
|
-
if @scm == "git"
|
40
|
-
@repository_url = get_git_remote
|
41
|
-
end
|
42
|
-
if @repository_url.nil?
|
43
|
-
@repository_url = ask('Please enter the URL to your projects repository:')
|
44
|
-
end
|
45
|
-
if @scm == "svn" && yes?('Is your repository private? (y/N)')
|
46
|
-
ask_for_repo_credentials
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def ask_for_credentials
|
51
|
-
@ssh_user = ask('Please enter ssh username:')
|
52
|
-
port = ask('Please enter ssh port (22):')
|
53
|
-
@ssh_port = port.blank? ? "22" : port
|
54
|
-
@no_ssh_public_keys = !yes?('Do you use ssh public keys to connect to your server? (y/N)')
|
55
|
-
if @no_ssh_public_keys
|
56
|
-
@ssh_password = ask('Please enter ssh password:')
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
def ask_for_repo_credentials
|
61
|
-
@scm_user = ask('Please enter the username for your repository:')
|
62
|
-
@scm_password = ask('Please enter the password to your repository:')
|
63
|
-
end
|
64
|
-
|
65
|
-
def get_git_remote
|
66
|
-
remotes = `git remote -v`.split("\n")
|
67
|
-
remote = remotes.first
|
68
|
-
if remote
|
69
|
-
remote.split("\t")[1].split(" ")[0]
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
def setup_capistrano
|
74
|
-
puts "\nSetting up Capistrano"
|
75
|
-
if system 'capify .'
|
76
|
-
gsub_file 'Capfile',
|
77
|
-
/\s{4}#\sload\s'deploy\/assets'/,
|
78
|
-
"load 'deploy/assets'"
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def show_read_me
|
83
|
-
puts "\nWe are done!\n"
|
84
|
-
puts "\nPlease run 'cap deploy:setup'\n to setup the server for deployment."
|
85
|
-
puts "\nIf you want to deploy Alchemy the first time type:\ncap deploy:cold"
|
86
|
-
puts "\nAfter the first deploy you just need to type:\ncap deploy"
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
@@ -1,113 +0,0 @@
|
|
1
|
-
require 'bundler/capistrano'
|
2
|
-
require 'alchemy/capistrano'
|
3
|
-
|
4
|
-
# application name
|
5
|
-
set :application, "<%= @app_name %>"
|
6
|
-
|
7
|
-
# ssh settings
|
8
|
-
<%- if @ssh_user.blank? || !@store_credentials -%>
|
9
|
-
set(:user) { Capistrano::CLI.ui.ask('Enter your ssh username: ') }
|
10
|
-
<%- else -%>
|
11
|
-
set :user, "<%= @ssh_user %>"
|
12
|
-
<%- end -%>
|
13
|
-
<%- if @no_ssh_public_keys -%>
|
14
|
-
<%- if @ssh_password.blank? -%>
|
15
|
-
set(:password) { Capistrano::CLI.password_prompt("Enter the password for #{user}: ") }
|
16
|
-
<%- else -%>
|
17
|
-
set :password, "<%= @ssh_password %>"
|
18
|
-
<%- end -%>
|
19
|
-
<%- end -%>
|
20
|
-
<%- if @ssh_port != "22" && !@store_credentials -%>
|
21
|
-
set(:port) { Capistrano::CLI.ui.ask('Enter the ssh port: ') }
|
22
|
-
<%- elsif @ssh_port != "22" && @store_credentials -%>
|
23
|
-
set :port, <%= @ssh_port %>
|
24
|
-
<%- end -%>
|
25
|
-
|
26
|
-
# domain names
|
27
|
-
role :app, "<%= @server %>"
|
28
|
-
role :web, "<%= @server %>"
|
29
|
-
role :db, "<%= @server %>", :primary => true
|
30
|
-
|
31
|
-
# the webserver path
|
32
|
-
set :deploy_to, "<%= @deploy_path %>"
|
33
|
-
set :deploy_via, :remote_cache
|
34
|
-
|
35
|
-
# repository settings
|
36
|
-
<%- if @scm == "svn" -%>
|
37
|
-
set :scm, "subversion"
|
38
|
-
set :repository_url, "<%= @repository_url %>"
|
39
|
-
<%- if @scm_user && @scm_password -%>
|
40
|
-
set :scm_user, "<%= @scm_user %>"
|
41
|
-
set :scm_password, "<%= @scm_password %>"
|
42
|
-
set :repository, Proc.new { "--username #{scm_user} --password #{scm_password} #{repository_url}" }
|
43
|
-
<%- else -%>
|
44
|
-
set :repository, "<%= @repository_url %>"
|
45
|
-
<%- end -%>
|
46
|
-
<%- elsif @scm == "git" -%>
|
47
|
-
set :scm, "git"
|
48
|
-
set :repository, "<%= @repository_url %>"
|
49
|
-
set :branch, "master"
|
50
|
-
<%- end -%>
|
51
|
-
|
52
|
-
# rails env
|
53
|
-
set :rails_env, "production"
|
54
|
-
|
55
|
-
# before hooks
|
56
|
-
before "deploy:start", "deploy:seed"
|
57
|
-
<%- if @database_type == "mysql" -%>
|
58
|
-
before "deploy:migrate", "alchemy:db:dump"
|
59
|
-
<%- end -%>
|
60
|
-
before "deploy:create_symlink", "deploy:migrate"
|
61
|
-
|
62
|
-
# after hooks
|
63
|
-
<%- if @database_type == "mysql" -%>
|
64
|
-
after "deploy:setup", "alchemy:database_yml:create"
|
65
|
-
after "deploy:finalize_update", "alchemy:database_yml:symlink"
|
66
|
-
<%- end -%>
|
67
|
-
after "deploy", "deploy:cleanup"
|
68
|
-
|
69
|
-
# special tasks
|
70
|
-
|
71
|
-
namespace :log do
|
72
|
-
|
73
|
-
desc "show last 100 lines of log"
|
74
|
-
task :show do
|
75
|
-
run "tail -n100 #{shared_path}/log/#{rails_env}.log"
|
76
|
-
end
|
77
|
-
|
78
|
-
desc "watch tail of log and wait for additional data to be appended to the input"
|
79
|
-
task :watch do
|
80
|
-
stream("tail -f #{shared_path}/log/#{rails_env}.log")
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
84
|
-
|
85
|
-
namespace :deploy do
|
86
|
-
|
87
|
-
task :start do ; end
|
88
|
-
task :stop do ; end
|
89
|
-
|
90
|
-
task :restart, :roles => :app, :except => { :no_release => true } do
|
91
|
-
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
|
92
|
-
end
|
93
|
-
|
94
|
-
desc 'Seeds the database'
|
95
|
-
task :seed, :roles => :app, :except => { :no_release => true } do
|
96
|
-
run "cd #{release_path} && #{rake} RAILS_ENV=#{rails_env} db:seed"
|
97
|
-
end
|
98
|
-
|
99
|
-
end
|
100
|
-
|
101
|
-
## defaults
|
102
|
-
|
103
|
-
# enable bundler binstubs
|
104
|
-
set :bundle_flags, "--deployment --binstubs"
|
105
|
-
|
106
|
-
# do not use sudo
|
107
|
-
set :use_sudo, false
|
108
|
-
|
109
|
-
# enable ssh-agent forwarding
|
110
|
-
ssh_options[:forward_agent] = true
|
111
|
-
|
112
|
-
# Enable git password prompting
|
113
|
-
default_run_options[:pty] = true
|
@@ -1,63 +0,0 @@
|
|
1
|
-
require 'rails'
|
2
|
-
|
3
|
-
module Alchemy
|
4
|
-
module Generators
|
5
|
-
class ScaffoldGenerator < ::Rails::Generators::Base
|
6
|
-
|
7
|
-
ALCHEMY_VIEWS = %w(breadcrumb language_links messages navigation)
|
8
|
-
|
9
|
-
desc "This generator generates the Alchemy scaffold."
|
10
|
-
class_option :copy_views, :default => false, :type => :boolean, :desc => "Copy all Alchemy views into your app.", :aliases => '-v'
|
11
|
-
source_root File.expand_path('templates', File.dirname(__FILE__))
|
12
|
-
|
13
|
-
def create_config_dir
|
14
|
-
empty_directory "#{Rails.root}/config/alchemy"
|
15
|
-
end
|
16
|
-
|
17
|
-
def create_view_dirs
|
18
|
-
empty_directory Rails.root.join("app/views/alchemy/elements")
|
19
|
-
empty_directory Rails.root.join("app/views/alchemy/page_layouts")
|
20
|
-
end
|
21
|
-
|
22
|
-
def copy_view_dirs
|
23
|
-
copy_alchemy_views if @options['copy_views']
|
24
|
-
end
|
25
|
-
|
26
|
-
def copy_config
|
27
|
-
copy_file "#{config_path}/config.yml", "#{Rails.root}/config/alchemy/config.yml"
|
28
|
-
end
|
29
|
-
|
30
|
-
def copy_files
|
31
|
-
copy_file "#{current_path}/files/elements.yml", "#{Rails.root}/config/alchemy/elements.yml"
|
32
|
-
template "page_layouts.yml.tt", "#{Rails.root}/config/alchemy/page_layouts.yml"
|
33
|
-
copy_file "#{current_path}/files/alchemy.en.yml", "#{Rails.root}/config/locales/alchemy.en.yml"
|
34
|
-
copy_file "#{current_path}/files/alchemy.de.yml", "#{Rails.root}/config/locales/alchemy.de.yml"
|
35
|
-
copy_file "#{current_path}/files/alchemy.es.yml", "#{Rails.root}/config/locales/alchemy.es.yml"
|
36
|
-
copy_file "#{current_path}/files/application.html.erb", "#{Rails.root}/app/views/layouts/application.html.erb"
|
37
|
-
copy_file "#{current_path}/files/_standard.html.erb", "#{Rails.root}/app/views/alchemy/page_layouts/_standard.html.erb"
|
38
|
-
copy_file "#{current_path}/files/_article_view.html.erb", "#{Rails.root}/app/views/alchemy/elements/_article_view.html.erb"
|
39
|
-
copy_file "#{current_path}/files/_article_editor.html.erb", "#{Rails.root}/app/views/alchemy/elements/_article_editor.html.erb"
|
40
|
-
copy_file "#{current_path}/files/alchemy.elements.css.scss", "#{Rails.root}/app/assets/stylesheets/alchemy.elements.css.scss"
|
41
|
-
end
|
42
|
-
|
43
|
-
private
|
44
|
-
|
45
|
-
def config_path
|
46
|
-
@config_path ||= File.expand_path('../../../../../config/alchemy', current_path)
|
47
|
-
end
|
48
|
-
|
49
|
-
def copy_alchemy_views
|
50
|
-
ALCHEMY_VIEWS.each do |dir|
|
51
|
-
src = File.expand_path("../../../../../app/views/alchemy/#{dir}", current_path)
|
52
|
-
dest = Rails.root.join('app/views/alchemy', dir)
|
53
|
-
directory src, dest
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def current_path
|
58
|
-
@current_path ||= File.dirname(__FILE__)
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|