Class: Pullentity::Client::Generate::Project

Inherits:
Thor
  • Object
show all
Extended by:
Utils
Includes:
Utils
Defined in:
lib/pullentity-client/generate/project.rb

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Utils

base_location, create_directories, create_new_file, create_with_template, error, log, remove_directories, remove_files, templates, touch, underscore

Class Attribute Details

.app_idObject

Returns the value of attribute app_id.



11
12
13
# File 'lib/pullentity-client/generate/project.rb', line 11

def app_id
  @app_id
end

.device_platformObject

Returns the value of attribute device_platform.



11
12
13
# File 'lib/pullentity-client/generate/project.rb', line 11

def device_platform
  @device_platform
end

.project_nameObject

Returns the value of attribute project_name.



11
12
13
# File 'lib/pullentity-client/generate/project.rb', line 11

def project_name
  @project_name
end

Class Method Details

.copy_defaultsObject



29
30
# File 'lib/pullentity-client/generate/project.rb', line 29

def copy_defaults
end

.create(name) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/pullentity-client/generate/project.rb', line 15

def create(name)
  @project_name    = name

  begin
    create_directories('tmp')
    copy_defaults
    remove_old_files
    generate_files
    log "Your Pullentity Theme project is ready for you to get coding!"
  rescue => e
    error "There was an error generating your Pullentity Client project. #{e} #{e.backtrace}"
  end
end

.create_project_directoryObject



52
53
54
55
56
57
58
59
60
61
# File 'lib/pullentity-client/generate/project.rb', line 52

def create_project_directory
  create_directories('docs', 'spec',
                     "source/assets",
                     "source/assets/images",
                     "source/assets/fonts",
                     "source/assets/stylesheets",
                     "source/assets/javascripts",
                     "source/views",
                     "source/models")
end

.generate_filesObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/pullentity-client/generate/project.rb', line 32

def generate_files
  create_project_directory
  full_app_hash = {:app_name => @project_name, :app_name_underscore => underscore(@project_name), :platform => @device_platform}
  create_with_template('.gitignore', 'defaults/gitignore', full_app_hash)
  create_with_template('Gemfile', 'defaults/Gemfile', full_app_hash)
  create_with_template('LICENSE', 'defaults/LICENSE', full_app_hash)
  create_with_template('pullentity.yml', 'defaults/pullentity.yml', full_app_hash)

  create_with_template('config.rb', 'defaults/config', full_app_hash)
  default_templates = ['Readme.mkd']
  default_templates.each do |tempfile|
    create_with_template(tempfile, "defaults/#{tempfile}", full_app_hash)
  end

  FileUtils.cp_r(templates("app/."), location.join("source/") )

  create_with_template('source/layout.haml', 'defaults/layout.haml', full_app_hash)

end

.locationObject



66
67
68
# File 'lib/pullentity-client/generate/project.rb', line 66

def location
  base_location.join(@project_name)
end

.remove_old_filesObject



63
64
# File 'lib/pullentity-client/generate/project.rb', line 63

def remove_old_files
end

.source_rootObject



70
71
72
# File 'lib/pullentity-client/generate/project.rb', line 70

def source_root
  File.dirname(__FILE__)
end

Instance Method Details

#new(name) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/pullentity-client/generate/project.rb', line 81

def new(name)
  if File.exist?(base_location.join(name))

    if yes?("#{name} already exists, do you want to override? (yes or no)")
      ::Pullentity::Client::Generate::Project.create(name)
    else
      say "Skipping #{name} because it already exists"
    end
  else
    ::Pullentity::Client::Generate::Project.create(name)
  end

end