formattedstring 0.1.0 → 0.1.1

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 (59) hide show
  1. data/README +5 -0
  2. data/Rakefile +1 -1
  3. data/doc/classes/Enumerable.html +146 -0
  4. data/doc/classes/Enumerable.src/M000029.html +21 -0
  5. data/doc/classes/Enumerable.src/M000030.html +34 -0
  6. data/doc/classes/FormattedString.html +119 -0
  7. data/doc/classes/FormattedString/Formats.html +121 -0
  8. data/doc/classes/FormattedString/Formats/Json.html +159 -0
  9. data/doc/classes/FormattedString/Formats/Json.src/M000006.html +18 -0
  10. data/doc/classes/FormattedString/Formats/Json.src/M000007.html +18 -0
  11. data/doc/classes/FormattedString/Formats/Xml.html +159 -0
  12. data/doc/classes/FormattedString/Formats/Xml.src/M000004.html +18 -0
  13. data/doc/classes/FormattedString/Formats/Xml.src/M000005.html +52 -0
  14. data/doc/classes/FormattedString/Formats/Yaml.html +131 -0
  15. data/doc/classes/FormattedString/Formats/Yaml.src/M000008.html +18 -0
  16. data/doc/classes/Inflector.html +516 -0
  17. data/doc/classes/Inflector.src/M000009.html +22 -0
  18. data/doc/classes/Inflector.src/M000010.html +25 -0
  19. data/doc/classes/Inflector.src/M000011.html +25 -0
  20. data/doc/classes/Inflector.src/M000012.html +22 -0
  21. data/doc/classes/Inflector.src/M000013.html +18 -0
  22. data/doc/classes/Inflector.src/M000014.html +22 -0
  23. data/doc/classes/Inflector.src/M000015.html +18 -0
  24. data/doc/classes/Inflector.src/M000016.html +18 -0
  25. data/doc/classes/Inflector.src/M000017.html +18 -0
  26. data/doc/classes/Inflector.src/M000018.html +18 -0
  27. data/doc/classes/Inflector.src/M000019.html +19 -0
  28. data/doc/classes/Inflector.src/M000020.html +18 -0
  29. data/doc/classes/Inflector.src/M000021.html +22 -0
  30. data/doc/classes/Inflector.src/M000022.html +27 -0
  31. data/doc/classes/Inflector/Inflections.html +321 -0
  32. data/doc/classes/Inflector/Inflections.src/M000023.html +18 -0
  33. data/doc/classes/Inflector/Inflections.src/M000024.html +18 -0
  34. data/doc/classes/Inflector/Inflections.src/M000025.html +18 -0
  35. data/doc/classes/Inflector/Inflections.src/M000026.html +26 -0
  36. data/doc/classes/Inflector/Inflections.src/M000027.html +18 -0
  37. data/doc/classes/Inflector/Inflections.src/M000028.html +23 -0
  38. data/doc/classes/String.html +191 -0
  39. data/doc/classes/String.src/M000001.html +18 -0
  40. data/doc/classes/String.src/M000002.html +20 -0
  41. data/doc/classes/String.src/M000003.html +19 -0
  42. data/doc/created.rid +1 -0
  43. data/doc/files/LICENSE.html +129 -0
  44. data/doc/files/README.html +201 -0
  45. data/doc/files/lib/formatted_string/formats/json_rb.html +108 -0
  46. data/doc/files/lib/formatted_string/formats/xml_rb.html +119 -0
  47. data/doc/files/lib/formatted_string/formats/yaml_rb.html +101 -0
  48. data/doc/files/lib/formatted_string_rb.html +108 -0
  49. data/doc/files/lib/inflections_rb.html +101 -0
  50. data/doc/files/lib/inflector_rb.html +108 -0
  51. data/doc/fr_class_index.html +35 -0
  52. data/doc/fr_file_index.html +34 -0
  53. data/doc/fr_method_index.html +56 -0
  54. data/doc/index.html +24 -0
  55. data/doc/rdoc-style.css +208 -0
  56. data/lib/formatted_string/formats/json.rb +20 -0
  57. data/lib/formatted_string/formats/xml.rb +8 -5
  58. data/lib/formatted_string/formats/yaml.rb +9 -0
  59. metadata +72 -2
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
5
+
6
+ <!--
7
+
8
+ FormattedString
9
+
10
+ -->
11
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
12
+ <head>
13
+ <title>FormattedString</title>
14
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
15
+ </head>
16
+ <frameset rows="20%, 80%">
17
+ <frameset cols="25%,35%,45%">
18
+ <frame src="fr_file_index.html" title="Files" name="Files" />
19
+ <frame src="fr_class_index.html" name="Classes" />
20
+ <frame src="fr_method_index.html" name="Methods" />
21
+ </frameset>
22
+ <frame src="files/README.html" name="docwin" />
23
+ </frameset>
24
+ </html>
@@ -0,0 +1,208 @@
1
+
2
+ body {
3
+ font-family: Verdana,Arial,Helvetica,sans-serif;
4
+ font-size: 90%;
5
+ margin: 0;
6
+ margin-left: 40px;
7
+ padding: 0;
8
+ background: white;
9
+ }
10
+
11
+ h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
12
+ h1 { font-size: 150%; }
13
+ h2,h3,h4 { margin-top: 1em; }
14
+
15
+ a { background: #eef; color: #039; text-decoration: none; }
16
+ a:hover { background: #039; color: #eef; }
17
+
18
+ /* Override the base stylesheet's Anchor inside a table cell */
19
+ td > a {
20
+ background: transparent;
21
+ color: #039;
22
+ text-decoration: none;
23
+ }
24
+
25
+ /* and inside a section title */
26
+ .section-title > a {
27
+ background: transparent;
28
+ color: #eee;
29
+ text-decoration: none;
30
+ }
31
+
32
+ /* === Structural elements =================================== */
33
+
34
+ div#index {
35
+ margin: 0;
36
+ margin-left: -40px;
37
+ padding: 0;
38
+ font-size: 90%;
39
+ }
40
+
41
+
42
+ div#index a {
43
+ margin-left: 0.7em;
44
+ }
45
+
46
+ div#index .section-bar {
47
+ margin-left: 0px;
48
+ padding-left: 0.7em;
49
+ background: #ccc;
50
+ font-size: small;
51
+ }
52
+
53
+
54
+ div#classHeader, div#fileHeader {
55
+ width: auto;
56
+ color: white;
57
+ padding: 0.5em 1.5em 0.5em 1.5em;
58
+ margin: 0;
59
+ margin-left: -40px;
60
+ border-bottom: 3px solid #006;
61
+ }
62
+
63
+ div#classHeader a, div#fileHeader a {
64
+ background: inherit;
65
+ color: white;
66
+ }
67
+
68
+ div#classHeader td, div#fileHeader td {
69
+ background: inherit;
70
+ color: white;
71
+ }
72
+
73
+
74
+ div#fileHeader {
75
+ background: #057;
76
+ }
77
+
78
+ div#classHeader {
79
+ background: #048;
80
+ }
81
+
82
+
83
+ .class-name-in-header {
84
+ font-size: 180%;
85
+ font-weight: bold;
86
+ }
87
+
88
+
89
+ div#bodyContent {
90
+ padding: 0 1.5em 0 1.5em;
91
+ }
92
+
93
+ div#description {
94
+ padding: 0.5em 1.5em;
95
+ background: #efefef;
96
+ border: 1px dotted #999;
97
+ }
98
+
99
+ div#description h1,h2,h3,h4,h5,h6 {
100
+ color: #125;;
101
+ background: transparent;
102
+ }
103
+
104
+ div#validator-badges {
105
+ text-align: center;
106
+ }
107
+ div#validator-badges img { border: 0; }
108
+
109
+ div#copyright {
110
+ color: #333;
111
+ background: #efefef;
112
+ font: 0.75em sans-serif;
113
+ margin-top: 5em;
114
+ margin-bottom: 0;
115
+ padding: 0.5em 2em;
116
+ }
117
+
118
+
119
+ /* === Classes =================================== */
120
+
121
+ table.header-table {
122
+ color: white;
123
+ font-size: small;
124
+ }
125
+
126
+ .type-note {
127
+ font-size: small;
128
+ color: #DEDEDE;
129
+ }
130
+
131
+ .xxsection-bar {
132
+ background: #eee;
133
+ color: #333;
134
+ padding: 3px;
135
+ }
136
+
137
+ .section-bar {
138
+ color: #333;
139
+ border-bottom: 1px solid #999;
140
+ margin-left: -20px;
141
+ }
142
+
143
+
144
+ .section-title {
145
+ background: #79a;
146
+ color: #eee;
147
+ padding: 3px;
148
+ margin-top: 2em;
149
+ margin-left: -30px;
150
+ border: 1px solid #999;
151
+ }
152
+
153
+ .top-aligned-row { vertical-align: top }
154
+ .bottom-aligned-row { vertical-align: bottom }
155
+
156
+ /* --- Context section classes ----------------------- */
157
+
158
+ .context-row { }
159
+ .context-item-name { font-family: monospace; font-weight: bold; color: black; }
160
+ .context-item-value { font-size: small; color: #448; }
161
+ .context-item-desc { color: #333; padding-left: 2em; }
162
+
163
+ /* --- Method classes -------------------------- */
164
+ .method-detail {
165
+ background: #efefef;
166
+ padding: 0;
167
+ margin-top: 0.5em;
168
+ margin-bottom: 1em;
169
+ border: 1px dotted #ccc;
170
+ }
171
+ .method-heading {
172
+ color: black;
173
+ background: #ccc;
174
+ border-bottom: 1px solid #666;
175
+ padding: 0.2em 0.5em 0 0.5em;
176
+ }
177
+ .method-signature { color: black; background: inherit; }
178
+ .method-name { font-weight: bold; }
179
+ .method-args { font-style: italic; }
180
+ .method-description { padding: 0 0.5em 0 0.5em; }
181
+
182
+ /* --- Source code sections -------------------- */
183
+
184
+ a.source-toggle { font-size: 90%; }
185
+ div.method-source-code {
186
+ background: #262626;
187
+ color: #ffdead;
188
+ margin: 1em;
189
+ padding: 0.5em;
190
+ border: 1px dashed #999;
191
+ overflow: hidden;
192
+ }
193
+
194
+ div.method-source-code pre { color: #ffdead; overflow: hidden; }
195
+
196
+ /* --- Ruby keyword styles --------------------- */
197
+
198
+ .standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
199
+
200
+ .ruby-constant { color: #7fffd4; background: transparent; }
201
+ .ruby-keyword { color: #00ffff; background: transparent; }
202
+ .ruby-ivar { color: #eedd82; background: transparent; }
203
+ .ruby-operator { color: #00ffee; background: transparent; }
204
+ .ruby-identifier { color: #ffdead; background: transparent; }
205
+ .ruby-node { color: #ffa07a; background: transparent; }
206
+ .ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
207
+ .ruby-regexp { color: #ffa07a; background: transparent; }
208
+ .ruby-value { color: #7fffd4; background: transparent; }
@@ -0,0 +1,20 @@
1
+ require 'json'
2
+
3
+ module FormattedString
4
+ module Formats
5
+ module Json
6
+ JSON_OPTIONS = {
7
+ :include_key => true, # Can be true or false
8
+ :key_name => 'id', # Default key name
9
+ }
10
+
11
+ def ===(other)
12
+ to_hash == other.to_hash
13
+ end
14
+
15
+ def to_hash(options={})
16
+ JSON.parse(self)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -152,13 +152,16 @@ module FormattedString
152
152
  stack.last.add_node(event[1]) unless event[1].strip.length == 0
153
153
  end
154
154
  end
155
- data = stack.pop.to_hash
155
+ data = stack.pop
156
+ data = data.to_hash if data.respond_to?(:to_hash)
156
157
 
157
158
  # Turn any {} || {"nil" => "true"} into just nil
158
- if options[:report_nil]
159
- data.crawl {|h,k,v| h[k] = nil if v == {} || v == {'nil' => 'true'}; v}
160
- else
161
- data.crawl {|h,k,v| h[k] = nil if v == {}; v}
159
+ if data.respond_to?(:crawl) # basically, is it a hash or nil?
160
+ if options[:report_nil]
161
+ data.crawl {|h,k,v| h[k] = nil if v == {} || v == {'nil' => 'true'}; v}
162
+ else
163
+ data.crawl {|h,k,v| h[k] = nil if v == {}; v}
164
+ end
162
165
  end
163
166
  data
164
167
  end
@@ -0,0 +1,9 @@
1
+ module FormattedString
2
+ module Formats
3
+ module Yaml
4
+ def save(filename)
5
+ File.open(filename, 'w') {|out| out << self}
6
+ end
7
+ end
8
+ end
9
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formattedstring
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Parker
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-04-15 00:00:00 -04:00
12
+ date: 2008-05-09 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -25,13 +25,83 @@ extra_rdoc_files:
25
25
  files:
26
26
  - lib/formatted_string
27
27
  - lib/formatted_string/formats
28
+ - lib/formatted_string/formats/json.rb
28
29
  - lib/formatted_string/formats/xml.rb
30
+ - lib/formatted_string/formats/yaml.rb
29
31
  - lib/formatted_string.rb
30
32
  - lib/inflections.rb
31
33
  - lib/inflector.rb
32
34
  - LICENSE
33
35
  - Rakefile
34
36
  - README
37
+ - doc/classes
38
+ - doc/classes/Enumerable.html
39
+ - doc/classes/Enumerable.src
40
+ - doc/classes/Enumerable.src/M000029.html
41
+ - doc/classes/Enumerable.src/M000030.html
42
+ - doc/classes/FormattedString
43
+ - doc/classes/FormattedString/Formats
44
+ - doc/classes/FormattedString/Formats/Json.html
45
+ - doc/classes/FormattedString/Formats/Json.src
46
+ - doc/classes/FormattedString/Formats/Json.src/M000006.html
47
+ - doc/classes/FormattedString/Formats/Json.src/M000007.html
48
+ - doc/classes/FormattedString/Formats/Xml.html
49
+ - doc/classes/FormattedString/Formats/Xml.src
50
+ - doc/classes/FormattedString/Formats/Xml.src/M000004.html
51
+ - doc/classes/FormattedString/Formats/Xml.src/M000005.html
52
+ - doc/classes/FormattedString/Formats/Yaml.html
53
+ - doc/classes/FormattedString/Formats/Yaml.src
54
+ - doc/classes/FormattedString/Formats/Yaml.src/M000008.html
55
+ - doc/classes/FormattedString/Formats.html
56
+ - doc/classes/FormattedString.html
57
+ - doc/classes/Inflector
58
+ - doc/classes/Inflector/Inflections.html
59
+ - doc/classes/Inflector/Inflections.src
60
+ - doc/classes/Inflector/Inflections.src/M000023.html
61
+ - doc/classes/Inflector/Inflections.src/M000024.html
62
+ - doc/classes/Inflector/Inflections.src/M000025.html
63
+ - doc/classes/Inflector/Inflections.src/M000026.html
64
+ - doc/classes/Inflector/Inflections.src/M000027.html
65
+ - doc/classes/Inflector/Inflections.src/M000028.html
66
+ - doc/classes/Inflector.html
67
+ - doc/classes/Inflector.src
68
+ - doc/classes/Inflector.src/M000009.html
69
+ - doc/classes/Inflector.src/M000010.html
70
+ - doc/classes/Inflector.src/M000011.html
71
+ - doc/classes/Inflector.src/M000012.html
72
+ - doc/classes/Inflector.src/M000013.html
73
+ - doc/classes/Inflector.src/M000014.html
74
+ - doc/classes/Inflector.src/M000015.html
75
+ - doc/classes/Inflector.src/M000016.html
76
+ - doc/classes/Inflector.src/M000017.html
77
+ - doc/classes/Inflector.src/M000018.html
78
+ - doc/classes/Inflector.src/M000019.html
79
+ - doc/classes/Inflector.src/M000020.html
80
+ - doc/classes/Inflector.src/M000021.html
81
+ - doc/classes/Inflector.src/M000022.html
82
+ - doc/classes/String.html
83
+ - doc/classes/String.src
84
+ - doc/classes/String.src/M000001.html
85
+ - doc/classes/String.src/M000002.html
86
+ - doc/classes/String.src/M000003.html
87
+ - doc/created.rid
88
+ - doc/files
89
+ - doc/files/lib
90
+ - doc/files/lib/formatted_string
91
+ - doc/files/lib/formatted_string/formats
92
+ - doc/files/lib/formatted_string/formats/json_rb.html
93
+ - doc/files/lib/formatted_string/formats/xml_rb.html
94
+ - doc/files/lib/formatted_string/formats/yaml_rb.html
95
+ - doc/files/lib/formatted_string_rb.html
96
+ - doc/files/lib/inflections_rb.html
97
+ - doc/files/lib/inflector_rb.html
98
+ - doc/files/LICENSE.html
99
+ - doc/files/README.html
100
+ - doc/fr_class_index.html
101
+ - doc/fr_file_index.html
102
+ - doc/fr_method_index.html
103
+ - doc/index.html
104
+ - doc/rdoc-style.css
35
105
  has_rdoc: true
36
106
  homepage: http://formattedstring.rubyforge.org
37
107
  post_install_message: