logansama-flexible_object 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. data/CHANGES +3 -0
  2. data/LICENSE +34 -0
  3. data/README +34 -0
  4. data/Rakefile +58 -0
  5. data/TODO +7 -0
  6. metadata +60 -0
data/CHANGES ADDED
@@ -0,0 +1,3 @@
1
+ = CHANGES
2
+
3
+ ==== 0.1.0 "First release" ~ February 25th, 2009
data/LICENSE ADDED
@@ -0,0 +1,34 @@
1
+ == CREATIVE COMMONS GPL.
2
+
3
+ GNU General Public License, Free Software Foundation
4
+
5
+ The GNU General Public License is a Free Software license. Like any Free
6
+ Software license, it grants to you the four following freedoms:
7
+
8
+ 1. The freedom to run the program for any purpose.
9
+ 2. The freedom to study how the program works and adapt it to your needs.
10
+ 3. The freedom to redistribute copies so you can help your neighbor.
11
+ 4. The freedom to improve the program and release your improvements to the
12
+ public, so that the whole community benefits.
13
+
14
+ You may exercise the freedoms specified here provided that you comply with the
15
+ express conditions of this license. The principal conditions are:
16
+
17
+ - You must conspicuously and appropriately publish on each copy distributed an
18
+ appropriate copyright notice and disclaimer of warranty and keep intact all
19
+ the notices that refer to this License and to the absence of any warranty;
20
+ and give any other recipients of the Program a copy of the GNU General Public
21
+ License along with the Program. Any translation of the GNU General Public
22
+ License must be accompanied by the GNU General Public License.
23
+ - If you modify your copy or copies of the program or any portion of it, or
24
+ develop a program based upon it, you may distribute the resulting work
25
+ provided you do so under the GNU General Public License. Any translation of
26
+ the GNU General Public License must be accompanied by the GNU General Public
27
+ License.
28
+ - If you copy or distribute the program, you must accompany it with the complete
29
+ corresponding machine-readable source code or with a written offer, valid for
30
+ at least three years, to furnish the complete corresponding machine-readable
31
+ source code.
32
+
33
+ Any of the above conditions can be waived if you get permission from the
34
+ copyright holder.
data/README ADDED
@@ -0,0 +1,34 @@
1
+ == OPEN OBJECT
2
+
3
+ The Open Object data type is a pure Ruby re-implementation of the Open Struct
4
+ data type which allows the recursive definition of attributes.
5
+
6
+ === Purpose.
7
+
8
+ The sole purpose of this data type is to create a data type capable of handling
9
+ the creation and actualization of hierarchical data structures defined by using
10
+ nested Hashes instances.
11
+
12
+ === Concept.
13
+
14
+ The Open Object data type, by being capable of create and update the values of
15
+ hierarchical attributes, is conceived as a perfect unit for in-memory data
16
+ storage.
17
+
18
+ This data type adapts dynamically to a given data object hierarchy defined by
19
+ nested Hashes in order to allow access to its attributes and their respective
20
+ dependent attributes easily.
21
+
22
+ === Features.
23
+
24
+ The current version of this data type implements these features:
25
+ - Recursive initialization of its attributes.
26
+ - Direct read/write access to the dynamically created attributes.
27
+ - Data conversion to built-in Hash instances.
28
+
29
+ === Limitations.
30
+
31
+ The limitations are the following:
32
+ - An instance of this data type cannot store Hash instances natively because
33
+ every instance of this built-in class will be converted into an OpenObject
34
+ instance due to implementation reasons.
data/Rakefile ADDED
@@ -0,0 +1,58 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rake/clean'
4
+ require 'rake/gempackagetask'
5
+ require 'rake/rdoctask'
6
+ require 'spec/rake/spectask'
7
+
8
+ desc 'GemSpec definition.'
9
+ spec = Gem::Specification.new do |specification|
10
+ specification.name = 'flexible_object'
11
+ specification.rubyforge_project = 'flexible_object'
12
+ specification.version = '0.1.0'
13
+ specification.date = '2009-02-25'
14
+ specification.author = 'Julio Javier Cicchelli'
15
+ specification.email = 'javier@rock-n-code.com'
16
+ specification.homepage = 'http://rock-n-code.com'
17
+ specification.summary = 'Flexible Object data type for Ruby'
18
+ specification.description = <<-TEXT
19
+ A pure Ruby and extremely flexible re-implementation of the OpenStruct class
20
+ that allows a recursive definition of attributes.
21
+ TEXT
22
+ specification.files = %w(LICENSE README CHANGES TODO Rakefile) + \
23
+ Dir.glob("{bin,lib,spec}/**/*")
24
+ specification.require_path = "lib"
25
+ specification.has_rdoc = true
26
+ specification.extra_rdoc_files = ['README', 'LICENSE', 'CHANGES', 'TODO']
27
+ end
28
+
29
+ desc 'Package building.'
30
+ Rake::GemPackageTask.new(spec) do |package|
31
+ package.gem_spec = spec
32
+ package.need_tar = false
33
+ package.need_zip = false
34
+ end
35
+
36
+ desc 'Documentation generation.'
37
+ Rake::RDocTask.new do |rdoc|
38
+ files =['README', 'LICENSE', 'CHANGES', 'TODO', 'lib/**/*.rb']
39
+ rdoc.rdoc_files.add(files)
40
+ rdoc.main = "README"
41
+ rdoc.title = "Flexible Object Documentation"
42
+ rdoc.rdoc_dir = 'doc/rdoc'
43
+ rdoc.options << '--line-numbers' << '--inline-source'
44
+ end
45
+
46
+ desc 'Unit testing with RSpec.'
47
+ Spec::Rake::SpecTask.new do |rspec|
48
+ rspec.spec_files = FileList['spec/**/*.rb']
49
+ end
50
+
51
+ desc 'Cleaning the generated packaging and documentation files.'
52
+ CLEAN.include ["**/.*.sw?", "pkg", "lib/*.bundle", "lib/*.so", "*.gem", "doc",
53
+ ".config", "coverage", "cache", "spec/**/*.log", ".DS_Store"]
54
+
55
+ desc 'Building and installing as a local gem.'
56
+ task :install => [:clean, :package] do
57
+ sh "gem install pkg/#{spec.name}-#{spec.version}.gem"
58
+ end
data/TODO ADDED
@@ -0,0 +1,7 @@
1
+ == TODO
2
+
3
+ The following tasks should be done as soon as possible:
4
+ - Rearrange the :missing_method method.
5
+ - Fix bugs produced when reading and writing from/to a non-existing hierarchy.
6
+ - Finish writing RSpec unit tests.
7
+ - Overall optimization and refactoring wherever possible.
metadata ADDED
@@ -0,0 +1,60 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: logansama-flexible_object
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Julio Javier Cicchelli
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-02-25 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: A pure Ruby and extremely flexible re-implementation of the OpenStruct class that allows a recursive definition of attributes.
17
+ email: javier@rock-n-code.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
24
+ - LICENSE
25
+ - CHANGES
26
+ - TODO
27
+ files:
28
+ - LICENSE
29
+ - README
30
+ - CHANGES
31
+ - TODO
32
+ - Rakefile
33
+ has_rdoc: true
34
+ homepage: http://rock-n-code.com
35
+ post_install_message:
36
+ rdoc_options: []
37
+
38
+ require_paths:
39
+ - lib
40
+ required_ruby_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
45
+ version:
46
+ required_rubygems_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: "0"
51
+ version:
52
+ requirements: []
53
+
54
+ rubyforge_project: flexible_object
55
+ rubygems_version: 1.2.0
56
+ signing_key:
57
+ specification_version: 2
58
+ summary: Flexible Object data type for Ruby
59
+ test_files: []
60
+