jgit 1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/bin/console +14 -0
 - data/bin/jgit +5 -0
 - data/bin/setup +7 -0
 - data/lib/jgit.rb +218 -0
 - data/lib/jgit/common.rb +53 -0
 - data/lib/jgit/desc.rb +13 -0
 - data/lib/jgit/group.rb +96 -0
 - data/lib/jgit/jutil.rb +33 -0
 - data/lib/jgit/version.rb +3 -0
 - data/test/group_test.rb +59 -0
 - data/test/task_test.rb +40 -0
 - metadata +115 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA1:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 41efe60696295077934ab249e3496db6eb20ac28
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: aff667c4c33f6576b8c03dd257ef4fc584965af2
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 44416444d9f20fe31a685a08b9d4b802bbf772d18fe626feb117229e3153acb762d9e64f0317c4f479c6d46789330d4b81a7b8af5cb23b36555466c6421d0add
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: ede60888fd10f1f2284f4712e8dd6d395a6f25d06caef52409da8eebc58de0001d0658c344289a21e911e4c35579b38fe0a429f704238146ef6db6e520cf531f
         
     | 
    
        data/bin/console
    ADDED
    
    | 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require "bundler/setup"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "jgit"
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            # You can add fixtures and/or initialization code here to make experimenting
         
     | 
| 
      
 7 
     | 
    
         
            +
            # with your gem easier. You can also use a different console, if you like.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            # (If you use this, don't forget to add pry to your Gemfile!)
         
     | 
| 
      
 10 
     | 
    
         
            +
            # require "pry"
         
     | 
| 
      
 11 
     | 
    
         
            +
            # Pry.start
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            require "irb"
         
     | 
| 
      
 14 
     | 
    
         
            +
            IRB.start
         
     | 
    
        data/bin/jgit
    ADDED
    
    
    
        data/bin/setup
    ADDED
    
    
    
        data/lib/jgit.rb
    ADDED
    
    | 
         @@ -0,0 +1,218 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'jgit/common'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'jgit/group'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'jgit/desc'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'jgit/version'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require 'thor'
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            module Jgit
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            	class Project < Thor
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            		PROMPT_TASK = "key in project name:"
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            		desc 'add <path> <name> [-g GROUP]', 'add new project'
         
     | 
| 
      
 16 
     | 
    
         
            +
            		method_option :group, :aliases => '-g', :desc => "group to operate"
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            		def add(path = nil, name = nil)
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            			group = get_group
         
     | 
| 
      
 21 
     | 
    
         
            +
            			path = prompt("key in project path:(empty for current dir)", Dir.pwd) if path.nil?
         
     | 
| 
      
 22 
     | 
    
         
            +
            			path = File.expand_path(path)
         
     | 
| 
      
 23 
     | 
    
         
            +
            			jexit "no such dir" unless File.directory?(path)
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            			name = prompt("key in project name:(empty for current dir)", File.basename(Dir.getwd)) if name.nil?
         
     | 
| 
      
 26 
     | 
    
         
            +
            			data = list(false, group)
         
     | 
| 
      
 27 
     | 
    
         
            +
            			data[name] = path
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            			save_data(project_path(group), data.to_json)
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            		end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            		desc 'list [-g GROUP]', 'list all projects, alias: ls'
         
     | 
| 
      
 34 
     | 
    
         
            +
            		method_option :group, :aliases => '-g', :desc => "group to operate"
         
     | 
| 
      
 35 
     | 
    
         
            +
            		map ls: :list
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            		def list(show = true, group = nil)
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            			group = get_group(group)
         
     | 
| 
      
 40 
     | 
    
         
            +
            			data = load_obj(project_path(group), Hash)
         
     | 
| 
      
 41 
     | 
    
         
            +
            			if show
         
     | 
| 
      
 42 
     | 
    
         
            +
            				data.each do |key, val|
         
     | 
| 
      
 43 
     | 
    
         
            +
            					puts "#{key}: #{val}"
         
     | 
| 
      
 44 
     | 
    
         
            +
            				end
         
     | 
| 
      
 45 
     | 
    
         
            +
            			end
         
     | 
| 
      
 46 
     | 
    
         
            +
            			data
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            		end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            		desc 'remove <name> [-g GROUP]', 'remove project, alias: rm'
         
     | 
| 
      
 51 
     | 
    
         
            +
            		method_option :group, :aliases => '-g', :desc => "group to operate"
         
     | 
