tkxml 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,34 +1,16 @@
1
- # TkXML (2.04a)
2
- # Copyright 2002 Thomas Sawyer (transami@runbox.com)
3
- # April 2002 Alpha
4
-
5
1
  require 'tk'
6
2
 
7
- # A combination of Ruby/Tk + REXML to allow for fast and easy creation of Tk
8
- # interfaces using standard XML
3
+ # A combination of Ruby, Tcl/Tk and Nokogiri or REXML to allow for fast and
4
+ # easy creation of Tk interfaces using standard XML.
9
5
  #
10
- # xml_file = File.open("ui.xml")
11
- # tkxml_instance = TkXML.new(xml_file)
6
+ # xml = File.open("ui.xml")
7
+ # tkxml_instance = TkXML.new(xml)
12
8
  # tkxml_instance.build
13
9
  #
14
10
  class TkXML
15
11
 
16
- # Access to project metadata.
17
- def self.metadata
18
- @metadata ||= (
19
- require 'yaml'
20
- YAML.load(File.new(File.dirname(__FILE__) + '/tkxml.yml'))
21
- )
22
- end
23
-
24
- # Access metadata as constants.
25
- def self.const_missing(name)
26
- key = name.to_s.downcase
27
- metadata[key] || super(name)
28
- end
29
-
30
- # TODO: here only b/c Ruby 1.8.x is broke
31
- VERSION = metadata['version']
12
+ # Current version of TkXML.
13
+ VERSION = '0.3.1' # :erb: VERSION = '<%= version %>'
32
14
 
33
15
  #
34
16
  def initialize(source, type=:nokogiri)
@@ -148,7 +130,7 @@ class TkXML
148
130
  puts "End Method: #{name}"
149
131
  end
150
132
 
151
- private
133
+ private
152
134
 
153
135
  # Looks like the attributes object given is nothing more then
154
136
  # a array in an array. how lame! This wll turn it into a hash.
@@ -163,3 +145,4 @@ class TkXML
163
145
 
164
146
  end
165
147
 
148
+ # Copyright 2002 Rubyworks
@@ -1,34 +1,39 @@
1
- ---
2
- name: tkxml
3
- organizaton: RubyWorks
4
- title: TkXML
5
- contact: trans <transfire+tkxml AT gmail.com>
6
- requires:
7
- - group:
1
+ ---
2
+ source:
3
+ - meta
4
+ authors:
5
+ - name: 7rans
6
+ email: transfire+tkxml@gmail.com
7
+ copyrights:
8
+ - holder: Rubyworks
9
+ year: '2008'
10
+ license: BSD-2-Clause
11
+ replacements: []
12
+ alternatives: []
13
+ requirements:
14
+ - name: detroit
15
+ groups:
8
16
  - build
9
- name: syckle
10
- version: 0+
11
- - group:
17
+ development: true
18
+ - name: qed
19
+ groups:
12
20
  - test
13
- name: qed
14
- version: 0+
15
- pom_verison: 1.0.0
16
- manifest:
17
- - .ruby
18
- - lib/tkxml/nokogiri.rb
19
- - lib/tkxml/rexml.rb
20
- - lib/tkxml.rb
21
- - lib/tkxml.yml
22
- - test/test_tkxml.rb
23
- - test/ui.xml
24
- - HISTORY.rdoc
25
- - LICENSE
26
- - README.rdoc
27
- - VERSION
28
- version: 0.2.4
29
- copyright: (c) 2008 Trans
30
- licenses:
31
- - Apache 2.0
32
- description: TkXML translates XML markup into Ruby Tk interface code
21
+ development: true
22
+ dependencies: []
23
+ conflicts: []
24
+ repositories: []
25
+ resources:
26
+ home: http://rubyworks.github.com/tkxml
27
+ code: http://github.com/rubyworks/tkxml
28
+ mail: http://groups.google.com/group/rubyworks-mailinglist
29
+ extra: {}
30
+ load_path:
31
+ - lib
32
+ revision: 0
33
+ created: '2002-04-21'
33
34
  summary: XML markup for building Tk User interfaces
34
- created: 2008-02-21
35
+ title: TkXML
36
+ version: 0.3.1
37
+ name: tkxml
38
+ description: TkXML translates XML markup into Ruby Tk interface code
39
+ date: '2011-11-04'
@@ -27,7 +27,7 @@ class TkXML
27
27
  ## pull off the tag name if prefixed with the Tk namespace
28
28
  name = name.sub(/^Tk:/, '')
29
29
 
30
- attrs = Hash[*attrs]
30
+ attrs = Hash[*attrs.flatten]
31
31
 
32
32
  ## is it a method call or a new widget?
