lebowski 0.1.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.
Files changed (85) hide show
  1. data/History.md +3 -0
  2. data/License.txt +20 -0
  3. data/Manifest.txt +84 -0
  4. data/README.md +146 -0
  5. data/Rakefile +42 -0
  6. data/bin/lebowski +26 -0
  7. data/bin/lebowski-spec +29 -0
  8. data/bin/lebowski-start-server +24 -0
  9. data/lib/lebowski.rb +15 -0
  10. data/lib/lebowski/core.rb +35 -0
  11. data/lib/lebowski/foundation.rb +52 -0
  12. data/lib/lebowski/foundation/application.rb +315 -0
  13. data/lib/lebowski/foundation/core.rb +61 -0
  14. data/lib/lebowski/foundation/core_query.rb +231 -0
  15. data/lib/lebowski/foundation/dom_element.rb +114 -0
  16. data/lib/lebowski/foundation/errors/argument_invalid_type.rb +31 -0
  17. data/lib/lebowski/foundation/errors/unexpected_type.rb +30 -0
  18. data/lib/lebowski/foundation/mixins/collection_item_view_support.rb +87 -0
  19. data/lib/lebowski/foundation/mixins/delegate_support.rb +22 -0
  20. data/lib/lebowski/foundation/mixins/inline_text_field_support.rb +29 -0
  21. data/lib/lebowski/foundation/mixins/key_check.rb +35 -0
  22. data/lib/lebowski/foundation/mixins/list_item_view_support.rb +36 -0
  23. data/lib/lebowski/foundation/mixins/positioned_element.rb +20 -0
  24. data/lib/lebowski/foundation/mixins/stall_support.rb +79 -0
  25. data/lib/lebowski/foundation/mixins/user_actions.rb +302 -0
  26. data/lib/lebowski/foundation/mixins/wait_actions.rb +44 -0
  27. data/lib/lebowski/foundation/object_array.rb +305 -0
  28. data/lib/lebowski/foundation/panes/alert.rb +117 -0
  29. data/lib/lebowski/foundation/panes/main.rb +20 -0
  30. data/lib/lebowski/foundation/panes/menu.rb +100 -0
  31. data/lib/lebowski/foundation/panes/modal.rb +21 -0
  32. data/lib/lebowski/foundation/panes/palette.rb +21 -0
  33. data/lib/lebowski/foundation/panes/pane.rb +24 -0
  34. data/lib/lebowski/foundation/panes/panel.rb +25 -0
  35. data/lib/lebowski/foundation/panes/picker.rb +43 -0
  36. data/lib/lebowski/foundation/panes/sheet.rb +21 -0
  37. data/lib/lebowski/foundation/proxy_factory.rb +87 -0
  38. data/lib/lebowski/foundation/proxy_object.rb +670 -0
  39. data/lib/lebowski/foundation/sc_object.rb +38 -0
  40. data/lib/lebowski/foundation/views/button.rb +20 -0
  41. data/lib/lebowski/foundation/views/checkbox.rb +63 -0
  42. data/lib/lebowski/foundation/views/collection.rb +304 -0
  43. data/lib/lebowski/foundation/views/container.rb +32 -0
  44. data/lib/lebowski/foundation/views/disclosure.rb +59 -0
  45. data/lib/lebowski/foundation/views/grid.rb +21 -0
  46. data/lib/lebowski/foundation/views/label.rb +30 -0
  47. data/lib/lebowski/foundation/views/list.rb +67 -0
  48. data/lib/lebowski/foundation/views/list_item.rb +280 -0
  49. data/lib/lebowski/foundation/views/menu_item.rb +27 -0
  50. data/lib/lebowski/foundation/views/radio.rb +32 -0
  51. data/lib/lebowski/foundation/views/segmented.rb +97 -0
  52. data/lib/lebowski/foundation/views/select_field.rb +139 -0
  53. data/lib/lebowski/foundation/views/support/simple_item_array.rb +249 -0
  54. data/lib/lebowski/foundation/views/text_field.rb +108 -0
  55. data/lib/lebowski/foundation/views/view.rb +108 -0
  56. data/lib/lebowski/runtime.rb +7 -0
  57. data/lib/lebowski/runtime/errors/remote_control_command_execution_error.rb +9 -0
  58. data/lib/lebowski/runtime/errors/remote_control_command_timeout_error.rb +9 -0
  59. data/lib/lebowski/runtime/errors/remote_control_error.rb +9 -0
  60. data/lib/lebowski/runtime/errors/selenium_server_error.rb +9 -0
  61. data/lib/lebowski/runtime/object_encoder.rb +123 -0
  62. data/lib/lebowski/runtime/sprout_core_driver.rb +14 -0
  63. data/lib/lebowski/runtime/sprout_core_extensions.rb +600 -0
  64. data/lib/lebowski/scui.rb +18 -0
  65. data/lib/lebowski/scui/mixins/node_item_view_support.rb +136 -0
  66. data/lib/lebowski/scui/mixins/terminal_view_support.rb +25 -0
  67. data/lib/lebowski/scui/views/combo_box.rb +119 -0
  68. data/lib/lebowski/scui/views/date_picker.rb +148 -0
  69. data/lib/lebowski/scui/views/linkit.rb +36 -0
  70. data/lib/lebowski/spec.rb +17 -0
  71. data/lib/lebowski/spec/core.rb +21 -0
  72. data/lib/lebowski/spec/matchers/be.rb +63 -0
  73. data/lib/lebowski/spec/matchers/has.rb +40 -0
  74. data/lib/lebowski/spec/matchers/match_supporters/has_object_function.rb +67 -0
  75. data/lib/lebowski/spec/matchers/match_supporters/has_predicate_with_no_prefix.rb +50 -0
  76. data/lib/lebowski/spec/matchers/match_supporters/has_predicate_with_prefix_has.rb +50 -0
  77. data/lib/lebowski/spec/matchers/match_supporters/match_supporter.rb +29 -0
  78. data/lib/lebowski/spec/matchers/method_missing.rb +24 -0
  79. data/lib/lebowski/spec/operators/operator.rb +20 -0
  80. data/lib/lebowski/spec/operators/that.rb +116 -0
  81. data/lib/lebowski/spec/util.rb +26 -0
  82. data/lib/lebowski/version.rb +17 -0
  83. data/resources/selenium-server.jar +0 -0
  84. data/resources/user-extensions.js +1421 -0
  85. metadata +198 -0