| 
      
 52 
     | 
    
         
            +
            		map rm: :remove
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            		def remove(name = nil)
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
            			group = get_group
         
     | 
| 
      
 57 
     | 
    
         
            +
            			if name.nil?
         
     | 
| 
      
 58 
     | 
    
         
            +
            				data = list(true, group)
         
     | 
| 
      
 59 
     | 
    
         
            +
            				name = prompt(PROMPT_TASK)
         
     | 
| 
      
 60 
     | 
    
         
            +
            			else
         
     | 
| 
      
 61 
     | 
    
         
            +
            				data = list(false, group)
         
     | 
| 
      
 62 
     | 
    
         
            +
            			end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            			if data.delete(name).nil?
         
     | 
| 
      
 65 
     | 
    
         
            +
            				jexit "no such project"
         
     | 
| 
      
 66 
     | 
    
         
            +
            			else
         
     | 
| 
      
 67 
     | 
    
         
            +
            				save_data(project_path(group), data.to_json)
         
     | 
| 
      
 68 
     | 
    
         
            +
            			end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            		end
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
            		desc 'rename <name> <new_name> [-g GROUP]', 'rename project, alias: rn'
         
     | 
| 
      
 73 
     | 
    
         
            +
            		method_option :group, :aliases => '-g', :desc => "group to operate"
         
     | 
| 
      
 74 
     | 
    
         
            +
            		map rn: :rename
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
            		def rename(name = nil, new_name = nil)
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            			group = get_group
         
     | 
| 
      
 79 
     | 
    
         
            +
            			if name.nil?
         
     | 
| 
      
 80 
     | 
    
         
            +
            				data = list(true, group)
         
     | 
| 
      
 81 
     | 
    
         
            +
            				name = prompt(PROMPT_TASK)
         
     | 
| 
      
 82 
     | 
    
         
            +
            			else
         
     | 
| 
      
 83 
     | 
    
         
            +
            				data = list(false, group)
         
     | 
| 
      
 84 
     | 
    
         
            +
            			end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
            			new_name = prompt("key in new project name:", File.basename(Dir.getwd)) if new_name.nil?
         
     | 
| 
      
 87 
     | 
    
         
            +
            			jexit "new_name exist" if data.include?(new_name)
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
            			result = data.delete(name)
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
            			if result.nil?
         
     | 
| 
      
 92 
     | 
    
         
            +
            				jexit "no such project"
         
     | 
| 
      
 93 
     | 
    
         
            +
            			else
         
     | 
| 
      
 94 
     | 
    
         
            +
            				data[new_name] = result
         
     | 
| 
      
 95 
     | 
    
         
            +
            				save_data(project_path(group), data.to_json)
         
     | 
| 
      
 96 
     | 
    
         
            +
            			end
         
     | 
| 
      
 97 
     | 
    
         
            +
            		end
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            		desc 'commit [-g GROUP] [-p PROJECT]', 'git commit all file on given project'
         
     | 
| 
      
 100 
     | 
    
         
            +
            		method_option :group, :aliases => '-g', :desc => "group to operate"
         
     | 
| 
      
 101 
     | 
    
         
            +
            		method_option :project, :aliases => '-p', :desc => "project to operate"
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
            		def commit
         
     | 
| 
      
 104 
     | 
    
         
            +
            			exe "git add -A && git commit"
         
     | 
| 
      
 105 
     | 
    
         
            +
            		end
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
            		desc 'status [-g GROUP] [-p PROJECT]', 'git status on given project, alias: st'
         
     | 
| 
      
 108 
     | 
    
         
            +
            		method_option :group, :aliases => '-g', :desc => "group to operate"
         
     | 
| 
      
 109 
     | 
    
         
            +
            		method_option :project, :aliases => '-p', :desc => "project to operate"
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
      
 111 
     | 
    
         
            +
            		def status
         
     | 
| 
      
 112 
     | 
    
         
            +
            			exe "git status"
         
     | 
| 
      
 113 
     | 
    
         
            +
            		end
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
            		desc 'fetch [-g GROUP] [-p PROJECT]', 'git fetch on given project'
         
     | 
| 
      
 116 
     | 
    
         
            +
            		method_option :group, :aliases => '-g', :desc => "group to operate"
         
     | 
| 
      
 117 
     | 
    
         
            +
            		method_option :project, :aliases => '-p', :desc => "project to operate"
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
            		def fetch
         
     | 