33
33
  if name[0..0] == '_'
@@ -0,0 +1,42 @@
1
+ = TkXML
2
+
3
+ Here is an example of a very simple TkXML document:
4
+
5
+ <Tk:Root name="test" title="Test">
6
+ <Tk:Frame name="menuframe">
7
+ <Tk:Menubutton name="filebutton" text="File" underline="0">
8
+ <Tk:Menu name="filemenu" tearoff="false">
9
+ <Tk:_add
10
+ _1="command"
11
+ label="Open"
12
+ command="openDocument"
13
+ underline="0"
14
+ accel="Ctrl+O" />
15
+ <Tk:_add
16
+ _1="command"
17
+ label="Exit"
18
+ command="exitApplication"
19
+ underline="0"
20
+ accel="Ctrl+Q" />
21
+ </Tk:Menu>
22
+ <Tk:_pack side="left" />
23
+ </Tk:Menubutton>
24
+ <Tk:_pack side="left" />
25
+ </Tk:Frame>
26
+ <Tk:_bind
27
+ _1="Control-o"
28
+ _2="openDocument" />
29
+ <Tk:_bind
30
+ _1="Control-q"
31
+ _2="exitApplication" />
32
+ </Tk:Root>
33
+
34
+ To run the Tk application, let us assume the above document has been read
35
+ from file and stored in +source+. Then:
36
+
37
+ tkxml = TkXML.new(source)
38
+ tkxml.build
39
+
40
+ Notice we have not created any methods for the commands. This is something
41
+ that still needs to be done.
42
+
metadata CHANGED
@@ -1,107 +1,84 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: tkxml
3
- version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 3
9
- - 0
10
- version: 0.3.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.1
5
+ prerelease:
11
6
  platform: ruby
12
- authors: []
13
-
7
+ authors:
8
+ - 7rans
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-03-05 00:00:00 -05:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: syckle
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2011-11-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: detroit
16
+ requirement: &24286220 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: qed
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *24286220
25
+ - !ruby/object:Gem::Dependency
26
+ name: qed
27
+ requirement: &24285480 !ruby/object:Gem::Requirement
39
28
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
47
33
  type: :development
48
- version_requirements: *id002
34
+ prerelease: false
35
+ version_requirements: *24285480
49
36
  description: TkXML translates XML markup into Ruby Tk interface code
50
- email: ""
37
+ email:
38
+ - transfire+tkxml@gmail.com
51
39
  executables: []
52
-
53
40
  extensions: []
54
-
55
- extra_rdoc_files:
41
+ extra_rdoc_files:
42
+ - TKXML.txt
43
+ - HISTORY.rdoc
56
44
  - README.rdoc
57
- files:
45
+ - QED.rdoc
46
+ - NOTICE.rdoc
47
+ files:
58
48
  - .ruby
59
49
  - lib/tkxml/nokogiri.rb
60
50
  - lib/tkxml/rexml.rb
61
51
  - lib/tkxml.rb
62
52
  - lib/tkxml.yml
63
- - test/test_tkxml.rb
64
- - test/ui.xml
53
+ - spec/example.rdoc
65
54
  - HISTORY.rdoc
66
- - LICENSE
67
55
  - README.rdoc
68
- - VERSION
69
- has_rdoc: true
70
- homepage: ""
71
- licenses:
72
- - Apache 2.0
56
+ - QED.rdoc
57
+ - NOTICE.rdoc
58
+ - TKXML.txt
59
+ homepage: http://rubyworks.github.com/tkxml
60
+ licenses:
61
+ - BSD-2-Clause
73
62
  post_install_message:
74
- rdoc_options:
75
- - --title
76
- - TkXML API
77
- - --main
78
- - README.rdoc
79
- require_paths:
63
+ rdoc_options: []
64
+ require_paths:
80
65
  - lib
81
- required_ruby_version: !ruby/object:Gem::Requirement
66
+ required_ruby_version: !ruby/object:Gem::Requirement
82
67
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
90
- required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
73
  none: false
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- hash: 3
96
- segments:
97
- - 0
98
- version: "0"
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
99
78
  requirements: []
100
-
101
- rubyforge_project: tkxml
102
- rubygems_version: 1.3.7
79
+ rubyforge_project:
80
+ rubygems_version: 1.8.10
103
81
  signing_key:
104
82
  specification_version: 3
105
83
  summary: XML markup for building Tk User interfaces