@@ -0,0 +1,3 @@
1
+ # lebowski 0.1.0 2010-06-07
2
+
3
+ * Open source beta release
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 Michael Cohen <http://frozencanuck.wordpress.com>
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,84 @@
1
+ License.txt
2
+ History.md
3
+ Manifest.txt
4
+ README.md
5
+ Rakefile
6
+ lib/lebowski.rb
7
+ lib/lebowski/version.rb
8
+ lib/lebowski/core.rb
9
+ lib/lebowski/runtime.rb
10
+ lib/lebowski/runtime/errors/remote_control_error.rb
11
+ lib/lebowski/runtime/errors/remote_control_command_execution_error.rb
12
+ lib/lebowski/runtime/errors/remote_control_command_timeout_error.rb
13
+ lib/lebowski/runtime/errors/selenium_server_error.rb
14
+ lib/lebowski/runtime/sprout_core_extensions.rb
15
+ lib/lebowski/runtime/sprout_core_driver.rb
16
+ lib/lebowski/runtime/object_encoder.rb
17
+ lib/lebowski/foundation.rb
18
+ lib/lebowski/foundation/core.rb
19
+ lib/lebowski/foundation/errors/unexpected_type.rb
20
+ lib/lebowski/foundation/errors/argument_invalid_type.rb
21
+ lib/lebowski/foundation/mixins/key_check.rb
22
+ lib/lebowski/foundation/mixins/positioned_element.rb
23
+ lib/lebowski/foundation/mixins/user_actions.rb
24
+ lib/lebowski/foundation/mixins/wait_actions.rb
25
+ lib/lebowski/foundation/mixins/delegate_support.rb
26
+ lib/lebowski/foundation/mixins/collection_item_view_support.rb
27
+ lib/lebowski/foundation/mixins/list_item_view_support.rb
28
+ lib/lebowski/foundation/mixins/inline_text_field_support.rb
29
+ lib/lebowski/foundation/mixins/stall_support.rb
30
+ lib/lebowski/foundation/proxy_object.rb
31
+ lib/lebowski/foundation/sc_object.rb
32
+ lib/lebowski/foundation/object_array.rb
33
+ lib/lebowski/foundation/core_query.rb
34
+ lib/lebowski/foundation/dom_element.rb
35
+ lib/lebowski/foundation/views/view.rb
36
+ lib/lebowski/foundation/views/label.rb
37
+ lib/lebowski/foundation/views/button.rb
38
+ lib/lebowski/foundation/views/container.rb
39
+ lib/lebowski/foundation/views/segmented.rb
40
+ lib/lebowski/foundation/views/radio.rb
41
+ lib/lebowski/foundation/views/checkbox.rb
42
+ lib/lebowski/foundation/views/disclosure.rb
43
+ lib/lebowski/foundation/views/text_field.rb
44
+ lib/lebowski/foundation/views/select_field.rb
45
+ lib/lebowski/foundation/views/menu_item.rb
46
+ lib/lebowski/foundation/views/collection.rb
47
+ lib/lebowski/foundation/views/list.rb
48
+ lib/lebowski/foundation/views/list_item.rb
49
+ lib/lebowski/foundation/views/grid.rb
50
+ lib/lebowski/foundation/views/support/simple_item_array.rb
51
+ lib/lebowski/foundation/panes/pane.rb
52
+ lib/lebowski/foundation/panes/main.rb
53
+ lib/lebowski/foundation/panes/modal.rb
54
+ lib/lebowski/foundation/panes/panel.rb
55
+ lib/lebowski/foundation/panes/alert.rb
56
+ lib/lebowski/foundation/panes/palette.rb
57
+ lib/lebowski/foundation/panes/picker.rb
58
+ lib/lebowski/foundation/panes/sheet.rb
59
+ lib/lebowski/foundation/panes/menu.rb
60
+ lib/lebowski/foundation/application.rb
61
+ lib/lebowski/foundation/proxy_factory.rb
62
+ lib/lebowski/scui.rb
63
+ lib/lebowski/scui/views/combo_box.rb
64
+ lib/lebowski/scui/views/date_picker.rb
65
+ lib/lebowski/scui/views/linkit.rb
66
+ lib/lebowski/scui/mixins/node_item_view_support.rb
67
+ lib/lebowski/scui/mixins/terminal_view_support.rb
68
+ lib/lebowski/spec.rb
69
+ lib/lebowski/spec/core.rb
70
+ lib/lebowski/spec/util.rb
71
+ lib/lebowski/spec/operators/operator.rb
72
+ lib/lebowski/spec/operators/that.rb
73
+ lib/lebowski/spec/matchers/match_supporters/match_supporter.rb
74
+ lib/lebowski/spec/matchers/match_supporters/has_object_function.rb
75
+ lib/lebowski/spec/matchers/match_supporters/has_predicate_with_no_prefix.rb
76
+ lib/lebowski/spec/matchers/match_supporters/has_predicate_with_prefix_has.rb
77
+ lib/lebowski/spec/matchers/be.rb
78
+ lib/lebowski/spec/matchers/has.rb
79
+ lib/lebowski/spec/matchers/method_missing.rb
80
+ bin/lebowski
81
+ bin/lebowski-spec
82
+ bin/lebowski-start-server
83
+ resources/selenium-server.jar
84
+ resources/user-extensions.js
@@ -0,0 +1,146 @@
1
+ Lebowski Framework
2
+
3
+ -- the SproutCore feature and integration test automation framework
4
+
5
+ #Overview
6
+
7
+ The Lebowski framework is a test automation framework for applications built on the
8
+ [SproutCore](http://www.sproutcore.com/) framework.
9
+
10
+ Compared to unit testing frameworks that are perfect for testing individual objects
11
+ and functions, Lebowski is an automated test framework designed for full
12
+ feature, integration, and regression testing of an application.
13
+
14
+ The framework was created with the following in mind:
15
+
16
+ * Provide a way for those who write feature and integration tests to build scripts
17
+ that reflect how the application was build using the SproutCore framework and
18
+ abstract away from all the low-level HTML and JavaScript.
19
+
20
+ * Allow you to easily access any SproutCore objects that make up your application
21
+
22
+ * Allow you to perform all the common user actions and will address all the subtle
23
+ ways to correctly interact with the views that make up your application
24
+
25
+ * Make it easy to add extensions so that you can work with custom views you've
26
+ built for your application.
27
+
28
+ The Lebowski framework was built using the [Ruby](http://www.ruby-lang.org/en/) programming language.
29
+ Therefore, to use this framework you will have to know some basic Ruby in order to get started.
30
+ In addition, the framework also make use of [Selenium](http://seleniumhq.org/) remote control server
31
+ in order to open up a browser, load your SproutCore application, and communicate with the application.
32
+ Knowledge of selenium server is not required to use the framework. (Note that the selenium server is
33
+ dependent on your system having the latest Java runtime installed).
34
+
35
+ The framework also comes with extensions to [RSpec](http://rspec.info/) that you can optionally use to
36
+ write your scripts, but RSpec is not required to use the Lebowski framework.
37
+
38
+ #Installing Lebowski
39
+
40
+ Installing the Lebowski framework is simple. First, make sure that you have the latest Ruby installed
41
+ on your machine (version 1.9+). Once you have Ruby installed, you can get the Lebowski framework
42
+ by invoking the following from your terminal:
43
+
44
+ $ gem install lebowski
45
+
46
+ Depending on the setup of your system you may have to call `gem1.9` and use the `sudo` command.
47
+
48
+ If everything worked out you should have the lebowski gem installed on your computer. The framework is
49
+ dependent on two gems:
50
+
51
+ * selenium-client 1.2.18
52
+ * rspec 1.3.0
53
+
54
+ For RSpec, it is only required if you plan on using the Lebowski's RSpec extensions.
55
+
56
+ Once installed you will have three executables installed that you can use to run your
57
+ Lebowski scripts:
58
+
59
+ * `lebowski-start-server` - Starts the selenium server
60
+ * `lebowski` - Can be used to run your Ruby scripts that use Lebowski
61
+ * `lebowski-spec` - Can be used to run your spec tests that use Lebowski
62
+
63
+ Of the three listed above, the one that must always be executed before executing a script
64
+ using Lebowski is the `lebowski-start-server`.
65
+
66
+ It is assumed that you have the SproutCore framework installed on your machine, but if not,
67
+ you can grab the framework by doing the following:
68
+
69
+ $ gem install sproutcore
70
+
71
+ At this time, the Lebowski framework works with SproutCore v1.0.1046.
72
+
73
+ In addition to SproutCore, it is also advised that you, at minimum, have [Firefox](http://www.mozilla.com/en-US/firefox/personal.html)
74
+ installed on your system since that is the default browser used to run your SproutCore application using
75
+ Lebowski.
76
+
77
+ #Getting Started With Lebowski
78
+
79
+ If you're new to the Lebowski framework then the best place to get started is to try
80
+ and run the Hello World example that you can find in the `examples/hello_world` directory when
81
+ you clone the Lebowski framework from github. In the directory you'll see two sub-directories:
82
+ app and spec. The app directory contains the Hello World SproutCore application. The spec folder
83
+ contains three files that will test the application using the Lebowski framework.
84
+
85
+ To get started, you'll first need to start the selenium server using `lebowski-start-server`.
86
+ Next, you will need to start up the hello world example app using `sc-server` within the app
87
+ directory. Check that you can see the application by opening a browser and going to the
88
+ following URL:
89
+
90
+ http://localhost:4020/hello_world
91
+
92
+ If the app started correctly you should see a label with the text "Click a button", and
93
+ two buttons below the label with titles "Hello" and "World". If you click the two buttons
94
+ you should see the label's caption change between "Hello" and "World".
95
+
96
+ You can see how the views were added to the application by looking at the `main_page.js` file
97
+ in the `app/apps/hello_world/resources` folder.
98
+
99
+ With the application started, you can start by running the first hello world spec file
100
+ like so:
101
+
102
+ $ cd examples/hello_world/spec
103
+ $ lebowski-spec -f n hello_world_spec.rb
104
+
105
+ If everything worked you should see the following outputted your terminal:
106
+
107
+ Hello World Test
108
+ will check that label has an initial value 'click a button'
109
+ will check that hello button has title 'hello'
110
+ will check that world button has title 'world'
111
+ will click hello button and then confirm label has value 'hello'
112
+ will click world button and then confirm label has value 'world'
113
+
114
+ Finished in 1.810166 seconds
115
+
116
+ 5 examples, 0 failures
117
+
118
+ If you got output that looks like the output above then congratulations, you've just run
119
+ your first Lebowski script. For a slightly more complicated script, try running the
120
+ `hello_world_2_spec.rb` file.
121
+
122
+ If you examine the hello world spec files, you'll see that they introduce to
123
+ some of the main concepts of using the Lebowski framework, namely:
124
+
125
+ * Starting up the application
126
+ * Defining paths
127
+ * Accessing views by relative property paths and identifiers
128
+ * Accessing a view's properties
129
+ * Using the Lebowski RSpec extensions
130
+ * Creating a custom path proxy
131
+
132
+ After you get yourself familiar with the hello world example app, you can move on and learn
133
+ how to make a custom type proxy by going to the `custom_view` example app.
134
+
135
+ If you like to know what proxies the Lebowski framework comes with and know how to use them,
136
+ be sure to check out the `sc_controls` example app.
137
+
138
+ #Why the name "Lebowski"?
139
+
140
+ > sometimes there's a man... I won't say a hero, 'cause, what's a hero? But sometimes,
141
+ > there's a man. And I'm talkin' about the [Dude](http://www.imdb.com/title/tt0118715/) here.
142
+ > Sometimes, there's a man, well, he's the man for his time and place. He fits right in there.
143
+ > And that's the Dude, in Los Angeles. And even if he's a lazy man - and the Dude was most certainly
144
+ > that. Quite possibly the laziest in Los Angeles County, which would place him high in the runnin'
145
+ > for laziest worldwide. But sometimes there's a man, sometimes, there's a man.
146
+
@@ -0,0 +1,42 @@
1
+ require 'rubygems'
2
+ gem 'hoe', '>= 2.1.0'
3
+ require 'hoe'
4
+ require 'fileutils'
5
+ require './lib/lebowski'
6
+
7
+ Hoe.plugin :newgem
8
+
9
+ $hoe = Hoe.spec 'lebowski' do
10
+ self.version = Lebowski::VERSION::STRING
11
+ self.summary = "A feature and integration test automation framework for SproutCore applications"
12
+ self.description = <<-DESCRIPTION
13
+
14
+ Compared to unit testing framework that are perfect for testing individual
15
+ objects and functions, Lebowski is an automated test framework
16
+ designed for full feature, integration, and regression testing of a
17
+ SproutCore application.
18
+
19
+ DESCRIPTION
20
+
21
+ self.developer 'Michael Cohen', 'michael.lee.cohen@gmail.com'
22
+ self.rubyforge_name = 'lebowski'
23
+ self.extra_deps << ['selenium-client', ">= 1.2.18"]
24
+ self.extra_deps << ['rspec', ">= 1.3.0"]
25
+ self.post_install_message = <<-POST_INSTALL_MESSAGE
26
+ #{'*'*50}
27
+
28
+ Thank you for installing lebowski-#{Lebowski::VERSION::STRING}
29
+
30
+ Please be sure to read the README.md and History.md
31
+ for useful information on how to use this framework
32
+ and about this release.
33
+
34
+ For more information go to the following web sites:
35
+
36
+ http://github.com/FrozenCanuck/Lebowski
37
+ http://frozencanuck.wordpress.com
38
+ http://www.sproutcore.com
39
+
40
+ #{'*'*50}
41
+ POST_INSTALL_MESSAGE
42
+ end
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #
4
+ # Executable used to run a script that uses the Lebowski framework. Using
5
+ # this instead of ruby directly will automtically require and include all
6
+ # the nessary files, gems and modules to get you running with the framework
7
+ #
8
+ # E.g. lebowski my_lebowski_script.rb
9
+ #
10
+
11
+ if ARGV.length == 0
12
+ puts "Error: Unable to run lebowski. A ruby file is required"
13
+ exit
14
+ end
15
+
16
+ require 'rubygems'
17
+ gem 'lebowski'
18
+ require 'lebowski'
19
+
20
+ include Lebowski::Foundation
21
+ include Lebowski::Foundation::Views
22
+ include Lebowski::Foundation::Panes
23
+ include Lebowski::SCUI::Views
24
+
25
+ load ARGV[0]
26
+
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #
4
+ # Executable used to run an RSpec script that makes use of the Lebowski framework.
5
+ # Using this instead of spec directly will automtically require and include all
6
+ # the nessary files, gems and modules to get you running with the framework.
7
+ # Special spec extension will also be included.
8
+ #
9
+ # E.g. lebowski-spec my_lebowski_spec.rb
10
+ #
11
+
12
+ if ARGV.length == 0
13
+ puts "Error: Unable to run lebowski-spec. A ruby file is required"
14
+ exit
15
+ end
16
+
17
+ require 'rubygems'
18
+ gem 'rspec', '>=1.3.0'
19
+ require 'spec'
20
+ require 'spec/autorun'
21
+ gem 'lebowski'
22
+ require 'lebowski/spec'
23
+
24
+ include Lebowski::Foundation
25
+ include Lebowski::Foundation::Views
26
+ include Lebowski::Foundation::Panes
27
+ include Lebowski::SCUI::Views
28
+
29
+ exit ::Spec::Runner::CommandLine.run
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #
4
+ # Executable to start the selenium server that will automically include
5
+ # the required extension file
6
+ #
7
+
8
+ DEFAULT_SELENIUM_SERVER_PORT = 4444
9
+
10
+ port = DEFAULT_SELENIUM_SERVER_PORT
11
+
12
+ ARGV.each_with_index do |arg, index|
13
+ port = ARGV[index + 1] if arg == '-port' and (index + 1) < ARGV.count
14
+ end
15
+
16
+ puts "Running Selenium Server for Lebowski"
17
+ puts "Starting server on http://localhost:#{port}"
18
+ puts "To quit server, press Control-C"
19
+
20
+ resources_dir = File.expand_path(File.join(File.dirname(__FILE__), %w[.. resources]))
21
+ selenium_server = File.join(resources_dir, 'selenium-server.jar')
22
+ user_extensions = File.join(resources_dir, 'user-extensions.js')
23
+
24
+ exec 'java', '-jar', selenium_server, '-userExtensions', user_extensions, *ARGV
@@ -0,0 +1,15 @@
1
+ # ==========================================================================
2
+ # Project: Lebowski Framework - The SproutCore Test Automation Framework
3
+ # License: Licensed under MIT license (see License.txt)
4
+ # ==========================================================================
5
+
6
+ require "rubygems"
7
+ gem "selenium-client", ">=1.2.16"
8
+ require "selenium/client"
9
+
10
+ require File.expand_path(File.dirname(__FILE__) + '/lebowski/version')
11
+ require File.expand_path(File.dirname(__FILE__) + '/lebowski/core')
12
+
13
+ require File.expand_path(File.dirname(__FILE__) + '/lebowski/runtime')
14
+ require File.expand_path(File.dirname(__FILE__) + '/lebowski/foundation')
15
+ require File.expand_path(File.dirname(__FILE__) + '/lebowski/scui')
@@ -0,0 +1,35 @@
1
+ module Lebowski
2
+
3
+ class Rect
4
+
5
+ attr_accessor :width, :height, :x, :y
6
+
7
+ def initialize(width, height, x, y)
8
+ @width = width
9
+ @height = height
10
+ @x = x
11
+ @y = y
12
+ end
13
+
14
+ def to_s()
15
+ return "Rect<width: #{width}, height: #{height}, x: #{x}, y: #{y}>"
16
+ end
17
+
18
+ end
19
+
20
+ class Coords
21
+
22
+ attr_accessor :x, :y
23
+
24
+ def initialize(x, y)
25
+ @x = x
26
+ @y = y
27
+ end
28
+
29
+ def to_s()
30
+ return "Coords<x: #{x}, y: #{y}>"
31
+ end
32
+
33
+ end
34
+
35
+ end
@@ -0,0 +1,52 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/core')
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/errors/unexpected_type')
4
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/errors/argument_invalid_type')
5
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/errors/timeout')
6
+
7
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/stall_support')
8
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/key_check')
9
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/positioned_element')
10
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/user_actions')
11
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/wait_actions')
12
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/inline_text_field_support')
13
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/delegate_support')
14
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/collection_item_view_support')
15
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/list_item_view_support')
16
+
17
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/proxy_object')
18
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/sc_object')
19
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/object_array')
20
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/core_query')
21
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/dom_element')
22
+
23
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/support/simple_item_array')
24
+
25
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/view')
26
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/label')
27
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/button')
28
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/container')
29
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/segmented')
30
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/radio')
31
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/checkbox')
32
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/disclosure')
33
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/text_field')
34
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/select_field')
35
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/menu_item')
36
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/collection')
37
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/list')
38
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/list_item')
39
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/grid')
40
+
41
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/pane')
42
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/main')
43
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/modal')
44
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/panel')
45
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/alert')
46
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/palette')
47
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/picker')
48
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/sheet')
49
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/menu')
50
+
51
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/application')
52
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/proxy_factory')