| 
      
 120 
     | 
    
         
            +
            			exe "git fetch"
         
     | 
| 
      
 121 
     | 
    
         
            +
            		end
         
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
            		desc 'pull [-g GROUP] [-p PROJECT]', 'git pull on given project'
         
     | 
| 
      
 124 
     | 
    
         
            +
            		method_option :group, :aliases => '-g', :desc => "group to operate"
         
     | 
| 
      
 125 
     | 
    
         
            +
            		method_option :project, :aliases => '-p', :desc => "project to operate"
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
            		def pull
         
     | 
| 
      
 128 
     | 
    
         
            +
            			exe "git pull"
         
     | 
| 
      
 129 
     | 
    
         
            +
            		end
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
            		desc 'diff [-g GROUP] [-p PROJECT]', 'git diff on given project'
         
     | 
| 
      
 132 
     | 
    
         
            +
            		method_option :group, :aliases => '-g', :desc => "group to operate"
         
     | 
| 
      
 133 
     | 
    
         
            +
            		method_option :project, :aliases => '-p', :desc => "project to operate"
         
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
      
 135 
     | 
    
         
            +
            		def diff
         
     | 
| 
      
 136 
     | 
    
         
            +
            			exe "git diff ."
         
     | 
| 
      
 137 
     | 
    
         
            +
            		end
         
     | 
| 
      
 138 
     | 
    
         
            +
             
     | 
| 
      
 139 
     | 
    
         
            +
            		desc 'push [-g GROUP] [-p PROJECT]', 'git push on given project'
         
     | 
| 
      
 140 
     | 
    
         
            +
            		method_option :group, :aliases => '-g', :desc => "group to operate"
         
     | 
| 
      
 141 
     | 
    
         
            +
            		method_option :project, :aliases => '-p', :desc => "project to operate"
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
            		def push
         
     | 
| 
      
 144 
     | 
    
         
            +
            			exe "git push"
         
     | 
| 
      
 145 
     | 
    
         
            +
            		end
         
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
      
 147 
     | 
    
         
            +
            		desc 'exe <command...> [-g GROUP] [-p PROJECT]', 'exec command on given project'
         
     | 
| 
      
 148 
     | 
    
         
            +
            		method_option :group, :aliases => '-g', :desc => "group to operate"
         
     | 
| 
      
 149 
     | 
    
         
            +
            		method_option :project, :aliases => '-p', :desc => "project to operate"
         
     | 
| 
      
 150 
     | 
    
         
            +
             
     | 
| 
      
 151 
     | 
    
         
            +
            		long_desc EXE_DESC
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
            		def exe(command)
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
      
 155 
     | 
    
         
            +
            			list = list(false, get_group)
         
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
      
 157 
     | 
    
         
            +
            			jexit "no project, use 'jgit add' to add project first" if list.empty?
         
     | 
| 
      
 158 
     | 
    
         
            +
             
     | 
| 
      
 159 
     | 
    
         
            +
            			list.each do |name, path|
         
     | 
| 
      
 160 
     | 
    
         
            +
            				if !options[:project].nil? && options[:project] != name
         
     | 
| 
      
 161 
     | 
    
         
            +
            					next
         
     | 
| 
      
 162 
     | 
    
         
            +
            				end
         
     | 
| 
      
 163 
     | 
    
         
            +
            				puts ""
         
     | 
| 
      
 164 
     | 
    
         
            +
            				puts " - Task:#{bold(name)}"
         
     | 
| 
      
 165 
     | 
    
         
            +
            				Dir.chdir(path)
         
     | 
| 
      
 166 
     | 
    
         
            +
            				system command
         
     | 
| 
      
 167 
     | 
    
         
            +
            			end
         
     | 
| 
      
 168 
     | 
    
         
            +
            		end
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
            		desc 'chgrp <name>', 'change default group'
         
     | 
| 
      
 171 
     | 
    
         
            +
            		map cg: :chgrp
         
     | 
| 
      
 172 
     | 
    
         
            +
             
     | 
| 
      
 173 
     | 
    
         
            +
            		def chgrp(name = nil)
         
     | 
| 
      
 174 
     | 
    
         
            +
             
     | 
| 
      
 175 
     | 
    
         
            +
            			group = Group.new
         
     | 
| 
      
 176 
     | 
    
         
            +
            			name = group.select_group(name)
         
     | 