106
- test_files:
107
- - test/test_tkxml.rb
84
+ test_files: []
data/LICENSE DELETED
@@ -1,205 +0,0 @@
1
- .
2
-
3
- Apache License
4
- Version 2.0, January 2004
5
- http://www.apache.org/licenses/
6
-
7
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
8
-
9
- 1. Definitions.
10
-
11
- "License" shall mean the terms and conditions for use, reproduction,
12
- and distribution as defined by Sections 1 through 9 of this document.
13
-
14
- "Licensor" shall mean the copyright owner or entity authorized by
15
- the copyright owner that is granting the License.
16
-
17
- "Legal Entity" shall mean the union of the acting entity and all
18
- other entities that control, are controlled by, or are under common
19
- control with that entity. For the purposes of this definition,
20
- "control" means (i) the power, direct or indirect, to cause the
21
- direction or management of such entity, whether by contract or
22
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
23
- outstanding shares, or (iii) beneficial ownership of such entity.
24
-
25
- "You" (or "Your") shall mean an individual or Legal Entity
26
- exercising permissions granted by this License.
27
-
28
- "Source" form shall mean the preferred form for making modifications,
29
- including but not limited to software source code, documentation
30
- source, and configuration files.
31
-
32
- "Object" form shall mean any form resulting from mechanical
33
- transformation or translation of a Source form, including but
34
- not limited to compiled object code, generated documentation,
35
- and conversions to other media types.
36
-
37
- "Work" shall mean the work of authorship, whether in Source or
38
- Object form, made available under the License, as indicated by a
39
- copyright notice that is included in or attached to the work
40
- (an example is provided in the Appendix below).
41
-
42
- "Derivative Works" shall mean any work, whether in Source or Object
43
- form, that is based on (or derived from) the Work and for which the
44
- editorial revisions, annotations, elaborations, or other modifications
45
- represent, as a whole, an original work of authorship. For the purposes
46
- of this License, Derivative Works shall not include works that remain
47
- separable from, or merely link (or bind by name) to the interfaces of,
48
- the Work and Derivative Works thereof.
49
-
50
- "Contribution" shall mean any work of authorship, including
51
- the original version of the Work and any modifications or additions
52
- to that Work or Derivative Works thereof, that is intentionally
53
- submitted to Licensor for inclusion in the Work by the copyright owner
54
- or by an individual or Legal Entity authorized to submit on behalf of
55
- the copyright owner. For the purposes of this definition, "submitted"
56
- means any form of electronic, verbal, or written communication sent
57
- to the Licensor or its representatives, including but not limited to
58
- communication on electronic mailing lists, source code control systems,
59
- and issue tracking systems that are managed by, or on behalf of, the
60
- Licensor for the purpose of discussing and improving the Work, but
61
- excluding communication that is conspicuously marked or otherwise
62
- designated in writing by the copyright owner as "Not a Contribution."
63
-
64
- "Contributor" shall mean Licensor and any individual or Legal Entity
65
- on behalf of whom a Contribution has been received by Licensor and
66
- subsequently incorporated within the Work.
67
-
68
- 2. Grant of Copyright License. Subject to the terms and conditions of
69
- this License, each Contributor hereby grants to You a perpetual,
70
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
71
- copyright license to reproduce, prepare Derivative Works of,
72
- publicly display, publicly perform, sublicense, and distribute the
73
- Work and such Derivative Works in Source or Object form.
74
-
75
- 3. Grant of Patent License. Subject to the terms and conditions of
76
- this License, each Contributor hereby grants to You a perpetual,
77
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
78
- (except as stated in this section) patent license to make, have made,
79
- use, offer to sell, sell, import, and otherwise transfer the Work,
80
- where such license applies only to those patent claims licensable
81
- by such Contributor that are necessarily infringed by their
82
- Contribution(s) alone or by combination of their Contribution(s)
83
- with the Work to which such Contribution(s) was submitted. If You
84
- institute patent litigation against any entity (including a
85
- cross-claim or counterclaim in a lawsuit) alleging that the Work
86
- or a Contribution incorporated within the Work constitutes direct
87
- or contributory patent infringement, then any patent licenses
88
- granted to You under this License for that Work shall terminate
89
- as of the date such litigation is filed.
90
-
91
- 4. Redistribution. You may reproduce and distribute copies of the
92
- Work or Derivative Works thereof in any medium, with or without
93
- modifications, and in Source or Object form, provided that You
94
- meet the following conditions:
95
-
96
- (a) You must give any other recipients of the Work or
97
- Derivative Works a copy of this License; and
98
-
99
- (b) You must cause any modified files to carry prominent notices
100
- stating that You changed the files; and
101
-
102
- (c) You must retain, in the Source form of any Derivative Works
103
- that You distribute, all copyright, patent, trademark, and
104
- attribution notices from the Source form of the Work,
105
- excluding those notices that do not pertain to any part of
106
- the Derivative Works; and
107
-
108
- (d) If the Work includes a "NOTICE" text file as part of its
109
- distribution, then any Derivative Works that You distribute must
110
- include a readable copy of the attribution notices contained
111
- within such NOTICE file, excluding those notices that do not
112
- pertain to any part of the Derivative Works, in at least one
113
- of the following places: within a NOTICE text file distributed
114
- as part of the Derivative Works; within the Source form or
115
- documentation, if provided along with the Derivative Works; or,
116
- within a display generated by the Derivative Works, if and
117
- wherever such third-party notices normally appear. The contents
118
- of the NOTICE file are for informational purposes only and
119
- do not modify the License. You may add Your own attribution
120
- notices within Derivative Works that You distribute, alongside
121
- or as an addendum to the NOTICE text from the Work, provided
122
- that such additional attribution notices cannot be construed
123
- as modifying the License.
124
-
125
- You may add Your own copyright statement to Your modifications and
126
- may provide additional or different license terms and conditions
127
- for use, reproduction, or distribution of Your modifications, or
128
- for any such Derivative Works as a whole, provided Your use,
129
- reproduction, and distribution of the Work otherwise complies with
130
- the conditions stated in this License.
131
-
132
- 5. Submission of Contributions. Unless You explicitly state otherwise,
133
- any Contribution intentionally submitted for inclusion in the Work
134
- by You to the Licensor shall be under the terms and conditions of
135
- this License, without any additional terms or conditions.
136
- Notwithstanding the above, nothing herein shall supersede or modify
137
- the terms of any separate license agreement you may have executed
138
- with Licensor regarding such Contributions.
139
-
140
- 6. Trademarks. This License does not grant permission to use the trade
141
- names, trademarks, service marks, or product names of the Licensor,
142
- except as required for reasonable and customary use in describing the
143
- origin of the Work and reproducing the content of the NOTICE file.
144
-
145
- 7. Disclaimer of Warranty. Unless required by applicable law or
146
- agreed to in writing, Licensor provides the Work (and each
147
- Contributor provides its Contributions) on an "AS IS" BASIS,
148
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
149
- implied, including, without limitation, any warranties or conditions
150
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
151
- PARTICULAR PURPOSE. You are solely responsible for determining the
152
- appropriateness of using or redistributing the Work and assume any
153
- risks associated with Your exercise of permissions under this License.
154
-
155
- 8. Limitation of Liability. In no event and under no legal theory,
156
- whether in tort (including negligence), contract, or otherwise,
157
- unless required by applicable law (such as deliberate and grossly
158
- negligent acts) or agreed to in writing, shall any Contributor be
159
- liable to You for damages, including any direct, indirect, special,
160
- incidental, or consequential damages of any character arising as a
161
- result of this License or out of the use or inability to use the
162
- Work (including but not limited to damages for loss of goodwill,
163
- work stoppage, computer failure or malfunction, or any and all
164
- other commercial damages or losses), even if such Contributor
165
- has been advised of the possibility of such damages.
166
-
167
- 9. Accepting Warranty or Additional Liability. While redistributing
168
- the Work or Derivative Works thereof, You may choose to offer,
169
- and charge a fee for, acceptance of support, warranty, indemnity,
170
- or other liability obligations and/or rights consistent with this
171
- License. However, in accepting such obligations, You may act only
172
- on Your own behalf and on Your sole responsibility, not on behalf
173
- of any other Contributor, and only if You agree to indemnify,
174
- defend, and hold each Contributor harmless for any liability
175
- incurred by, or claims asserted against, such Contributor by reason
176
- of your accepting any such warranty or additional liability.
177
-
178
- END OF TERMS AND CONDITIONS
179
-
180
- APPENDIX: How to apply the Apache License to your work.
181
-
182
- To apply the Apache License to your work, attach the following
183
- boilerplate notice, with the fields enclosed by brackets "[]"
184
- replaced with your own identifying information. (Don't include
185
- the brackets!) The text should be enclosed in the appropriate
186
- comment syntax for the file format. We also recommend that a
187
- file or class name and description of purpose be included on the
188
- same "printed page" as the copyright notice for easier
189
- identification within third-party archives.
190
-
191
- Copyright [yyyy] [name of copyright owner]
192
-
193
- Licensed under the Apache License, Version 2.0 (the "License");
194
- you may not use this file except in compliance with the License.
195
- You may obtain a copy of the License at
196
-
197
- http://www.apache.org/licenses/LICENSE-2.0
198
-
199
- Unless required by applicable law or agreed to in writing, software
200
- distributed under the License is distributed on an "AS IS" BASIS,
201
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
202
- See the License for the specific language governing permissions and
203
- limitations under the License.
204
-
205
- .