Class: Dev::Project
Instance Method Summary collapse
- #context ⇒ Object
- #defaults ⇒ Object
- #get_default_scm_type ⇒ Object
- #get_default_scm_uri ⇒ Object
- #get_default_value_fullname ⇒ Object
- #get_default_value_group ⇒ Object
- #get_default_value_name ⇒ Object
- #get_default_value_type ⇒ Object
-
#initialize ⇒ Project
constructor
A new instance of Project.
- #loc ⇒ Object
- #loc_cmd ⇒ Object
- #loc_total ⇒ Object
- #refresh ⇒ Object
- #stamp_task(name) ⇒ Object
Methods inherited from Hash
get_hash_value, #get_value, print_hash, set_hash_value, #set_value, #strip_auto_entries
Constructor Details
Instance Method Details
#context ⇒ Object
121 122 123 |
# File 'lib/dev/Project.rb', line 121 def context Dev::Environment.user + "." + Dev::Environment.machine end |
#defaults ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/dev/Project.rb', line 14 def defaults system_call = Dev::SystemCall.new("semver init") if(!File.exist?(".semver")) h=Hash.new h[:scm_uri] = get_default_scm_uri if !get_default_scm_uri.nil? h[:scm_type] = get_default_scm_type if !get_default_scm_type.nil? h[:directory]=Rake.original_dir() h[:fullname]=get_default_value_fullname h[:group]=get_default_value_group h[:name]=get_default_value_name h[:version]= "#{SemVer.find.major}.#{SemVer.find.minor}.#{SemVer.find.patch}" h[:src_glob]="**/{*.{rb,feature,spec,cs,c,m,cpp,h,hpp,csproj,vcproj,snk,vcxproj,xcodeproj,plist,xib,sln,filters,xaml,xml,resx,settings,txt,png,bmp,ico},Jamfile,.semver,Gemfile,README,LICENSE}" h[:src_glob]="**/{*.{rb,feature,spec,cs,c,m,cpp,h,hpp,csproj,vcproj,snk,vcxproj,xcodeproj,plist,pch,strings,storyboard,xib,sln,filters,xaml,xml,resx,settings,txt,png,bmp,ico},Jamfile,.semver,Gemfile,README,LICENSE}" if RUBY_PLATFORM.include?("darwin") h[:type]=get_default_value_type h[:dev_root]= "#{Dev::Environment.dev_root}" if !Dev::BoostBuild.defaultToolset.nil? h[:toolset] = Dev::BoostBuild.defaultToolset ENV["VisualStudioVersion"]="11.0" if h[:toolset]=="msvc-11.0" end h[:file_count]=Hash.new ["rb","spec","feature","cs","cpp","h","hpp","vcxproj","csproj"].each{ |ext| count=Dir.glob("**/*.#{ext}").count h[:file_count][ext.to_sym]=count if count > 0 } h[:paths] = Dev::Paths.new h[:dep]=Deps.new return h end |
#get_default_scm_type ⇒ Object
81 82 83 84 85 |
# File 'lib/dev/Project.rb', line 81 def get_default_scm_type return "svn" if File.exists?(".svn") return "git" if File.exists?(".git") return nil end |
#get_default_scm_uri ⇒ Object
87 88 89 90 91 92 93 94 95 96 |
# File 'lib/dev/Project.rb', line 87 def get_default_scm_uri if File.exists?(".svn") text=`svn info` text.scan(/URL: ([\w:\/.-]+)/).each { |m| return m } end return nil end |
#get_default_value_fullname ⇒ Object
58 59 60 61 62 63 64 65 |
# File 'lib/dev/Project.rb', line 58 def get_default_value_fullname wrk="#{Dev::Environment.dev_root}/wrk/" if(Rake.original_dir.include?(wrk)) name=Rake.original_dir.gsub(wrk,"") return name if(name.split('/').count==3) end nil end |
#get_default_value_group ⇒ Object
67 68 69 70 71 |
# File 'lib/dev/Project.rb', line 67 def get_default_value_group dirs=Rake.original_dir().split('/') return dirs[dirs.length-3] if(dirs.length > 3) return "unknown" end |
#get_default_value_name ⇒ Object
52 53 54 55 56 |
# File 'lib/dev/Project.rb', line 52 def get_default_value_name dirs=::Rake.original_dir().split('/') return dirs[dirs.length-2] if(dirs.length > 3) return nil end |
#get_default_value_type ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/dev/Project.rb', line 73 def get_default_value_type Dir.glob("**/*.{cpp,hpp}").each { |f| return "c++" } Dir.glob("**/*.{c,h}").each { |f| return "c" } Dir.glob("**/*.{cs}").each { |f| return "C#" } Dir.glob("**/*.{gemspec}").each { |f| return "gem" } return "ruby" end |
#loc ⇒ Object
106 107 108 |
# File 'lib/dev/Project.rb', line 106 def loc system(loc_cmd) end |
#loc_cmd ⇒ Object
98 99 100 101 102 103 104 |
# File 'lib/dev/Project.rb', line 98 def loc_cmd cmd="countloc --recurse ." cmd="countloc --recurse --mode ruby ." if self[:type]=="ruby" || self[:type]=="gem" cmd="countloc --recurse --mode csharp ." if self[:type]=="C#" cmd="countloc --recurse --mode cpp ." if self[:type]=="c++" return cmd end |
#loc_total ⇒ Object
110 111 112 113 114 115 116 117 118 119 |
# File 'lib/dev/Project.rb', line 110 def loc_total # parse the output for TOTAL LOC call=Dev::SystemCall.new(loc_cmd) words=Array.new words=call.output.split if !call.nil? && !call.output.nil? if(words.length>6) return words[words.length-6] end "?" end |
#refresh ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/dev/Project.rb', line 44 def refresh puts_debug "Dev::Project.refresh" self[:dep].refresh #update_default_values #db = Dev::Database.new #db.set_branch_uri(self[:fullname],self[:scm_uri]) end |
#stamp_task(name) ⇒ Object
125 126 127 |
# File 'lib/dev/Project.rb', line 125 def stamp_task(name) File.open("#{name}.taskstamp." + context,"w") { |f| f.write(Time.now.to_s) } end |