| 
      
 177 
     | 
    
         
            +
            			data = group.list(false)
         
     | 
| 
      
 178 
     | 
    
         
            +
             
     | 
| 
      
 179 
     | 
    
         
            +
            			name = "" if name == "default"
         
     | 
| 
      
 180 
     | 
    
         
            +
             
     | 
| 
      
 181 
     | 
    
         
            +
            			if name.empty? || data.include?(name)
         
     | 
| 
      
 182 
     | 
    
         
            +
            				puts "switch to #{name} group"
         
     | 
| 
      
 183 
     | 
    
         
            +
            				save_data(CURRENT_GROUP, name)
         
     | 
| 
      
 184 
     | 
    
         
            +
            			else
         
     | 
| 
      
 185 
     | 
    
         
            +
            				jexit "no such group"
         
     | 
| 
      
 186 
     | 
    
         
            +
            			end
         
     | 
| 
      
 187 
     | 
    
         
            +
            		end
         
     | 
| 
      
 188 
     | 
    
         
            +
             
     | 
| 
      
 189 
     | 
    
         
            +
            		desc 'version', 'version of jgit, alias: -v'
         
     | 
| 
      
 190 
     | 
    
         
            +
            		map "-v" => :version
         
     | 
| 
      
 191 
     | 
    
         
            +
            		map "--version" => :version
         
     | 
| 
      
 192 
     | 
    
         
            +
             
     | 
| 
      
 193 
     | 
    
         
            +
            		def version
         
     | 
| 
      
 194 
     | 
    
         
            +
            			puts "jgit #{Jgit::VERSION} -- jgit is a git management tool in Ruby"
         
     | 
| 
      
 195 
     | 
    
         
            +
            			puts "visit https://github.com/Jintin/jgit for more information"
         
     | 
| 
      
 196 
     | 
    
         
            +
            		end
         
     | 
| 
      
 197 
     | 
    
         
            +
             
     | 
| 
      
 198 
     | 
    
         
            +
            		desc "group [COMMAND]", "group management"
         
     | 
| 
      
 199 
     | 
    
         
            +
            		subcommand "group", Group
         
     | 
| 
      
 200 
     | 
    
         
            +
             
     | 
| 
      
 201 
     | 
    
         
            +
            		no_commands do
         
     | 
| 
      
 202 
     | 
    
         
            +
            			def get_group(group = nil)
         
     | 
| 
      
 203 
     | 
    
         
            +
            				group = options[:group] if group.nil?
         
     | 
| 
      
 204 
     | 
    
         
            +
            				group = "" if group == "default"
         
     | 
| 
      
 205 
     | 
    
         
            +
            				group = get_current_group if group.nil?
         
     | 
| 
      
 206 
     | 
    
         
            +
             
     | 
| 
      
 207 
     | 
    
         
            +
            				group
         
     | 
| 
      
 208 
     | 
    
         
            +
            			end
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
            		end
         
     | 
| 
      
 211 
     | 
    
         
            +
             
     | 
| 
      
 212 
     | 
    
         
            +
            	end
         
     | 
| 
      
 213 
     | 
    
         
            +
            end
         
     | 
| 
      
 214 
     | 
    
         
            +
             
     | 
| 
      
 215 
     | 
    
         
            +
            if __FILE__ == $0
         
     | 
| 
      
 216 
     | 
    
         
            +
            	Jgit::Project.start(ARGV)
         
     | 
| 
      
 217 
     | 
    
         
            +
            end
         
     | 
| 
      
 218 
     | 
    
         
            +
             
     | 
    
        data/lib/jgit/common.rb
    ADDED
    
    | 
         @@ -0,0 +1,53 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'jgit/jutil'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'json'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            FOLDER_PATH = "#{Dir.home}/.jgit"
         
     | 
| 
      
 7 
     | 
    
         
            +
            GROUP_DATA = "#{FOLDER_PATH}/group.json"
         
     | 
| 
      
 8 
     | 
    
         
            +
            CURRENT_GROUP = "#{FOLDER_PATH}/current.json"
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            def project_path(current = nil)
         
     | 
| 
      
 11 
     | 
    
         
            +
            	current = load_data(CURRENT_GROUP) if current.nil?
         
     | 
| 
      
 12 
     | 
    
         
            +
            	"#{FOLDER_PATH}/record_#{current}.json"
         
     | 
