sixarm_ruby_ramp 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,204 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'rexml/document'
3
+
4
+ # XML extensions
5
+
6
+ module XML
7
+
8
+
9
+ # Specify one or more directory patterns and pass each XML file in the matching directories to a block.
10
+ #
11
+ # See [Dir#glob](http://www.ruby-doc.org/core/classes/Dir.html#M002347) for pattern details.
12
+ #
13
+ # @example To load xml documents
14
+ # XML.load_dir('/tmp/*.xml'){|xml_document|
15
+ # #...whatever you want to do with each xml document
16
+ # }
17
+ #
18
+ # @example To load xml documents in files beginning in "foo" or "bar"
19
+ # XML.load_dir('/tmp/foo*.yaml','/tmp/bar*.xml','){|xml_document|
20
+ # #...whatever you want to do with the xml document
21
+ # }
22
+
23
+ def XML.load_dir(*dirpaths)
24
+ dirpaths=[*dirpaths.flatten]
25
+ dirpaths.each do |dirpath|
26
+ Dir[dirpath].sort.each do |filename|
27
+ File.open(filename) do |file|
28
+ doc = REXML::Document.new file
29
+ yield doc
30
+ end #file
31
+ end #dir
32
+ end #each
33
+ end #def
34
+
35
+
36
+ # Sugar to load elements from a file.
37
+ #
38
+ # @example
39
+ # XML.load_attributes('config.xml','userlist/user'){|element| pp element.attributes['first_name'] }
40
+
41
+ def XML.load_elements(dirpath,xpath)
42
+ XML.load_dir(dirpath){|doc|
43
+ doc.elements.each(xpath){|elem|
44
+ yield elem
45
+ }
46
+ }
47
+ end
48
+
49
+
50
+ # Sugar to load attributes from a file.
51
+ #
52
+ # @example
53
+ # XML.load_attributes('config.xml','userlist/user'){|attributes| pp attributes['first_name'] }
54
+
55
+ def XML.load_attributes(dirpath,xpath)
56
+ XML.load_elements(dirpath,xpath){|elem|
57
+ yield elem.attributes
58
+ }
59
+ end
60
+
61
+ # Sugar to load attributes hash from a file.
62
+ #
63
+ # @example
64
+ # XML.load_attributes('config.xml','userlist/user'){|attributes| pp attributes['first_name'] }
65
+
66
+ def XML.load_attributes_hash(dirpath,xpath)
67
+ XML.load_elements(dirpath,xpath){|elem|
68
+ yield elem.attributes.to_hash
69
+ }
70
+ end
71
+
72
+
73
+ # Santize dirty xml by removing unprintables, bad tags,
74
+ # comments, and generally anything else we might need
75
+ # to enable the XML parser to handle a dirty document.
76
+ #
77
+ # This method calls these in order:
78
+ # - XML.strip_unprintables
79
+ # - XML.strip_microsoft
80
+ # - XML.strip_comments
81
+ # - XML.strip_attributes
82
+ #
83
+ # @example
84
+ # # This example shows curly braces instead of angle braces because of HTML formatting
85
+ # s="{foo a=b c=d}{!--comment--}Hello{!-[if bar]}Microsoft{![endif]}World{/foo}"
86
+ # XML.strip_all(s) => "{foo}HelloWorld{/foo}"
87
+ #
88
+ # @return [String] the text, stripped of unprintables, Microsoft markup, comments, and attributes
89
+
90
+ def XML.strip_all(xml_text)
91
+ return XML.strip_attributes(XML.strip_comments(XML.strip_microsoft(XML.strip_unprintables(xml_text))))
92
+ end
93
+
94
+
95
+ # Strip out all attributes from the xml text's tags.
96
+ #
97
+ # @example
98
+ # s="<foo a=b c=d e=f>Hello</foo>"
99
+ # XML.strip_attributes(s) => "<foo>Hello</foo>"
100
+ #
101
+ # @return [String] the text, stripped of attributes
102
+
103
+ def XML.strip_attributes(xml_text)
104
+ return xml_text.gsub(/<(\/?\w+).*?>/im){"<#{$1}>"} # delete attributes
105
+ end
106
+
107
+
108
+ # Strip out all comments from the xml text.
109
+ #
110
+ # @example
111
+ # # This example shows curly braces instead of angle braces because of HTML formatting
112
+ # s="Hello{!--comment--}World"
113
+ # XML.strip_comments(s) => "HelloWorld"
114
+ #
115
+ # @return [String] the text, stripped of comments
116
+
117
+ def XML.strip_comments(xml_text)
118
+ return xml_text.gsub(/<!.*?>/im,'')
119
+ end
120
+
121
+
122
+ # Strip out all microsoft proprietary codes.
123
+ #
124
+ # @example
125
+ # s="Hello<!-[if foo]>Microsoft<![endif]->World"
126
+ # XML.strip_microsoft(s) => "HelloWorld"
127
+ #
128
+ # @return [String] the text, stripped of Microsoft markup
129
+
130
+ def XML.strip_microsoft(xml_text)
131
+ return xml_text.gsub(/<!-*\[if\b.*?<!\[endif\]-*>/im,'')
132
+ end
133
+
134
+
135
+ # Strip out all unprintable characters from the input string.
136
+ #
137
+ # @example
138
+ # s="Hello\XXXWorld" # where XXX is unprintable
139
+ # XML.strip_unprintables(s) => "HelloWorld"
140
+ #
141
+ # @return [String] the text, stripped of unprintables
142
+
143
+ def XML.strip_unprintables(xml_text)
144
+ return xml_text.gsub(/[^[:print:]]/, "")
145
+ end
146
+
147
+ end
148
+
149
+
150
+ # REXML::Attributes extensions
151
+
152
+ class REXML::Attributes
153
+
154
+ # @return a new hash of the attribute keys and values.
155
+ #
156
+ # @example
157
+ # attributes.to_hash => {"src"=>"pic.jpg", "height" => "100", "width" => "200"}
158
+
159
+ def to_hash
160
+ h=Hash.new
161
+ self.keys.each{|k| h[k]=self[k]}
162
+ h
163
+ end
164
+
165
+ end
166
+
167
+
168
+ # REXML::Document extensions
169
+
170
+ class REXML::Document
171
+
172
+ # Remove all attributes from the document's elements.
173
+ #
174
+ # @return the document.
175
+ #
176
+ # @see Element#remove_attributes
177
+
178
+ def remove_attributes
179
+ self.elements.each("//") { |elem| elem.attributes.each_attribute{|attribute| attribute.remove }}
180
+ self
181
+ end
182
+
183
+ end
184
+
185
+
186
+ # REXML::Element extensions
187
+
188
+ class REXML::Element
189
+
190
+ # Remove all attributes from the element.
191
+ #
192
+ # @return the element.
193
+ #
194
+ # @see Document#remove_attributes
195
+
196
+ def remove_attributes
197
+ self.attributes.each_attribute{|attribute| attribute.remove }
198
+ self
199
+ end
200
+
201
+ end
202
+
203
+
204
+
@@ -0,0 +1,10 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'yaml'
3
+
4
+ # YAML extensions
5
+
6
+ module YAML
7
+
8
+ # Note: we have moved YAML.load_dir and its related methods to a new gem.
9
+
10
+ end
@@ -0,0 +1,8 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin rdoc
3
+ Please see README.rdoc
4
+ =end
5
+
6
+ ['array','class','csv','date','enumerable','file','fixnum','hash','integer','io','kernel','math','nil','numeric','object','process','string','symbol','time','xml','yaml'].map{|x|
7
+ require File.dirname(__FILE__) + "/sixarm_ruby_ramp/#{x}.rb"
8
+ }
@@ -0,0 +1 @@
1
+ A1-B1-C1=A2-B2-C2=A3-B3-C3
@@ -0,0 +1,5 @@
1
+ <foo>
2
+ <bar x="a"/>
3
+ <bar x="b"/>
4
+ <bar x="c"/>
5
+ </foo>
@@ -0,0 +1,5 @@
1
+ <foo>
2
+ <bar x="d"/>
3
+ <bar x="e"/>
4
+ <bar x="f"/>
5
+ </foo>
@@ -0,0 +1 @@
1
+ <html><head><meta><meta><meta><meta><meta><meta><link><title>Foo</title><style></style></head><body><div><table> <tr> <td> <p>Foo</p> </td> <td> <p>HTML</p> </td> <td> <p>af<b>s</b></p> </td> </tr> <tr> <td> <p><o></o></p> </td> <td> <h1>Bold</h1> </td> <td> <p><o></o></p> </td> </tr> <tr> <td> <p><o></o></p> </td> <td> <p>Fas785932517</p> </td> <td> <p>asf</p> </td> </tr> <tr> <td> <p><o></o></p> </td> <td> <p><o></o></p> </td> <td> <p><o></o></p> </td> </tr></table><p><o></o></p></div></body></html>
@@ -0,0 +1,148 @@
1
+ <html xmlns:o="urn:schemas-microsoft-com:office:office"
2
+ xmlns:w="urn:schemas-microsoft-com:office:word"
3
+ xmlns="http://www.w3.org/TR/REC-html40">
4
+
5
+ <head>
6
+ <meta name=Title content=Foo>
7
+ <meta name=Keywords content="">
8
+ <meta http-equiv=Content-Type content="text/html; charset=macintosh">
9
+ <meta name=ProgId content=Word.Document>
10
+ <meta name=Generator content="Microsoft Word 10">
11
+ <meta name=Originator content="Microsoft Word 10">
12
+ <link rel=File-List href="Foo_files/filelist.xml">
13
+ <title>Foo</title>
14
+ <!--[if gte mso 9]><xml>
15
+ <o:DocumentProperties>
16
+ <o:Template>Normal</o:Template>
17
+ <o:LastAuthor>Staff</o:LastAuthor>
18
+ <o:Revision>1</o:Revision>
19
+ <o:Created>2009-10-22T23:51:00Z</o:Created>
20
+ <o:LastSaved>2009-10-22T23:53:00Z</o:LastSaved>
21
+ <o:Pages>1</o:Pages>
22
+ <o:Company>WestEd</o:Company>
23
+ <o:Lines>1</o:Lines>
24
+ <o:Paragraphs>1</o:Paragraphs>
25
+ <o:Version>10.262</o:Version>
26
+ </o:DocumentProperties>
27
+ </xml><![endif]--><!--[if gte mso 9]><xml>
28
+ <w:WordDocument>
29
+ <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
30
+ <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery>
31
+ <w:UseMarginsForDrawingGridOrigin/>
32
+ </w:WordDocument>
33
+ </xml><![endif]-->
34
+ <style>
35
+ <!--
36
+ /* Style Definitions */
37
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
38
+ {mso-style-parent:"";
39
+ margin:0in;
40
+ margin-bottom:.0001pt;
41
+ mso-pagination:widow-orphan;
42
+ font-size:12.0pt;
43
+ font-family:Times;}
44
+ h1
45
+ {mso-style-next:Normal;
46
+ margin:0in;
47
+ margin-bottom:.0001pt;
48
+ mso-pagination:widow-orphan;
49
+ page-break-after:avoid;
50
+ mso-outline-level:1;
51
+ font-size:12.0pt;
52
+ font-family:Times;
53
+ mso-font-kerning:0pt;}
54
+ @page Section1
55
+ {size:8.5in 11.0in;
56
+ margin:1.0in 1.25in 1.0in 1.25in;
57
+ mso-header-margin:.5in;
58
+ mso-footer-margin:.5in;
59
+ mso-paper-source:0;}
60
+ div.Section1
61
+ {page:Section1;}
62
+ -->
63
+ </style>
64
+ </head>
65
+
66
+ <body bgcolor=white lang=EN-US style='tab-interval:.5in'>
67
+
68
+ <div class=Section1>
69
+
70
+ <table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
71
+ border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0in 5.4pt 0in 5.4pt'>
72
+ <tr>
73
+ <td width=148 valign=top style='width:2.05in;border:solid windowtext .5pt;
74
+ padding:0in 5.4pt 0in 5.4pt'>
75
+ <p class=MsoNormal>Foo</p>
76
+ </td>
77
+ <td width=148 valign=top style='width:2.05in;border:solid windowtext .5pt;
78
+ border-left:none;mso-border-left-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
79
+ <p class=MsoNormal>HTML</p>
80
+ </td>
81
+ <td width=148 valign=top style='width:2.05in;border:solid windowtext .5pt;
82
+ border-left:none;mso-border-left-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
83
+ <p class=MsoNormal>af<b>s</b></p>
84
+ </td>
85
+ </tr>
86
+ <tr>
87
+ <td width=148 valign=top style='width:2.05in;border:solid windowtext .5pt;
88
+ border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
89
+ <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
90
+ </td>
91
+ <td width=148 valign=top style='width:2.05in;border-top:none;border-left:
92
+ none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
93
+ mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
94
+ padding:0in 5.4pt 0in 5.4pt'>
95
+ <h1>Bold</h1>
96
+ </td>
97
+ <td width=148 valign=top style='width:2.05in;border-top:none;border-left:
98
+ none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
99
+ mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
100
+ padding:0in 5.4pt 0in 5.4pt'>
101
+ <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
102
+ </td>
103
+ </tr>
104
+ <tr>
105
+ <td width=148 valign=top style='width:2.05in;border:solid windowtext .5pt;
106
+ border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
107
+ <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
108
+ </td>
109
+ <td width=148 valign=top style='width:2.05in;border-top:none;border-left:
110
+ none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
111
+ mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
112
+ padding:0in 5.4pt 0in 5.4pt'>
113
+ <p class=MsoNormal>Fas785932517</p>
114
+ </td>
115
+ <td width=148 valign=top style='width:2.05in;border-top:none;border-left:
116
+ none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
117
+ mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
118
+ padding:0in 5.4pt 0in 5.4pt'>
119
+ <p class=MsoNormal>�asf�</p>
120
+ </td>
121
+ </tr>
122
+ <tr>
123
+ <td width=148 valign=top style='width:2.05in;border:solid windowtext .5pt;
124
+ border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
125
+ <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
126
+ </td>
127
+ <td width=148 valign=top style='width:2.05in;border-top:none;border-left:
128
+ none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
129
+ mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
130
+ padding:0in 5.4pt 0in 5.4pt'>
131
+ <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
132
+ </td>
133
+ <td width=148 valign=top style='width:2.05in;border-top:none;border-left:
134
+ none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
135
+ mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
136
+ padding:0in 5.4pt 0in 5.4pt'>
137
+ <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
138
+ </td>
139
+ </tr>
140
+ </table>
141
+
142
+ <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
143
+
144
+ </div>
145
+
146
+ </body>
147
+
148
+ </html>
@@ -0,0 +1,9 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test/unit'
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+
6
+ ['array','class','csv','date','enumerable','file','fixnum','hash','integer','io','kernel','math','nil','numeric','object','process','string','symbol','time','xml','yaml'].map{|x|
7
+ require "sixarm_ruby_ramp/#{x}_test.rb"
8
+ }
9
+
data.tar.gz.sig ADDED
@@ -0,0 +1 @@
1
+ �z
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sixarm_ruby_ramp
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - SixArm
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain:
12
+ - !binary |-
13
+ LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCRENDQW0yZ0F3SUJB
14
+ Z0lKQUtQd0VFVFU1YkhvTUEwR0NTcUdTSWIzRFFFQkJRVUFNR0F4Q3pBSkJn
15
+ TlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZB
16
+ WURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVE4d0RRWURWUVFLRXdaVGFY
17
+ aEJjbTB4RXpBUkJnTlZCQU1UQ25OcGVHRnliUzVqYjIwd0hoY05NVEF4Ck1q
18
+ RXpNak15TnpFeldoY05NVE13T1RBNE1qTXlOekV6V2pCZ01Rc3dDUVlEVlFR
19
+ R0V3SlZVekVUTUJFR0ExVUUKQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFV
20
+ RUJ4TU5VMkZ1SUVaeVlXNWphWE5qYnpFUE1BMEdBMVVFQ2hNRwpVMmw0UVhK
21
+ dE1STXdFUVlEVlFRREV3cHphWGhoY20wdVkyOXRNSUdmTUEwR0NTcUdTSWIz
22
+ RFFFQkFRVUFBNEdOCkFEQ0JpUUtCZ1FDOTRtRDlKRHdCc3Vuc09JMFZSM0NY
23
+ WGJPV2c5Y1dhV2Npd0Z5Sk5GaU03QTlJOEtQTGZYVXcKUUM0Y3pVZTVadUc0
24
+ V0h2aW5yV2hrckNLKzFkV0Jxb0VDbHhkRi9Gb0tPNWErdG9uR0Nqam1meTgx
25
+ Sm1Gamp5eAplVHNqc0h5dncrUWlrOWtwZjlhajYrcG5rTnJWc3dnTkhWZWEy
26
+ bzl5YWJiRWlTNlZTZUpXb1FJREFRQUJvNEhGCk1JSENNQjBHQTFVZERnUVdC
27
+ QlF6UEp0cW1TZ2M1M2VETjdhU3pEUXdyOVRBTERDQmtnWURWUjBqQklHS01J
28
+ R0gKZ0JRelBKdHFtU2djNTNlRE43YVN6RFF3cjlUQUxLRmtwR0l3WURFTE1B
29
+ a0dBMVVFQmhNQ1ZWTXhFekFSQmdOVgpCQWdUQ2tOaGJHbG1iM0p1YVdFeEZq
30
+ QVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHpZMjh4RHpBTkJnTlZCQW9UCkJs
31
+ TnBlRUZ5YlRFVE1CRUdBMVVFQXhNS2MybDRZWEp0TG1OdmJZSUpBS1B3RUVU
32
+ VTViSG9NQXdHQTFVZEV3UUYKTUFNQkFmOHdEUVlKS29aSWh2Y05BUUVGQlFB
33
+ RGdZRUFvb0VleFAvb1BhbTFUUDcxU3l1aHhNYit1VHJaYlNRZQpqVkIrRXhS
34
+ d1dhZEd3YU5QVUE1NmQzOXF3YXZ3UCtpdSszSnBlb25OTVZ2YldYRjVuYUNY
35
+ L2RORkllUkVIekVSClpEUlFZTXFydTlURU1uYTZIRDl6cGNzdEY3dndUaEdv
36
+ dmxPUSszWTZwbFE0bk16aXBYY1o5VEhxczY1UElMMHEKZWFid3BDYkFvcG89
37
+ Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
38
+ date: 2011-12-17 00:00:00.000000000 Z
39
+ dependencies: []
40
+ description:
41
+ email: sixarm@sixarm.com
42
+ executables: []
43
+ extensions: []
44
+ extra_rdoc_files: []
45
+ files:
46
+ - .gemtest
47
+ - CHANGELOG.txt
48
+ - INSTALL.txt
49
+ - LICENSE.txt
50
+ - Rakefile
51
+ - README.rdoc
52
+ - VERSION
53
+ - lib/sixarm_ruby_ramp.rb
54
+ - lib/sixarm_ruby_ramp/array.rb
55
+ - lib/sixarm_ruby_ramp/class.rb
56
+ - lib/sixarm_ruby_ramp/csv.rb
57
+ - lib/sixarm_ruby_ramp/date.rb
58
+ - lib/sixarm_ruby_ramp/enumerable.rb
59
+ - lib/sixarm_ruby_ramp/file.rb
60
+ - lib/sixarm_ruby_ramp/fixnum.rb
61
+ - lib/sixarm_ruby_ramp/hash.rb
62
+ - lib/sixarm_ruby_ramp/integer.rb
63
+ - lib/sixarm_ruby_ramp/io.rb
64
+ - lib/sixarm_ruby_ramp/kernel.rb
65
+ - lib/sixarm_ruby_ramp/math.rb
66
+ - lib/sixarm_ruby_ramp/nil.rb
67
+ - lib/sixarm_ruby_ramp/numeric.rb
68
+ - lib/sixarm_ruby_ramp/object.rb
69
+ - lib/sixarm_ruby_ramp/process.rb
70
+ - lib/sixarm_ruby_ramp/string.rb
71
+ - lib/sixarm_ruby_ramp/symbol.rb
72
+ - lib/sixarm_ruby_ramp/time.rb
73
+ - lib/sixarm_ruby_ramp/xml.rb
74
+ - lib/sixarm_ruby_ramp/yaml.rb
75
+ - test/sixarm_ruby_ramp_test.rb
76
+ - test/sixarm_ruby_ramp/io_test.txt
77
+ - test/sixarm_ruby_ramp/xml_test_msword_clean.html
78
+ - test/sixarm_ruby_ramp/xml_test_msword_dirty.html
79
+ - test/sixarm_ruby_ramp/xml_test_1.xml
80
+ - test/sixarm_ruby_ramp/xml_test_2.xml
81
+ homepage: http://sixarm.com/
82
+ licenses: []
83
+ post_install_message:
84
+ rdoc_options: []
85
+ require_paths:
86
+ - lib
87
+ required_ruby_version: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ requirements: []
100
+ rubyforge_project:
101
+ rubygems_version: 1.8.12
102
+ signing_key:
103
+ specification_version: 3
104
+ summary: SixArm.com » Ruby » Ramp gem provides base extensions to ruby classes and
105
+ rails classes.
106
+ test_files:
107
+ - test/sixarm_ruby_ramp_test.rb
108
+ - test/sixarm_ruby_ramp/io_test.txt
109
+ - test/sixarm_ruby_ramp/xml_test_msword_clean.html
110
+ - test/sixarm_ruby_ramp/xml_test_msword_dirty.html
111
+ - test/sixarm_ruby_ramp/xml_test_1.xml
112
+ - test/sixarm_ruby_ramp/xml_test_2.xml
113
+ has_rdoc: true
metadata.gz.sig ADDED
Binary file