Class: Pave::Concrete
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
Class Method Summary collapse
Instance Method Summary collapse
- #clone_concrete5 ⇒ Object
- #create_virtual_host ⇒ Object
-
#initialize(name) ⇒ Concrete
constructor
A new instance of Concrete.
- #initialize_git ⇒ Object
- #modify_folder_permissions ⇒ Object
- #remove_extra_folders ⇒ Object
- #removed_folders ⇒ Object
- #set_up_app_folder ⇒ Object
- #setup ⇒ Object
- #sudo? ⇒ Boolean
- #symlink_folders ⇒ Object
- #symlinked_folders ⇒ Object
- #world_writable_folders ⇒ Object
Methods included from Shell
Constructor Details
#initialize(name) ⇒ Concrete
14 15 16 |
# File 'lib/pave/concrete.rb', line 14 def initialize(name) @name = name end |
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
5 6 7 |
# File 'lib/pave/concrete.rb', line 5 def name @name end |
Class Method Details
.create(name, options) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/pave/concrete.rb', line 7 def self.create(name, ) say "" return say "Options should be given after the application name. For details run: `pave help`" unless name.size > 0 say "Setting up Concrete5 in folder #{name}." new(name).setup end |
Instance Method Details
#clone_concrete5 ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/pave/concrete.rb', line 26 def clone_concrete5 say "* Downloading Concrete5 version 5.6.2.1..." sh "curl http://www.concrete5.org/download_file/-/view/58379/8497 -o c5.zip > /dev/null" say "" say "* Unzipping..." sh "unzip c5.zip" sh "rm c5.zip" sh "mv concrete5.6.2.1 #{name}" say "* Concrete5 downloaded and unzipped into ./#{name}." end |
#create_virtual_host ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/pave/concrete.rb', line 57 def create_virtual_host if sudo? Pave::VirtualHost.new("#{name}.site").create_vhost else say "Virtual host not set up. Run `sudo pave vh:create #{name}.site` to create it." end end |
#initialize_git ⇒ Object
46 47 48 49 50 51 |
# File 'lib/pave/concrete.rb', line 46 def initialize_git say "* Setting up git..." sh "echo 'files/cache/*' > #{name}/.gitignore" sh "echo 'files/tmp/*' >> #{name}/.gitignore" sh "cd #{name} && git init && git add -A && git commit -m 'Initial'" end |
#modify_folder_permissions ⇒ Object
65 66 67 68 69 |
# File 'lib/pave/concrete.rb', line 65 def world_writable_folders.each do |folder| sh "chmod -R 777 #{folder}" end end |
#remove_extra_folders ⇒ Object
97 98 99 |
# File 'lib/pave/concrete.rb', line 97 def remove_extra_folders sh "rmdir #{name}/" + removed_folders.join(" #{name}/") end |
#removed_folders ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/pave/concrete.rb', line 101 def removed_folders [ :tools, :libraries, :models, :css, :controllers, :helpers, :js, :languages, :mail, ] end |
#set_up_app_folder ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/pave/concrete.rb', line 37 def set_up_app_folder say "* Setting up folders..." sh "mkdir #{name}/app" symlink_folders remove_extra_folders end |
#setup ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/pave/concrete.rb', line 18 def setup clone_concrete5 set_up_app_folder initialize_git create_virtual_host self end |
#sudo? ⇒ Boolean
53 54 55 |
# File 'lib/pave/concrete.rb', line 53 def sudo? `whoami` == "root" end |
#symlink_folders ⇒ Object
79 80 81 82 83 |
# File 'lib/pave/concrete.rb', line 79 def symlink_folders symlinked_folders.each do |folder| sh "ln -s #{name}/#{folder} app/#{folder}" end end |
#symlinked_folders ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/pave/concrete.rb', line 85 def symlinked_folders [ :blocks, :elements, :jobs, :page_types, :single_pages, :themes, :packages, ] end |
#world_writable_folders ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/pave/concrete.rb', line 71 def world_writable_folders [ :config, :packages, :files ] end |