| 
      
 13 
     | 
    
         
            +
            end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            def get_current_group
         
     | 
| 
      
 16 
     | 
    
         
            +
            	if File.exists?(CURRENT_GROUP)
         
     | 
| 
      
 17 
     | 
    
         
            +
            		File.read(CURRENT_GROUP)
         
     | 
| 
      
 18 
     | 
    
         
            +
            	else
         
     | 
| 
      
 19 
     | 
    
         
            +
            		""
         
     | 
| 
      
 20 
     | 
    
         
            +
            	end
         
     | 
| 
      
 21 
     | 
    
         
            +
            end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            def delete_file(file)
         
     | 
| 
      
 24 
     | 
    
         
            +
            	if File.exist?(file)
         
     | 
| 
      
 25 
     | 
    
         
            +
            		File.delete(file)
         
     | 
| 
      
 26 
     | 
    
         
            +
            	end
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            def save_data(path, data)
         
     | 
| 
      
 30 
     | 
    
         
            +
            	unless File.exist?(FOLDER_PATH)
         
     | 
| 
      
 31 
     | 
    
         
            +
            		FileUtils.mkdir_p(FOLDER_PATH)
         
     | 
| 
      
 32 
     | 
    
         
            +
            	end
         
     | 
| 
      
 33 
     | 
    
         
            +
            	File.open(path, 'w+') do |f|
         
     | 
| 
      
 34 
     | 
    
         
            +
            		f.write(data)
         
     | 
| 
      
 35 
     | 
    
         
            +
            	end
         
     | 
| 
      
 36 
     | 
    
         
            +
            end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            def load_data(path)
         
     | 
| 
      
 39 
     | 
    
         
            +
            	if File.exists?(path)
         
     | 
| 
      
 40 
     | 
    
         
            +
            		File.read(path)
         
     | 
| 
      
 41 
     | 
    
         
            +
            	else
         
     | 
| 
      
 42 
     | 
    
         
            +
            		""
         
     | 
| 
      
 43 
     | 
    
         
            +
            	end
         
     | 
| 
      
 44 
     | 
    
         
            +
            end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            def load_obj(path, cls)
         
     | 
| 
      
 47 
     | 
    
         
            +
            	if File.exists?(path)
         
     | 
| 
      
 48 
     | 
    
         
            +
            		file = File.read(path)
         
     | 
| 
      
 49 
     | 
    
         
            +
            		JSON.parse(file)
         
     | 
| 
      
 50 
     | 
    
         
            +
            	else
         
     | 
| 
      
 51 
     | 
    
         
            +
            		cls.new
         
     | 
| 
      
 52 
     | 
    
         
            +
            	end
         
     | 
| 
      
 53 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/jgit/desc.rb
    ADDED
    
    
    
        data/lib/jgit/group.rb
    ADDED
    
    | 
         @@ -0,0 +1,96 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'jgit/common'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'thor'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module Jgit
         
     | 
| 
      
 7 
     | 
    
         
            +
            	class Group < Thor
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            		PROMPT_GROUP = "key in group name:"
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            		desc 'add <name>', 'add new group'
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            		def add(name = nil)
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            			name = prompt(PROMPT_GROUP) if name.nil?
         
     | 
| 
      
 16 
     | 
    
         
            +
            			jexit "no such group" if name.empty?
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            			data = list(false)
         
     | 
| 
      
 19 
     | 
    
         
            +
            			data.push(name) unless data.include?(name)
         
     | 
| 
      
 20 
     | 
    
         
            +
            			save_data(GROUP_DATA, data.to_json)
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            		end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            		desc 'list', 'list group'
         
     | 
| 
      
 25 
     | 
    
         
            +
            		map ls: :list
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            		def list(show = true)
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            			current = load_data(CURRENT_GROUP)
         
     | 
| 
      
 30 
     | 
    
         
            +
            			current = "default" if current.empty?
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            			data = load_obj(GROUP_DATA, Array)
         
     | 
| 
      
 33 
     | 
    
         
            +
            			data.unshift("default")
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            			if show
         
     | 
| 
      
 36 
     | 
    
         
            +
            				data.each do |val|
         
     | 
| 
      
 37 
     | 
    
         
            +
            					puts (val == current ? "> " : "  ") + val
         
     | 
| 
      
 38 
     | 
    
         
            +
            				end
         
     | 
| 
      
 39 
     | 
    
         
            +
            			end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            			data.delete("default")
         
     | 
