logansama-flexible_object 0.1.0

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 (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
+