dev 1.0.247 → 2.0.0

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.
data/lib/dev/Deps.rb DELETED
@@ -1,44 +0,0 @@
1
- module Dev
2
- class Deps < Hash
3
- def refresh
4
- puts_debug "Dev::Deps.refresh"
5
- start_time=Time.now
6
- self.each{ |k,v|
7
- if !v.nil? && v.kind_of?(Hash)
8
- v[:dir]=get_dir(v) if !v.has_key?(:dir)
9
- v[:rev]=get_rev(v) if !v.has_key?(:rev) && !get_rev(v).nil?
10
- v[:uri]=get_uri(v)
11
- end
12
- }
13
- puts_debug "Deps refresh elapsed time " + (Time.now-start_time).to_s
14
- end
15
-
16
- def get_dir(h)
17
- uri=Dev::Environment.expand_string_variables(h[:uri])
18
- uri_words=uri.split('/')
19
- while(uri_words.length > 3) do
20
- uri_words.shift
21
- end
22
- return uri_words.join('/')
23
- end
24
-
25
- def get_rev(h)
26
- if(h.has_key?(:uri) && h[:uri].include?('@') && !h[:uri].include?("@REV"))
27
- return h[:uri].split('@')[1]
28
- end
29
- if(h.has_key?(:dir) && h[:dir].include?('@') && !h[:dir].include?("@REV"))
30
- return h[:dir].split('@')[1]
31
- end
32
- nil
33
- end
34
-
35
- def get_uri(h)
36
- uri=h[:uri]
37
- if(uri.include?("@REV") && h.has_key?(:rev) && !h[:rev].nil?)
38
- uri=uri.gsub("@REV","@#{h[:rev]}")
39
- end
40
- return uri
41
- end
42
-
43
- end # class Deps
44
- end # module Dev
@@ -1,142 +0,0 @@
1
- puts_debug "read " + __FILE__
2
-
3
- module Dev
4
-
5
- class Environment
6
- def self.replace_text_in_glob(glob,search,replace)
7
- Dir.glob(glob).each{ |f| replace_text_in_file(f,search,replace) }
8
- end
9
-
10
- def self.copy_from_template(source_directory,target_directory,glob_pattern,search,replace)
11
- Dir.chdir(source_directory) do
12
- Dir.glob("**/*") {|f|
13
- if(!File.directory?(f))
14
- target_file = target_directory + "/" + f.gsub(search,replace)
15
- if(!File.exist?(target_file))
16
- FileUtils.mkdir_p(File.dirname(target_file)) if(!Dir.exist?(File.dirname(target_file)))
17
- FileUtils.cp(f,target_file)
18
- end
19
- end
20
- }
21
- end
22
- Dir.glob(glob_pattern) { |f|
23
- Dev::Environment::replace_text_in_file(f,search,replace)
24
- }
25
- end
26
-
27
- def self.replace_text_in_file(filename,search,replace)
28
- puts_debug "replace_text_in_file(#{filename},#{search.to_s},#{replace.to_s})"
29
- text1 = File.read(filename)
30
- text2 = text1.gsub(search) { |str| str=replace }
31
- unless text1==text2
32
- File.open(filename,"w") { |f| f.puts text2 }
33
- puts " replaced text in #{filename}"
34
- end
35
- end
36
-
37
- def self.user_profile
38
- ["USERPROFILE","HOME"].each {|v|
39
- return ENV[v].gsub('\\','/') unless ENV[v].nil?
40
- }
41
- dir="~"
42
- end
43
-
44
- def self.dev_root
45
- ["DEV_HOME","DEV_ROOT","USERPROFILE","HOME"].each {|v|
46
- return ENV[v].gsub('\\','/') unless ENV[v].nil?
47
- }
48
- dir="~"
49
- dir=ENV["HOME"] unless ENV["HOME"].nil?
50
- dir=ENV["USERPROFILE"].gsub('\\','/') unless ENV["USERPROFILE"].nil?
51
- dir=ENV["DEV_ROOT"].gsub('\\','/') unless ENV["DEV_ROOT"].nil?
52
-
53
- return dir if(RUBY_VERSION == "1.8.7")
54
-
55
- # reg_exp = /(\/(wrk|dep|exp)\/[.\w\d-]+\/[.\w\d-]+\/[.\w\d-@]+)/ if(RUBY_VERSION != "1.8.6")
56
- # unless(Rake.original_dir().match(reg_exp).nil?)
57
- # wrk_rel = Rake.original_dir().match(reg_exp)[1] if Rake.original_dir().match(reg_exp).length > 0
58
- # if(!wrk_rel.nil? && wrk_rel.length > 0)
59
- # dir = Rake.original_dir().gsub(wrk_rel,"");
60
- # return dir
61
- # end
62
-
63
- # reg_exp = /(\/(Dropbox)\/[.\w\d-]+\/[.\w\d-]+\/[.\w\d-@]+)/
64
- # unless(Rake.original_dir().match(reg_exp).nil?)
65
- # wrk_rel = Rake.original_dir().match(reg_exp)[1] if Rake.original_dir().match(reg_exp).length > 0
66
- # if(!wrk_rel.nil? && wrk_rel.length > 0)
67
- # dir = Rake.original_dir().gsub(wrk_rel,"");
68
- # return dir
69
- # end
70
- # end
71
-
72
- #end
73
- return dir
74
- end
75
-
76
- def self.expand_string_variables(str)
77
- eval("\"#{str.gsub('"','\"')}\"")
78
- end
79
-
80
- def self.s_to_hash(str)
81
- # check for hash
82
- hash=nil
83
- if(str.strip.index('{')==0 && str.strip.index('}')==str.strip.length-1)
84
- begin
85
- eval("hash=#{str.strip}")
86
- rescue
87
- hash=nil
88
- end
89
- end
90
- hash
91
- end
92
-
93
- def self.user
94
- return ENV['USER'] if !ENV['USER'].nil? #on Unix
95
- return ENV['USERNAME'] if !ENV['USERNAME'].nil? #on Windows
96
- return "unknown"
97
- end
98
-
99
- def self.machine
100
- if !ENV['COMPUTERNAME'].nil?
101
- return ENV['COMPUTERNAME']
102
- end
103
-
104
- machine = `hostname`
105
- machine = machine.split('.')[0] if machine.include?('.')
106
- return machine.strip
107
- #return "unknown"
108
- end
109
- def self.expand_command(command); Dev::Environment.expand_project_variables(command); end
110
- def self.expand_project_variables(str)
111
- if str.kind_of?(Hash)
112
- expandedHash = Hash.new
113
- str.each do |name,value|
114
- expandedHash[name]=expand_project_variables(value)
115
- end
116
- return expandedHash
117
- end
118
-
119
- if str.kind_of?(Array)
120
- expandedArray= Array.new
121
- str.each{|e|expandedArray << expand_project_variable(e) }
122
- return expandedArray
123
- end
124
-
125
- if str.kind_of?(String)
126
- result=Dev::Environment.expand_string_variables(str) # expands ruby variables, e.g. '#{name}' to 'widget'
127
- if result.include?('<') && result.include?('>')
128
- result.scan(/(<[\w,]+>)/).each { |pvar| # expand project variables, e.g. '<name>' to 'widget
129
- key = pvar[0].gsub("<","").gsub(">","") # '<paths,nunit>' to 'C:/wherever/NUnit.exe'
130
- value=DEV.get_value(key)
131
- result = result.gsub(pvar[0],value)
132
- }
133
- end
134
- return result
135
- end
136
-
137
- return str
138
- end
139
- end
140
-
141
- end # module Dev
142
-
data/lib/dev/Hash.rb DELETED
@@ -1,92 +0,0 @@
1
- class Hash
2
-
3
- # remove all auto generated entries
4
- def strip_auto_entries
5
- self.each { |k,v| self.delete k if !v.nil? && v.kind_of?(Hash) && v.has_key?(:auto) && v[:auto] }
6
- end
7
-
8
- def get_value(key)
9
- return Hash.get_hash_value(self,key)
10
- end
11
-
12
- def set_value(key,value)
13
- Hash.set_hash_value(self,key,value)
14
- end
15
-
16
- def self.get_hash_value(hash,key)
17
- return hash[key] if(hash.has_key?(key))
18
- if key.kind_of?(String)
19
- if key.include?(',')
20
- keys=key.split(',')
21
- value=get_hash_value(hash,keys.shift)
22
- unless value.nil?
23
- if value.kind_of?(Hash)
24
- return Hash.get_hash_value(value,keys.join(','))
25
- end
26
- end
27
- else
28
- value=nil
29
- ruby="value=hash[:#{key}]"
30
- eval(ruby)
31
- return value
32
- end
33
- end
34
- nil
35
- end
36
-
37
- def self.set_hash_value(hash,key,value)
38
- if key.kind_of?(String)
39
- if key.include?(',')
40
- keys=key.split(',')
41
- hval=get_hash_value(hash,keys[0])
42
- if(hval.nil?)
43
- ruby="hash[:#{keys[0]}]=Hash.new"
44
- eval(ruby)
45
- end
46
- hval=get_hash_value(hash,keys[0])
47
- if hval.kind_of?(Hash)
48
- keys.shift
49
- if keys.length == 1
50
- Hash.set_hash_value(hval,keys[0],value)
51
- else
52
- Hash.set_hash_value(hval,keys.join(','),value)
53
- end
54
- end
55
- else
56
- eval("hash[:#{key}]=value")
57
- end
58
- else
59
- hash[key]=value
60
- end
61
- end
62
-
63
- def self.print_hash(indent,hash)
64
- max_length=0
65
- hash.each { |name,value| max_length=name.to_s.length if name.to_s.length > max_length }
66
- max_length=max_length+1
67
- index=0
68
- hash.each do |name,value|
69
-
70
- prefix = "#{indent}#{name.to_s}".rjust(max_length)
71
- if value.kind_of?(Hash)
72
- print_hash(prefix+",",value)
73
- elsif value.kind_of?(Array)
74
- value.each do |v|
75
- if v.kind_of?(Hash)
76
- #puts Rainbow(prefix).foreground(:yellow).bright
77
- puts prefix
78
- print_hash( prefix + " ".rjust(max_length),v)
79
- end
80
- puts prefix + " " + v.to_s if v.kind_of?(String)
81
- #puts Rainbow(prefix).foreground(:yellow).bright + " " + Rainbow(v.to_s).foreground(:green) if v.kind_of?(String)
82
- prefix = indent + " ".rjust(max_length-1)
83
- end
84
- else
85
- puts prefix + " " + value.to_s
86
- #puts Rainbow(prefix).foreground(:yellow).bright + " " + Rainbow(value.to_s).foreground(:green)
87
- end
88
- index+=1
89
- indent=" ".rjust(indent.length)
90
- end
91
- end
92
- end
data/lib/dev/MsBuild.rb DELETED
@@ -1,17 +0,0 @@
1
- #
2
- # C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe vc9/mci.sln /toolsversion:3.5 /property:Configuration=Release /property:Platform=Win32 /l:FileLogger,Microsoft.Build.Engine;logfile=.\log\mci.sln-Release-Build.log
3
- # C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
4
- #
5
-
6
- module Dev
7
- class MsBuild
8
-
9
- def self.extract_platforms(filename)
10
- results = Array::new
11
- text=File.read(filename)
12
- text.scan(/(\w+)<\/Platform/).each{ | var_match | results << var_match[0].to_s if !results.include?(var_match[0].to_s)}
13
- results
14
- end
15
-
16
- end # class MsBuild
17
- end # moduleDev
data/lib/dev/Paths.rb DELETED
@@ -1,50 +0,0 @@
1
- module Dev
2
- class Paths < Hash
3
- def initialize
4
- ["v4.0.30319","v3.5","v3.0","v2.0.50727"].each { |v|
5
- f="C:/WINDOWS/Microsoft.NET/Framework/#{v}/MSBuild.exe"
6
- self[:msbuild]=f if File.exists?(f) && self[:msbuild].nil?
7
- f="C:/WINDOWS/Microsoft.NET/Framework/#{v}/RegAsm.exe"
8
- self[:regasm]=f if File.exists?(f) && self[:regasm].nil?
9
- }
10
-
11
- initialize_nunit
12
- initialize_vs
13
- end
14
-
15
- def initialize_vs
16
- dev="C:/Program Files (x86)/Microsoft Visual Studio 8/Common7/IDE/devenv.exe"
17
- self[:vs8]=dev if File.exists?(dev) && self[:vs8].nil?
18
- dev="C:/Program Files (x86)/Microsoft Visual Studio 9.0/Common7/IDE/devenv.exe"
19
- self[:vs9]=dev if File.exists?(dev) && self[:vs9].nil?
20
- dev="C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/devenv.exe"
21
- self[:vs10]=dev if File.exists?(dev) && self[:vs10].nil?
22
- dev="C:/Program Files (x86)/Microsoft Visual Studio 11.0/Common7/IDE/devenv.exe"
23
- self[:vs11]=dev if File.exists?(dev) && self[:vs11].nil?
24
- dev="C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/devenv.exe"
25
- self[:vs12]=dev if File.exists?(dev) && self[:vs12].nil?
26
- end
27
-
28
- def initialize_nunit
29
- puts_debug "Paths::initialize_nunit"
30
- nunit=""
31
- nunitx86=""
32
-
33
- ["2.6.3/bin","2.6.0.12051/bin","2.5.10.11092/bin/net-2.0"].each{ |v|
34
- if nunit.length==0
35
- Dir.glob("#{Dev::Environment.dev_root}/dep/*/NUnit/#{v}/nunit-console.exe").each{|f|
36
- if nunit.length==0
37
- puts_debug("NUnit file located: #{f}")
38
- nunitx86=f.gsub("nunit-console.exe","nunit-console-x86.exe")
39
- nunit=f if(File.exists?(nunitx86))
40
- nunitx86="" if(!File.exists?(nunitx86))
41
- end
42
- }
43
- end
44
- }
45
-
46
- self[:nunit]=nunit
47
- self[:nunitx86]=nunitx86
48
- end
49
- end # class Paths
50
- end # module Dev
data/lib/dev/Project.rb DELETED
@@ -1,175 +0,0 @@
1
- puts_debug "read " + __FILE__
2
-
3
- require 'semver'
4
- require 'rake'
5
-
6
- module Dev
7
- class Project < Hash
8
-
9
- def initialize
10
- defaults.each { |name,value| self[name]=value }
11
- if(RUBY_VERSION != "1.8.7")
12
- db = Dev::Database.new
13
- db.set_branch_uri(self[:fullname],self[:scm_uri])
14
- end
15
- end
16
-
17
- def defaults
18
- puts_debug "Dev::Project.defaults begin"
19
- system_call = Dev::SystemCall.new("semver init") if(!File.exist?(".semver"))
20
- h=Hash.new
21
- puts_debug "Dev::Project.defaults :scm_uri"
22
- h[:scm_uri] = Scm.get_default_scm_uri if !Scm.get_default_scm_uri.nil?
23
- puts_debug "Dev::Project.defaults :scm_type"
24
- h[:scm_type] = Scm.get_default_scm_type if !Scm.get_default_scm_type.nil?
25
- h[:directory]=Rake.original_dir()
26
- h[:fullname]=get_default_value_fullname
27
- h[:group]=get_default_value_group
28
- h[:name]=get_default_value_name
29
- h[:version]= "#{SemVer.find.major}.#{SemVer.find.minor}.#{SemVer.find.patch}"
30
- h[:src_glob]="**/{*.{rb,feature,spec,cs,c,m,cpp,cxx,h,hpp,i,jam,csproj,vcproj,snk,vcxproj,xcodeproj,plist,xib,sln,filters,xaml,xml,resx,settings,txt,png,bmp,ico,config},Jamfile,.semver,Gemfile,README,LICENSE}"
31
- h[:src_glob]="**/{*.{rb,feature,spec,cs,c,m,cpp,cxx,h,hpp,i,jam,csproj,vcproj,snk,vcxproj,xcodeproj,plist,pch,strings,storyboard,xib,sln,filters,xaml,xml,resx,settings,txt,png,bmp,ico,config},Jamfile,.semver,Gemfile,README,LICENSE}" if RUBY_PLATFORM.include?("darwin")
32
- puts_debug "Dev::Project.defaults :dev_root"
33
- h[:dev_root]= "#{Dev::Environment.dev_root}"
34
- #h[:user_profile]= "#{Dev::Environment.user_profile}"
35
- puts_debug "Dev::Project.defaults default_toolset"
36
- default_toolset = Dev::BoostBuild.defaultToolset
37
- if !default_toolset.nil?
38
- puts_debug "Dev::Project.defaults :toolset"
39
- h[:toolset] = default_toolset
40
- ENV["VisualStudioVersion"]="11.0" if h[:toolset]=="msvc-11.0"
41
- end
42
-
43
-
44
- puts_debug "Dev::Project.defaults :type"
45
- h[:type]="gem"
46
- puts_debug "Dev::Project.defaults B"
47
- if(defined?(DEV_FILE_COUNT))
48
- h[:type]=get_default_value_type
49
- h[:file_count]=Hash.new
50
- ["rb","spec","feature","cs","cpp","h","hpp","vcxproj","csproj"].each{ |ext|
51
- count=Dir.glob("**/*.#{ext}").count
52
- h[:file_count][ext.to_sym]=count if count > 0
53
- }
54
- end
55
-
56
- puts_debug "Dev::Project.defaults C"
57
- h[:paths] = Dev::Paths.new
58
- h[:dep]=Deps.new
59
- puts_debug "Dev::Project.defaults end"
60
- return h
61
- end
62
-
63
- def refresh
64
- puts_debug "Dev::Project.refresh"
65
- start_time=Time.now
66
- self[:dep].refresh
67
- #update_default_values
68
- #db = Dev::Database.new
69
- #db.set_branch_uri(self[:fullname],self[:scm_uri])
70
- puts_debug "DEV refresh elapsed time " + (Time.now-start_time).to_s
71
-
72
- begin
73
- updateProductsDB
74
- rescue
75
- end
76
- end
77
-
78
- def updateProductsDB
79
- filename = Dev::Environment.user_profile + "/Development.sql"
80
- if(File.exists?(filename) && !DEV[:scm_uri].nil? && DEV[:scm_uri].length > 0)
81
- db = SQLite3::Database.new filename
82
- insert = true
83
- id=nil
84
- db.execute("select * from Products where name='" + DEV[:fullname] + "';") do |row|
85
- id=row[0]
86
- name=row[1].to_s
87
- uri=row[2].to_s
88
- insert = false if(name==DEV[:fullname] && uri==DEV[:scm_uri])
89
- end
90
- if(insert)
91
- sid="null"
92
- sid=id.to_s if !id.nil?
93
- sql="insert or replace into Products VALUES(" + sid + ",'" + DEV[:fullname].to_s + "','" + DEV[:scm_uri].to_s + "');"
94
- puts_debug "sql=#{sql}"
95
- db.execute(sql)
96
- db.close
97
- db=nil
98
- end
99
- end
100
- end
101
-
102
- def get_default_value_name
103
- dirs=::Rake.original_dir().split('/')
104
- return dirs[dirs.length-2] if(dirs.length > 3)
105
- return nil
106
- end
107
-
108
- def get_default_value_fullname
109
- wrk="#{Dev::Environment.dev_root}/wrk/"
110
- if(Rake.original_dir.include?(wrk))
111
- name=Rake.original_dir.gsub(wrk,"")
112
- return name if(name.split('/').length==3)
113
- end
114
- nil
115
- end
116
-
117
- def get_default_value_group
118
- dirs=Rake.original_dir().split('/')
119
- return dirs[dirs.length-3] if(dirs.length > 3)
120
- return "unknown"
121
- end
122
-
123
- def get_default_value_type
124
- Dir.glob("**/*.{cpp,hpp}").each { |f| return "c++" }
125
- Dir.glob("**/*.{c,h}").each { |f| return "c" }
126
- Dir.glob("**/*.{cs}").each { |f| return "C#" }
127
- Dir.glob("**/*.{gemspec}").each { |f| return "gem" }
128
- return "ruby"
129
- end
130
-
131
- def loc_cmd
132
- cmd="countloc --recurse ."
133
- cmd="countloc --recurse --mode ruby ." if self[:type]=="ruby" || self[:type]=="gem"
134
- cmd="countloc --recurse --mode csharp ." if self[:type]=="C#"
135
- cmd="countloc --recurse --mode cpp ." if self[:type]=="c++"
136
- return cmd
137
- end
138
-
139
- def loc
140
- system(loc_cmd)
141
- end
142
-
143
- def loc_total
144
- # parse the output for TOTAL LOC
145
- call=Dev::SystemCall.new(loc_cmd)
146
- words=Array.new
147
- words=call.output.split if !call.nil? && !call.output.nil?
148
- if(words.length>6)
149
- return words[words.length-6]
150
- end
151
- "?"
152
- end
153
-
154
- def context
155
- Dev::Environment.user + "." + Dev::Environment.machine
156
- end
157
-
158
- def stamp_task(name)
159
- File.open("#{name}.taskstamp." + context,"w") { |f| f.write(Time.now.to_s) }
160
- end
161
-
162
- def dep?
163
- return self[:directory].include?("#{self[:dev_root]}/dep/")
164
- end
165
-
166
- def wrk?
167
- return self[:directory].include?("#{self[:dev_root]}/wrk/")
168
- end
169
-
170
- end
171
- end # module Dev
172
-
173
- puts_debug "creating DEV instance"
174
- DEV=Dev::Project.new#(nil,true)
175
- DEV[:start_time]=Time.now