| 
      
 42 
     | 
    
         
            +
            			data
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
            		end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            		desc 'remove <name>', 'remove group'
         
     | 
| 
      
 47 
     | 
    
         
            +
            		map rm: :remove
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            		def remove(name)
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            			name = select_group(name)
         
     | 
| 
      
 52 
     | 
    
         
            +
            			data = list(false)
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            			if data.delete(name).nil?
         
     | 
| 
      
 55 
     | 
    
         
            +
            				jexit name == "default" ? "can't remove default group" : "no such group"
         
     | 
| 
      
 56 
     | 
    
         
            +
            			else
         
     | 
| 
      
 57 
     | 
    
         
            +
            				delete_file(CURRENT_GROUP) if name == load_data(CURRENT_GROUP)
         
     | 
| 
      
 58 
     | 
    
         
            +
            				delete_file(project_path(name))
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
            				save_data(GROUP_DATA, data.to_json)
         
     | 
| 
      
 61 
     | 
    
         
            +
            			end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            		end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
            		desc 'rename <name> <new_name>', 'rename group'
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            		def rename(name = nil, new_name = nil)
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            			name = select_group(name)
         
     | 
| 
      
 70 
     | 
    
         
            +
            			data = list(false)
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
            			new_name = prompt("key in group name:") if new_name.nil?
         
     | 
| 
      
 73 
     | 
    
         
            +
            			jexit "new_name exist" if data.include?(new_name)
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            			if data.delete(name).nil?
         
     | 
| 
      
 76 
     | 
    
         
            +
            				jexit "no such group"
         
     | 
| 
      
 77 
     | 
    
         
            +
            			else
         
     | 
| 
      
 78 
     | 
    
         
            +
            				save_data(CURRENT_GROUP, new_name) if name == load_data(CURRENT_GROUP)
         
     | 
| 
      
 79 
     | 
    
         
            +
            				data.push(new_name)
         
     | 
| 
      
 80 
     | 
    
         
            +
            				save_data(GROUP_DATA, data.to_json)
         
     | 
| 
      
 81 
     | 
    
         
            +
            			end
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
            		end
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            		no_commands do
         
     | 
| 
      
 86 
     | 
    
         
            +
            			def select_group(name = nil)
         
     | 
| 
      
 87 
     | 
    
         
            +
            				if name.nil?
         
     | 
| 
      
 88 
     | 
    
         
            +
            					list
         
     | 
| 
      
 89 
     | 
    
         
            +
            					name = prompt(PROMPT_GROUP)
         
     | 
| 
      
 90 
     | 
    
         
            +
            				end
         
     | 
| 
      
 91 
     | 
    
         
            +
            				name
         
     | 
| 
      
 92 
     | 
    
         
            +
            			end
         
     | 
| 
      
 93 
     | 
    
         
            +
            		end
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
            	end
         
     | 
| 
      
 96 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/jgit/jutil.rb
    ADDED
    
    | 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            def prompt(args, default = "")
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            	begin
         
     | 
| 
      
 6 
     | 
    
         
            +
            		puts(args)
         
     | 
| 
      
 7 
     | 
    
         
            +
            		print "> "
         
     | 
| 
      
 8 
     | 
    
         
            +
            		STDOUT.flush
         
     | 
| 
      
 9 
     | 
    
         
            +
            		text = STDIN.gets.chomp
         
     | 
| 
      
 10 
     | 
    
         
            +
            	rescue SystemExit, Interrupt
         
     | 
| 
      
 11 
     | 
    
         
            +
            		jexit
         
     | 
| 
      
 12 
     | 
    
         
            +
            	end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            	if text.empty?
         
     | 
| 
      
 15 
     | 
    
         
            +
            		default
         
     | 
| 
      
 16 
     | 
    
         
            +
            	else
         
     | 
| 
      
 17 
     | 
    
         
            +
            		text
         
     | 
| 
      
 18 
     | 
    
         
            +
            	end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            def jexit(str = nil)
         
     | 
| 
      
 23 
     | 
    
         
            +
            	if str.nil?
         
     | 
| 
      
 24 
     | 
    
         
            +
            		puts "exit with 0"
         
     | 
| 
      
 25 
     | 
    
         
            +
            	else
         
     | 
| 
      
 26 
     | 
    
         
            +
            		puts str
         
     | 
| 
      
 27 
     | 
    
         
            +
            	end
         
     | 
