BuildMaster 1.1.9 → 1.1.12
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/buildmaster/algorithms.rb +2 -2
- data/lib/buildmaster/auto.rb +27 -0
- data/lib/buildmaster/auto/classpath.rb +86 -0
- data/lib/buildmaster/auto/git.rb +38 -0
- data/lib/buildmaster/auto/java.rb +23 -0
- data/lib/buildmaster/auto/java_project.rb +185 -0
- data/lib/buildmaster/auto/javac_ant.rb +64 -0
- data/lib/buildmaster/auto/junit_ant.rb +226 -0
- data/lib/buildmaster/auto/mysql_server.rb +30 -0
- data/lib/buildmaster/auto/package_ant.rb +60 -0
- data/lib/buildmaster/auto/ruby_platform.rb +51 -0
- data/lib/buildmaster/common.rb +3 -3
- data/lib/buildmaster/cotta.rb +8 -3
- data/lib/buildmaster/cotta/command_runner.rb +19 -3
- data/lib/buildmaster/cotta/cotta.rb +42 -12
- data/lib/buildmaster/cotta/cotta_dir.rb +18 -14
- data/lib/buildmaster/cotta/cotta_file.rb +5 -8
- data/lib/buildmaster/cotta/in_memory_system.rb +15 -4
- data/lib/buildmaster/cotta/physical_system.rb +13 -7
- data/lib/buildmaster/project.rb +3 -9
- data/lib/buildmaster/project/ant_driver.rb +11 -7
- data/lib/buildmaster/project/ci.rb +2 -2
- data/lib/buildmaster/project/pscp_driver.rb +0 -4
- data/lib/buildmaster/project/ruby_forge_project.rb +0 -3
- data/lib/buildmaster/project/svn_admin_driver.rb +0 -4
- data/lib/buildmaster/project/svn_driver.rb +0 -6
- data/lib/buildmaster/project/svn_helper.rb +0 -6
- data/lib/buildmaster/project/svn_server_driver.rb +0 -5
- data/lib/buildmaster/project/windows/iis_driver.rb +0 -4
- data/lib/buildmaster/project/windows/sql_server_driver.rb +0 -1
- data/lib/buildmaster/site.rb +16 -4
- data/lib/buildmaster/site/about_handler.rb +0 -4
- data/lib/buildmaster/site/content_engine_repository.rb +0 -2
- data/lib/buildmaster/site/element_processor_by_name.rb +0 -4
- data/lib/buildmaster/site/file_processor.rb +0 -4
- data/lib/buildmaster/site/site.rb +0 -4
- data/lib/buildmaster/site/site_server.rb +1 -4
- data/lib/buildmaster/site/site_spec.rb +4 -15
- data/lib/buildmaster/site/source_file_handler.rb +0 -3
- data/lib/buildmaster/site/template_error.rb +0 -2
- data/lib/buildmaster/site/template_runner.rb +0 -4
- data/lib/buildmaster/site/templatelets.rb +9 -10
- data/lib/buildmaster/site/templatelets/href.rb +0 -5
- data/lib/buildmaster/site/templatelets/when.rb +0 -4
- data/lib/buildmaster/site/xtemplate.rb +0 -3
- data/lib/buildmaster/version +1 -1
- data/lib/buildmaster/win32/auto_it.rb +4 -0
- data/lib/buildmaster/win32/auto_it_driver.rb +45 -0
- data/lib/buildmaster/win32/auto_it_window.rb +82 -0
- data/lib/buildmaster/win32/autoit/AutoItX3.dll +0 -0
- data/lib/buildmaster/win32/autoit/README +1 -0
- data/lib/buildmaster/windows.rb +3 -3
- data/test/buildmaster/algorithms/tc_opn_compare.rb +2 -2
- data/test/buildmaster/auto/javac/src/org/rubyforge/buildmaster/javac/One.java +5 -0
- data/test/buildmaster/auto/javac/src/resource.txt +1 -0
- data/test/buildmaster/auto/javac/src2/org/rubyforge/buildmaster/javac/Two.java +9 -0
- data/test/buildmaster/auto/tc_classpath.rb +79 -0
- data/test/buildmaster/auto/tc_git.rb +32 -0
- data/test/buildmaster/auto/tc_java.rb +12 -0
- data/test/buildmaster/auto/tc_java_project.rb +78 -0
- data/test/buildmaster/auto/tc_java_project_slow.rb +89 -0
- data/test/buildmaster/auto/tc_javac_ant.rb +38 -0
- data/test/buildmaster/auto/tc_junit_ant.rb +187 -0
- data/test/buildmaster/auto/tc_package_ant.rb +29 -0
- data/test/buildmaster/auto/tc_ruby_platform.rb +10 -0
- data/test/buildmaster/common/tc_properties.rb +1 -3
- data/test/buildmaster/common/tc_tree_to_object.rb +1 -3
- data/test/buildmaster/cotta/cotta_dir_behaviors.rb +46 -8
- data/test/buildmaster/cotta/cotta_file_behaviors.rb +6 -6
- data/test/buildmaster/cotta/cotta_specifications.rb +1 -6
- data/test/buildmaster/cotta/file_system_behaviors.rb +1 -3
- data/test/buildmaster/cotta/physical_system_stub.rb +22 -3
- data/test/buildmaster/cotta/system_file_specifications.rb +1 -3
- data/test/buildmaster/cotta/tc_command_interface.rb +1 -3
- data/test/buildmaster/cotta/tc_command_runner.rb +1 -4
- data/test/buildmaster/cotta/tc_cotta.rb +5 -8
- data/test/buildmaster/cotta/tc_cotta_dir_in_memory.rb +6 -9
- data/test/buildmaster/cotta/tc_cotta_dir_physical.rb +3 -6
- data/test/buildmaster/cotta/tc_cotta_file_in_memory.rb +3 -7
- data/test/buildmaster/cotta/tc_cotta_file_physical.rb +4 -4
- data/test/buildmaster/cotta/tc_cotta_zip_support.rb +1 -5
- data/test/buildmaster/cotta/tc_in_memory_system.rb +3 -7
- data/test/buildmaster/cotta/tc_io_chain.rb +3 -8
- data/test/buildmaster/cotta/tc_pathname.rb +1 -3
- data/test/buildmaster/cotta/tc_physical_system.rb +7 -8
- data/test/buildmaster/project/tc_ant_driver.rb +1 -4
- data/test/buildmaster/project/tc_build_number_file.rb +1 -6
- data/test/buildmaster/project/tc_cvs_driver.rb +1 -5
- data/test/buildmaster/project/tc_java_manifest.rb +1 -5
- data/test/buildmaster/project/tc_release.rb +1 -3
- data/test/buildmaster/project/tc_server_manager.rb +1 -4
- data/test/buildmaster/project/tc_svn_driver.rb +1 -5
- data/test/buildmaster/project/tc_svn_status_info.rb +1 -3
- data/test/buildmaster/project/tc_version_number_file.rb +1 -6
- data/test/buildmaster/project/windows/tc_iis_driver.rb +2 -3
- data/test/buildmaster/project/windows/tc_sql_server_driver.rb +2 -5
- data/test/buildmaster/site/content/tc_content_engine_repository.rb +1 -5
- data/test/buildmaster/site/tc_element_processor_by_name.rb +1 -4
- data/test/buildmaster/site/tc_file_processor.rb +1 -7
- data/test/buildmaster/site/tc_site.rb +1 -6
- data/test/buildmaster/site/tc_site_server.rb +2 -8
- data/test/buildmaster/site/tc_site_spec.rb +8 -5
- data/test/buildmaster/site/tc_source_file_handler.rb +1 -4
- data/test/buildmaster/site/tc_template_builder.rb +1 -4
- data/test/buildmaster/site/tc_template_error.rb +1 -3
- data/test/buildmaster/site/tc_template_runner.rb +2 -7
- data/test/buildmaster/site/tc_templatelets.rb +2 -6
- data/test/buildmaster/site/tc_xtemplate.rb +1 -5
- data/test/buildmaster/site/templatelets/common_templatelet_test.rb +1 -8
- data/test/buildmaster/site/templatelets/tc_attribute.rb +3 -3
- data/test/buildmaster/site/templatelets/tc_code.rb +2 -2
- data/test/buildmaster/site/templatelets/tc_each.rb +3 -3
- data/test/buildmaster/site/templatelets/tc_href.rb +3 -3
- data/test/buildmaster/site/templatelets/tc_include.rb +3 -3
- data/test/buildmaster/site/templatelets/tc_link.rb +3 -3
- data/test/buildmaster/site/templatelets/tc_text.rb +3 -3
- data/test/buildmaster/site/templatelets/tc_when.rb +4 -4
- data/test/buildmaster/site/test.rb +1 -0
- data/test/buildmaster/test.rb +21 -0
- data/test/buildmaster/win32/tc_auto_it.rb +18 -0
- data/test/buildmaster/win32/tc_auto_it_window.rb +17 -0
- data/test/manual/bms.rb +2 -4
- data/test/tmp/svn_test/repository/conf/authz +14 -3
- data/test/tmp/svn_test/repository/conf/svnserve.conf +21 -4
- data/test/tmp/svn_test/repository/db/current +1 -1
- data/test/tmp/svn_test/repository/db/format +2 -1
- data/test/tmp/svn_test/repository/db/revprops/0/0 +5 -0
- data/test/tmp/svn_test/repository/db/revprops/{1 → 0/1} +1 -1
- data/test/tmp/svn_test/repository/db/revprops/{2 → 0/2} +1 -1
- data/test/tmp/svn_test/repository/db/revprops/{3 → 0/3} +1 -1
- data/test/tmp/svn_test/repository/db/revprops/{4 → 0/4} +1 -1
- data/test/tmp/svn_test/repository/db/revs/{0 → 0/0} +0 -0
- data/test/tmp/svn_test/repository/db/revs/0/1 +25 -0
- data/test/tmp/svn_test/repository/db/revs/{2 → 0/2} +9 -9
- data/test/tmp/svn_test/repository/db/revs/0/3 +33 -0
- data/test/tmp/svn_test/repository/db/revs/{4 → 0/4} +0 -0
- data/test/tmp/svn_test/repository/db/txn-current +1 -0
- data/{lib/buildmaster/project/java/class_path.rb → test/tmp/svn_test/repository/db/txn-current-lock} +0 -0
- data/test/tmp/svn_test/repository/db/uuid +1 -1
- data/test/tmp/svn_test/repository/hooks/post-revprop-change.tmpl +1 -1
- data/test/tmp/svn_test/repository/hooks/pre-unlock.tmpl +1 -0
- data/test/tmp/svn_test/repository/hooks/start-commit.tmpl +13 -2
- data/test/ts_buildmaster.rb +2 -2
- metadata +100 -46
- data/lib/buildmaster/project/java.rb +0 -4
- data/lib/buildmaster/project/java/javac.rb +0 -9
- data/test/tmp/svn_test/repository/db/revprops/0 +0 -5
- data/test/tmp/svn_test/repository/db/revs/1 +0 -25
- data/test/tmp/svn_test/repository/db/revs/3 +0 -33
data/lib/buildmaster/project.rb
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# This file is now deprecated in favor of a more suitable name 'auto'
|
|
2
|
+
dir = File.dirname(__FILE__)
|
|
2
3
|
|
|
3
|
-
require '
|
|
4
|
-
require 'java_manifest'
|
|
5
|
-
require 'ant_driver'
|
|
6
|
-
require 'cvs_driver'
|
|
7
|
-
require 'pscp_driver'
|
|
8
|
-
require 'svn_driver'
|
|
9
|
-
require 'version_number_file'
|
|
10
|
-
require 'release'
|
|
4
|
+
require dir + '/auto'
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
module BuildMaster
|
|
2
2
|
|
|
3
|
+
# ANT launcher class to run targets on an ANT build file.
|
|
3
4
|
class AntDriver
|
|
5
|
+
|
|
6
|
+
# Create the instance given a CottaFile instance
|
|
4
7
|
def AntDriver.from_file(ant_file)
|
|
5
8
|
return AntDriver.new(ant_file)
|
|
6
9
|
end
|
|
7
10
|
|
|
11
|
+
# Create the instance given a CottaFile
|
|
8
12
|
def initialize(ant_file = nil)
|
|
9
13
|
@cotta = Cotta.new(ant_file.system)
|
|
10
14
|
@ant_file = ant_file
|
|
11
15
|
ant_path = @cotta.environment!('ANT_HOME')
|
|
12
16
|
@ant_home = @cotta.dir(ant_path)
|
|
13
17
|
raise 'ANT_HOME need to point to ANT home directory' unless @ant_home.exists?
|
|
14
|
-
|
|
15
|
-
#and ruby, following perl, is not too hot at hinting which box it is on.
|
|
16
|
-
#here I assume ":" except on win32, dos, and netware. Add extra tests here as needed.
|
|
17
|
-
#This is the only way I know how to check if on windows
|
|
18
|
-
if File.directory?('C:')
|
|
18
|
+
if RUBY_PLATFORM =~ /[^r]win/ # Windows and not darwin
|
|
19
19
|
@class_path_delimiter = ';'
|
|
20
20
|
@path_seperator='\\'
|
|
21
21
|
else
|
|
@@ -47,7 +47,7 @@ class AntDriver
|
|
|
47
47
|
launch(name)
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
-
def launch(arguments)
|
|
50
|
+
def launch(arguments, &block)
|
|
51
51
|
local_path = "#{@ant_home.path}/lib/ant-launcher.jar"
|
|
52
52
|
if (@classpath and @classpath.length() > 0)
|
|
53
53
|
local_path = "#{local_path}#{@class_path_delimiter}#{@classpath}"
|
|
@@ -60,7 +60,11 @@ class AntDriver
|
|
|
60
60
|
all_arguments.push('-f', @ant_file.path) if @ant_file
|
|
61
61
|
all_arguments.push(arguments)
|
|
62
62
|
command_line = "#{@java_command} #{all_arguments.join(' ')}"
|
|
63
|
-
@cotta.shell(command_line)
|
|
63
|
+
@cotta.shell(command_line, &block)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def respond_to?(*args)
|
|
67
|
+
super(args)
|
|
64
68
|
end
|
|
65
69
|
|
|
66
70
|
def method_missing(method, *args)
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
dir = File.dirname(__FILE__)
|
|
2
2
|
|
|
3
|
-
require 'ci/server'
|
|
3
|
+
require dir + '/../ci/server'
|
data/lib/buildmaster/site.rb
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
dir = File.dirname(__FILE__)
|
|
2
2
|
|
|
3
|
-
require 'cotta'
|
|
4
|
-
require '
|
|
5
|
-
require 'site/
|
|
3
|
+
require dir + '/cotta'
|
|
4
|
+
require dir + '/common'
|
|
5
|
+
require dir + '/site/file_processor'
|
|
6
|
+
require dir + '/site/site_spec'
|
|
7
|
+
require dir + '/site/site'
|
|
8
|
+
require dir + '/site/source_content'
|
|
9
|
+
require dir + '/site/source_file_handler'
|
|
10
|
+
require dir + '/site/content_engine_repository'
|
|
11
|
+
require dir + '/site/site_server'
|
|
12
|
+
require dir + '/site/templatelets'
|
|
13
|
+
require dir + '/site/template_builder'
|
|
14
|
+
require dir + '/site/template_error'
|
|
15
|
+
require dir + '/site/template_runner'
|
|
16
|
+
require dir + '/site/element_processor_by_name'
|
|
17
|
+
require dir + '/site/xtemplate'
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
$:.unshift File.dirname(__FILE__)
|
|
2
|
-
|
|
3
1
|
require 'webrick'
|
|
4
|
-
require 'source_file_handler'
|
|
5
|
-
require 'about_handler'
|
|
6
2
|
require 'net/http'
|
|
7
3
|
|
|
8
4
|
module BuildMaster
|
|
@@ -42,6 +38,7 @@ class SiteServer
|
|
|
42
38
|
url = URI.parse("http://localhost:#{@port_number}/")
|
|
43
39
|
request = Net::HTTP::Get.new(url.path)
|
|
44
40
|
begin
|
|
41
|
+
puts "getting #{url}"
|
|
45
42
|
res = Net::HTTP.start(url.host, url.port) {|http|
|
|
46
43
|
http.read_timeout=5
|
|
47
44
|
http.request(request)
|
|
@@ -1,21 +1,9 @@
|
|
|
1
1
|
require 'pathname'
|
|
2
|
-
$:.unshift File.join(File.dirname(__FILE__), '..', '..')
|
|
3
|
-
require 'common'
|
|
4
|
-
require 'cotta'
|
|
5
|
-
|
|
6
|
-
$:.unshift File.dirname(__FILE__)
|
|
7
|
-
require 'templatelets'
|
|
8
|
-
require 'template_builder'
|
|
9
|
-
require 'element_processor_by_name'
|
|
10
|
-
require 'xtemplate'
|
|
11
|
-
require 'project/build_number_file'
|
|
12
|
-
require 'content_engine_repository'
|
|
13
|
-
|
|
14
2
|
|
|
15
3
|
module BuildMaster
|
|
16
4
|
|
|
17
5
|
class SiteSpec
|
|
18
|
-
attr_reader :output_dir, :content_engines, :cotta
|
|
6
|
+
attr_reader :output_dir, :content_engines, :cotta, :properties
|
|
19
7
|
attr_accessor :content_dir, :template, :template_file, :content_format, :txt_format
|
|
20
8
|
|
|
21
9
|
def initialize(file_at_root = nil, cotta = Cotta.new())
|
|
@@ -103,11 +91,12 @@ module BuildMaster
|
|
|
103
91
|
from = path_name(@content_dir.path.to_s)
|
|
104
92
|
return to.relative_path_from(from)
|
|
105
93
|
end
|
|
106
|
-
|
|
94
|
+
|
|
95
|
+
# deprecated, use properties
|
|
107
96
|
def add_property(name, value)
|
|
108
97
|
properties()[name] = value
|
|
109
98
|
end
|
|
110
|
-
|
|
99
|
+
|
|
111
100
|
def center_class(content_path)
|
|
112
101
|
if index_file? content_path
|
|
113
102
|
return 'Content3Column'
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
dir = File.dirname(__FILE__) + '/templatelets'
|
|
2
2
|
|
|
3
|
-
require '
|
|
4
|
-
require '
|
|
5
|
-
require '
|
|
6
|
-
require '
|
|
7
|
-
require '
|
|
8
|
-
require '
|
|
9
|
-
require '
|
|
10
|
-
require '
|
|
11
|
-
require 'site/template_error'
|
|
3
|
+
require dir + '/href'
|
|
4
|
+
require dir + '/attribute'
|
|
5
|
+
require dir + '/each'
|
|
6
|
+
require dir + '/include'
|
|
7
|
+
require dir + '/link'
|
|
8
|
+
require dir + '/text'
|
|
9
|
+
require dir + '/when'
|
|
10
|
+
require dir + '/code'
|
|
12
11
|
|
|
13
12
|
module REXML
|
|
14
13
|
class Element
|
data/lib/buildmaster/version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.1.
|
|
1
|
+
1.1.12
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
module Selenium
|
|
2
|
+
class AutoIt
|
|
3
|
+
@@autoit = nil
|
|
4
|
+
|
|
5
|
+
def self.load
|
|
6
|
+
begin
|
|
7
|
+
@@autoit = load_instance
|
|
8
|
+
rescue WIN32OLERuntimeError
|
|
9
|
+
registerAutoItDll
|
|
10
|
+
@@autoit = load_instance
|
|
11
|
+
end
|
|
12
|
+
@@autoit
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.load_instance
|
|
16
|
+
@@autoit = WIN32OLE.new('AutoItX3.Control') unless @@autoit
|
|
17
|
+
@@autoit
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def self.reset
|
|
21
|
+
if @@autoit
|
|
22
|
+
@@autoit.ole_free
|
|
23
|
+
@@autoit =nil
|
|
24
|
+
system("regsvr32.exe /s /u #{dll}")
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.registerAutoItDll
|
|
29
|
+
system("regsvr32.exe /s #{dll}")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.dll
|
|
33
|
+
File.join(File.dirname(__FILE__), 'autoit', 'AutoItX3.dll')
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def initialize
|
|
37
|
+
@autoit = AutoIt.load
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def on_window_active(title, text = nil)
|
|
41
|
+
@autoit.WinWaitActive(title, text, 30)
|
|
42
|
+
yield @@autoit
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
class AutoItWindow
|
|
2
|
+
def initialize(autoit, title, text=nil)
|
|
3
|
+
@autoit = autoit
|
|
4
|
+
@title = title
|
|
5
|
+
@text = text
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def self.wait_for(autoit, title, text = nil)
|
|
9
|
+
window = self.new(autoit, title, text)
|
|
10
|
+
window.wait_for_appear
|
|
11
|
+
window
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.on_activation(autoit, title, text = nil)
|
|
15
|
+
window = wait_for(autoit, title, text)
|
|
16
|
+
yield window
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def wait_for_activation
|
|
20
|
+
@autoit.WinWaitActive(@title, @text, 30)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def wait_for_appear
|
|
24
|
+
@autoit.WinWait(@title, @text, 30)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def activate
|
|
28
|
+
@autoit.WinActivate(@title, @text)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def active?
|
|
32
|
+
1 == @autoit.WinActive(@title, @text)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def state
|
|
36
|
+
AutoItWindowState.new(@autoit.WinGetState(@title, @text))
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def send_keys(keys)
|
|
40
|
+
activate_if_needed
|
|
41
|
+
@autoit.Send(keys)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def close
|
|
45
|
+
@autoit.WinClose(@title)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def activate_if_needed
|
|
49
|
+
winstate = state
|
|
50
|
+
activate unless winstate.active?
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class AutoItWindowState
|
|
55
|
+
def initialize(state)
|
|
56
|
+
@state = state
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def exists?
|
|
60
|
+
@state & 1 > 0
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def visible?
|
|
64
|
+
@state & 2 > 0
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def enabled?
|
|
68
|
+
@state & 4 > 0
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def active?
|
|
72
|
+
@state & 8 > 0
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def minimized?
|
|
76
|
+
@state & 16 > 0
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def maxmized?
|
|
80
|
+
@state & 32 > 0
|
|
81
|
+
end
|
|
82
|
+
end
|