Class: Raykit::Project
- Inherits:
-
Object
- Object
- Raykit::Project
- Defined in:
- lib/raykit/project.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
Instance Method Summary collapse
- #commit ⇒ Object
- #directory ⇒ Object
- #elapsed ⇒ Object
- #get_dev_dir(subdir) ⇒ Object
- #info ⇒ Object
-
#initialize ⇒ Project
constructor
A new instance of Project.
- #last_modified_filename ⇒ Object
- #pull ⇒ Object
- #push ⇒ Object
- #remote ⇒ Object
- #run(command, quit_on_failure = true) ⇒ Object
- #summary ⇒ Object
- #tag ⇒ Object
- #version ⇒ Object
Constructor Details
#initialize ⇒ Project
Returns a new instance of Project.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/raykit/project.rb', line 11 def initialize() @remote='' if(Dir.exist?(RAKE_DIRECTORY)) @directory=RAKE_DIRECTORY if(Dir.exist?("#{RAKE_DIRECTORY}/.git") && Dir.exist?(@directory)) git_directory=Raykit::Git::Directory.new(@directory) @remote=git_directory.remote end else @directory='' #@remote='' end if(defined?(NAME)) @name=NAME else remote_parts = @remote.split('/') if(remote_parts.length > 0) @name=remote_parts[-1].gsub('.git','') end end @version=Raykit::Version.detect(@name) end |
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
6 7 8 |
# File 'lib/raykit/project.rb', line 6 def name @name end |
Instance Method Details
#commit ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/raykit/project.rb', line 84 def commit Dir.chdir(@directory) do if(File.exist?('.gitignore')) status=`git status` if(status.include?('Changes not staged for commit:')) run("git add --all") if(GIT_DIRECTORY.outstanding_commit?) run("git commit -m'update'") end end else puts "warning: .gitignore not found." end end self end |
#directory ⇒ Object
41 42 43 |
# File 'lib/raykit/project.rb', line 41 def directory @directory end |
#elapsed ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'lib/raykit/project.rb', line 59 def elapsed elapsed=TIMER.elapsed if(elapsed < 1.0) "%.1f" % (TIMER.elapsed) + "s" else "%.0f" % (TIMER.elapsed) + "s" end end |
#get_dev_dir(subdir) ⇒ Object
37 38 39 |
# File 'lib/raykit/project.rb', line 37 def get_dev_dir(subdir) Raykit::Environment::get_dev_dir(subdir) end |
#info ⇒ Object
68 69 70 71 72 73 74 75 76 77 |
# File 'lib/raykit/project.rb', line 68 def info puts '' puts "PROJECT.name = " + Rainbow(PROJECT.name).yellow.bright puts "PROJECT.version = " + Rainbow(PROJECT.version).yellow.bright puts "PROJECT.remote = " + Rainbow(PROJECT.remote).yellow.bright puts "PROJECT.last_modified_filename = " + Rainbow(PROJECT.last_modified_filename).yellow.bright puts "PROJECT.elapsed = " + Rainbow(PROJECT.elapsed).yellow.bright puts '' self end |
#last_modified_filename ⇒ Object
53 54 55 56 57 |
# File 'lib/raykit/project.rb', line 53 def last_modified_filename Dir.chdir(@directory) do Dir.glob("**/*").max_by {|f| File.mtime(f)} end end |
#pull ⇒ Object
112 113 114 115 116 117 |
# File 'lib/raykit/project.rb', line 112 def pull Dir.chdir(@directory) do run('git pull') end self end |
#push ⇒ Object
101 102 103 104 105 106 107 108 109 110 |
# File 'lib/raykit/project.rb', line 101 def push Dir.chdir(@directory) do status=`git status` if(status.include?('use "git push"')) run('git push') run('git push --tags') end end self end |
#remote ⇒ Object
49 50 51 |
# File 'lib/raykit/project.rb', line 49 def remote @remote end |
#run(command, quit_on_failure = true) ⇒ Object
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/raykit/project.rb', line 133 def run(command,quit_on_failure=true) if(command.kind_of?(Array)) command.each{|subcommand| run(subcommand,quit_on_failure)} else cmd = Command.new(command) elapsed_str = Timer.get_elapsed_str(cmd.elapsed,0) if(cmd.exitstatus == 0) puts elapsed_str + " " + Rainbow(cmd.command).yellow.bright return elapsed_str + " " + cmd.command else puts "\r\n" + cmd.command + "\r\n" system(cmd.command) puts '' if(quit_on_failure) abort Rainbow(elapsed_str).red.bright + " " + Rainbow(cmd.command).white end end end end |
#summary ⇒ Object
79 80 81 82 |
# File 'lib/raykit/project.rb', line 79 def summary puts "[" + elapsed + "] " + Rainbow(@name).yellow.bright + " " + Rainbow(version).yellow.bright end |
#tag ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/raykit/project.rb', line 119 def tag Dir.chdir(@directory) do tag = `git describe --abbrev=0 --tags`.strip if(@version != tag) #run('git add --all') run("git tag #{@version} -m'#{@version}'") #run('git push') #run("git push --tags") push end end self end |
#version ⇒ Object
45 46 47 |
# File 'lib/raykit/project.rb', line 45 def version @version end |