| 
      
 28 
     | 
    
         
            +
            	exit
         
     | 
| 
      
 29 
     | 
    
         
            +
            end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            def bold(text)
         
     | 
| 
      
 32 
     | 
    
         
            +
            	"\033[1;4m#{text}\033[0m"
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/jgit/version.rb
    ADDED
    
    
    
        data/test/group_test.rb
    ADDED
    
    | 
         @@ -0,0 +1,59 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'minitest/autorun'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'jgit/common'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'jgit/group'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'jgit'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            class GroupTest < Minitest::Test
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            	def test_add
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            		jgit = Jgit::Group.new
         
     | 
| 
      
 13 
     | 
    
         
            +
            		jgit.add("test")
         
     | 
| 
      
 14 
     | 
    
         
            +
            		data = jgit.list(false)
         
     | 
| 
      
 15 
     | 
    
         
            +
            		jgit.remove("test")
         
     | 
| 
      
 16 
     | 
    
         
            +
            		assert data.include?("test")
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            	end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            	def test_remove
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            		jgit = Jgit::Group.new
         
     | 
| 
      
 23 
     | 
    
         
            +
            		jgit.add("test")
         
     | 
| 
      
 24 
     | 
    
         
            +
            		data = jgit.list(false)
         
     | 
| 
      
 25 
     | 
    
         
            +
            		jgit.remove("test")
         
     | 
| 
      
 26 
     | 
    
         
            +
            		data2 = jgit.list(false)
         
     | 
| 
      
 27 
     | 
    
         
            +
            		assert data.include?("test") && !data2.include?("test")
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            	end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            	def test_rename
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            		jgit = Jgit::Group.new
         
     | 
| 
      
 34 
     | 
    
         
            +
            		jgit.add("test")
         
     | 
| 
      
 35 
     | 
    
         
            +
            		jgit.rename("test", "newtest")
         
     | 
| 
      
 36 
     | 
    
         
            +
            		data = jgit.list(false)
         
     | 
| 
      
 37 
     | 
    
         
            +
            		jgit.remove("newtest")
         
     | 
| 
      
 38 
     | 
    
         
            +
            		assert !data.include?("test") && data.include?("newtest")
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            	end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            	def test_chgrp
         
     | 
| 
      
 43 
     | 
    
         
            +
            		task = Jgit::Project.new
         
     | 
| 
      
 44 
     | 
    
         
            +
            		group = Jgit::Group.new
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            		current = load_data(CURRENT_GROUP)
         
     | 
| 
      
 47 
     | 
    
         
            +
            		group.add("test")
         
     | 
| 
      
 48 
     | 
    
         
            +
            		task.chgrp("test")
         
     | 
| 
      
 49 
     | 
    
         
            +
            		task.add(".", "test")
         
     | 
| 
      
 50 
     | 
    
         
            +
            		data = task.list(false)
         
     | 
| 
      
 51 
     | 
    
         
            +
            		task.remove("test")
         
     | 
| 
      
 52 
     | 
    
         
            +
            		task.chgrp(current)
         
     | 
| 
      
 53 
     | 
    
         
            +
            		data2 = task.list(false)
         
     | 
| 
      
 54 
     | 
    
         
            +
            		group.remove("test")
         
     | 
| 
      
 55 
     | 
    
         
            +
            		assert data.include?("test") && !data2.include?("test")
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            	end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            end
         
     | 
    
        data/test/task_test.rb
    ADDED
    
    | 
         @@ -0,0 +1,40 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'minitest/autorun'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'jgit/common'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'jgit'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            class TaskTest < Minitest::Test
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            	def test_add
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            		jgit = Jgit::Project.new
         
     | 
| 
      
 12 
     | 
    
         
            +
            		jgit.add(".", "test")
         
     | 
| 
      
 13 
     | 
    
         
            +
            		data = jgit.list(false)
         
     | 
| 
      
 14 
     | 
    
         
            +
            		jgit.remove("test")
         
     | 
| 
      
 15 
     | 
    
         
            +
            		assert_equal File.expand_path("."), data["test"]
         
     | 
| 
      
 16 
     | 
    
         
            +
            	end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            	def test_remove
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            		jgit = Jgit::Project.new
         
     | 
| 
      
 21 
     | 
    
         
            +
            		jgit.add(".", "test")
         
     | 
| 
      
 22 
     | 
    
         
            +
            		data = jgit.list(false)
         
     | 
