RProperties 0.0.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.
data/README ADDED
@@ -0,0 +1,9 @@
1
+ ===============================================================================
2
+ == RProperties v 0.0.1
3
+ == A implementation of Java Properties
4
+ ===============================================================================
5
+ This is a implementation of Java Properties.
6
+ With this app you can read a propertie's file and make a indice for use in
7
+ you aplication.
8
+ For more informations , please , take a look at http://rproperties.rubyforge.org (under construction!)
9
+ Tiago Nogueira [tjnogueira@oomaster.com]
data/doc/created.rid ADDED
@@ -0,0 +1 @@
1
+ Mon, 02 Feb 2009 14:50:09 -0200
@@ -0,0 +1,27 @@
1
+
2
+ <?xml version="1.0" encoding="iso-8859-1"?>
3
+ <!DOCTYPE html
4
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
5
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6
+
7
+ <!--
8
+
9
+ Classes
10
+
11
+ -->
12
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
13
+ <head>
14
+ <title>Classes</title>
15
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
16
+ <link rel="stylesheet" href="rdoc-style.css" type="text/css" />
17
+ <base target="docwin" />
18
+ </head>
19
+ <body>
20
+ <div id="index">
21
+ <h1 class="section-bar">Classes</h1>
22
+ <div id="index-entries">
23
+ <a href="classes/RProperties.html">RProperties</a><br />
24
+ </div>
25
+ </div>
26
+ </body>
27
+ </html>
@@ -0,0 +1,27 @@
1
+
2
+ <?xml version="1.0" encoding="iso-8859-1"?>
3
+ <!DOCTYPE html
4
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
5
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6
+
7
+ <!--
8
+
9
+ Files
10
+
11
+ -->
12
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
13
+ <head>
14
+ <title>Files</title>
15
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
16
+ <link rel="stylesheet" href="rdoc-style.css" type="text/css" />
17
+ <base target="docwin" />
18
+ </head>
19
+ <body>
20
+ <div id="index">
21
+ <h1 class="section-bar">Files</h1>
22
+ <div id="index-entries">
23
+ <a href="files/lib/r_properties_rb.html">lib/r_properties.rb</a><br />
24
+ </div>
25
+ </div>
26
+ </body>
27
+ </html>
@@ -0,0 +1,32 @@
1
+
2
+ <?xml version="1.0" encoding="iso-8859-1"?>
3
+ <!DOCTYPE html
4
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
5
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6
+
7
+ <!--
8
+
9
+ Methods
10
+
11
+ -->
12
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
13
+ <head>
14
+ <title>Methods</title>
15
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
16
+ <link rel="stylesheet" href="rdoc-style.css" type="text/css" />
17
+ <base target="docwin" />
18
+ </head>
19
+ <body>
20
+ <div id="index">
21
+ <h1 class="section-bar">Methods</h1>
22
+ <div id="index-entries">
23
+ <a href="classes/RProperties.html#M000006">change_file (RProperties)</a><br />
24
+ <a href="classes/RProperties.html#M000004">get_p (RProperties)</a><br />
25
+ <a href="classes/RProperties.html#M000002">load_p (RProperties)</a><br />
26
+ <a href="classes/RProperties.html#M000001">new (RProperties)</a><br />
27
+ <a href="classes/RProperties.html#M000005">put_p (RProperties)</a><br />
28
+ <a href="classes/RProperties.html#M000003">save_p (RProperties)</a><br />
29
+ </div>
30
+ </div>
31
+ </body>
32
+ </html>
data/doc/index.html ADDED
@@ -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
+ RDoc Documentation
9
+
10
+ -->
11
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
12
+ <head>
13
+ <title>RDoc Documentation</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/lib/r_properties_rb.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,62 @@
1
+ require 'utility'
2
+
3
+ # This class contains the core of the RProperties
4
+ # Author Tiago Nogueira (tjnogueira@oomaster.com)
5
+ class RProperties
6
+
7
+ @properties = nil;
8
+
9
+ # The file parameter refers to the .properties you want to use
10
+ # to load or create.
11
+ # Ex: RProperties.new('c:\my_property.properties')
12
+ def initialize(file)
13
+ Utility::FileUtils.filename_is_valid?(file);
14
+ @file = file;
15
+ @properties = Hash.new;
16
+ end
17
+
18
+ # This method loads the .properties file and put the
19
+ # property - value into a Hash.After this method call
20
+ # you can use the get_p method to get the value of a property
21
+ def load_p
22
+ Utility::FileUtils.file_exists?(@file);
23
+ splited = nil;
24
+ f = File.new(@file,"r");
25
+ lines = f.readlines();
26
+ lines.each do |ln|
27
+ splited = ln.split('=')
28
+ @properties[splited[0]] = splited[1].to_s;
29
+ end
30
+ end
31
+
32
+ # This method puts properties on file to be used later or
33
+ # when you need
34
+ def save_p
35
+ file = File.new(@file,'a+');
36
+ @properties.each do |property,value|
37
+ file.puts(property+"="+value);
38
+ end
39
+ end
40
+
41
+ #This method return the value of a property.
42
+ # Ex.: get_p('title') => will returns "My Site Title" , for example
43
+ def get_p(property)
44
+ @properties[property];
45
+ end
46
+
47
+ # This method put a property-value in to the Hash
48
+ def put_p(property,value)
49
+ @properties[property] = value;
50
+ end
51
+
52
+ # This method change the propertie file name
53
+ def change_file(new_file)
54
+ Utility::FileUtils.filename_is_valid?(new_file);
55
+ @file = new_file;
56
+ end
57
+
58
+
59
+ end
60
+
61
+
62
+
data/lib/utility.rb ADDED
@@ -0,0 +1,20 @@
1
+ module Utility
2
+
3
+ # Some util to use on RProperties
4
+ class FileUtils
5
+
6
+ # Check if a filename is nil or dont have a name. If not, raise ArgumentError
7
+ def FileUtils.filename_is_valid?(file)
8
+ begin
9
+ raise ArgumentError, "OPS! Invalid file name!" unless (file != nil and file != '')
10
+ end
11
+ end
12
+
13
+ # Check if a file exists. If not, raise ENOENT
14
+ def FileUtils.file_exists?(file)
15
+ raise Errno::ENOENT , "OPS! File not found!" unless FileTest.exists?(file)
16
+ end
17
+
18
+ end
19
+
20
+ end
@@ -0,0 +1,37 @@
1
+ # This class make some tests on RProperties
2
+ # Tiago Nogueira (tjnogueira@oomaster.com)
3
+
4
+ require 'test/unit'
5
+ require 'r_properties'
6
+
7
+ class TestRProperties < Test::Unit::TestCase
8
+
9
+ def setup
10
+ @filename = "fileteste.properties";
11
+ puts "Creating a instance of RProperties...";
12
+ @rp = RProperties.new(@filename);
13
+ end
14
+
15
+ def test_file_not_found
16
+ puts "Testing inexistent file";
17
+ assert_raise Errno::ENOENT do
18
+ @rp.load_p;
19
+ end
20
+ end
21
+
22
+ def test_file_without_name
23
+ puts "Testing new instance without valid file name";
24
+ assert_raise ArgumentError do
25
+ RProperties.new(nil);
26
+ end
27
+ end
28
+
29
+ def test_filename_change_without_validname
30
+ puts "Testing filename change without validname";
31
+ assert_raise ArgumentError do
32
+ @rp.change_file(nil);
33
+ end
34
+ end
35
+
36
+
37
+ end
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: RProperties
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Tiago Nogueira
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-02-02 00:00:00 -02:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description:
17
+ email: tjnogueira@oomaster.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
24
+ files:
25
+ - lib/r_properties.rb
26
+ - lib/utility.rb
27
+ - test/test_r_properties.rb
28
+ - doc/classes
29
+ - doc/created.rid
30
+ - doc/files
31
+ - doc/fr_class_index.html
32
+ - doc/fr_file_index.html
33
+ - doc/fr_method_index.html
34
+ - doc/index.html
35
+ - doc/rdoc-style.css
36
+ - README
37
+ has_rdoc: true
38
+ homepage: rproperties.rubyforge.org
39
+ post_install_message:
40
+ rdoc_options: []
41
+
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: "0"
49
+ version:
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: "0"
55
+ version:
56
+ requirements: []
57
+
58
+ rubyforge_project: rproperties
59
+ rubygems_version: 1.3.1
60
+ signing_key:
61
+ specification_version: 2
62
+ summary: A similar Java Properties API .
63
+ test_files: []
64
+