| 
      
 23 
     | 
    
         
            +
            		jgit.remove("test")
         
     | 
| 
      
 24 
     | 
    
         
            +
            		data2 = jgit.list(false)
         
     | 
| 
      
 25 
     | 
    
         
            +
            		assert !data["test"].nil? && data2["test"].nil?
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            	end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            	def test_rename
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            		jgit = Jgit::Project.new
         
     | 
| 
      
 32 
     | 
    
         
            +
            		jgit.add(".", "test")
         
     | 
| 
      
 33 
     | 
    
         
            +
            		jgit.rename("test", "newtest")
         
     | 
| 
      
 34 
     | 
    
         
            +
            		data = jgit.list(false)
         
     | 
| 
      
 35 
     | 
    
         
            +
            		jgit.remove("newtest")
         
     | 
| 
      
 36 
     | 
    
         
            +
            		assert data["test"].nil? && !data["newtest"].nil?
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            	end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,115 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: jgit
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: '1.1'
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 7 
     | 
    
         
            +
            - jintin
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 9 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 10 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-12-16 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: bundler
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '1.10'
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 21 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '1.10'
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              name: rake
         
     | 
| 
      
 29 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '10.0'
         
     | 
| 
      
 34 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 35 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '10.0'
         
     | 
| 
      
 41 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 42 
     | 
    
         
            +
              name: minitest
         
     | 
| 
      
 43 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 44 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 45 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 46 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 47 
     | 
    
         
            +
                    version: 5.8.0
         
     | 
| 
      
 48 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 49 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 50 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 53 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                    version: 5.8.0
         
     | 
| 
      
 55 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 56 
     | 
    
         
            +
              name: thor
         
     | 
| 
      
 57 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 58 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 59 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 60 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 61 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 62 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 63 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 64 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 65 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 66 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 67 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 68 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 69 
     | 
    
         
            +
            description: Jgit is a tool to help you manage multiple separate git-base project
         
     | 
| 
      
 70 
     | 
    
         
            +
              in local file system.
         
     | 
| 
      
 71 
     | 
    
         
            +
            email:
         
     | 
| 
      
 72 
     | 
    
         
            +
            - jintinapps@gmail.com
         
     | 
| 
      
 73 
     | 
    
         
            +
            executables:
         
     | 
| 
      
 74 
     | 
    
         
            +
            - jgit
         
     | 
| 
      
 75 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 76 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 77 
     | 
    
         
            +
            files:
         
     | 
| 
      
 78 
     | 
    
         
            +
            - bin/console
         
     | 
| 
      
 79 
     | 
    
         
            +
            - bin/jgit
         
     | 
| 
      
 80 
     | 
    
         
            +
            - bin/setup
         
     | 
| 
      
 81 
     | 
    
         
            +
            - lib/jgit.rb
         
     | 
| 
      
 82 
     | 
    
         
            +
            - lib/jgit/common.rb
         
     | 
| 
      
 83 
     | 
    
         
            +
            - lib/jgit/desc.rb
         
     | 
| 
      
 84 
     | 
    
         
            +
            - lib/jgit/group.rb
         
     | 
| 
      
 85 
     | 
    
         
            +
            - lib/jgit/jutil.rb
         
     | 
| 
      
 86 
     | 
    
         
            +
            - lib/jgit/version.rb
         
     | 
| 
      
 87 
     | 
    
         
            +
            - test/group_test.rb
         
     | 
| 
      
 88 
     | 
    
         
            +
            - test/task_test.rb
         
     | 
| 
      
 89 
     | 
    
         
            +
            homepage: https://github.com/Jintin/jgit
         
     | 
| 
      
 90 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 91 
     | 
    
         
            +
            - MIT
         
     | 
| 
      
 92 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
      
 93 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 94 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 95 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 96 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 97 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 98 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 99 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 100 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 101 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 102 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 103 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 104 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 105 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 106 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 107 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 108 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 109 
     | 
    
         
            +
            rubygems_version: 2.4.5.1
         
     | 
| 
      
 110 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 111 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
      
 112 
     | 
    
         
            +
            summary: git management tool
         
     | 
| 
      
 113 
     | 
    
         
            +
            test_files:
         
     | 
| 
      
 114 
     | 
    
         
            +
            - test/group_test.rb
         
     | 
| 
      
 115 
     | 
    
         
            +
            - test/task_test.rb
         
     |