hashmodel 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.
- data/.document +5 -0
- data/.rspec +1 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +41 -0
- data/LICENSE.txt +20 -0
- data/README.markdown +44 -0
- data/Rakefile +49 -0
- data/autotest/discover.rb +3 -0
- data/features/README +9 -0
- data/features/hash_model_flatten.feature +34 -0
- data/features/hash_model_grouping.feature +18 -0
- data/features/hash_model_search.feature +34 -0
- data/features/step_definitions/hash_model_steps.rb +60 -0
- data/features/support/env.rb +14 -0
- data/features/support/helper.rb +18 -0
- data/lib/hash_model.rb +4 -0
- data/lib/hash_model/exceptions.rb +5 -0
- data/lib/hash_model/hash_model.rb +411 -0
- data/lib/hash_model/version.rb +14 -0
- data/spec/hash_model/hash_model_spec.rb +774 -0
- data/spec/spec_helper.rb +23 -0
- metadata +160 -0
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
$: << '.'
|
2
|
+
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), "/../lib"))
|
3
|
+
require 'hash_model'
|
4
|
+
require 'rspec'
|
5
|
+
require 'rspec/matchers'
|
6
|
+
|
7
|
+
# Make a new class with the given name and create instance variables set using key,value pairs.
|
8
|
+
# e.g. new_class = create_class "Dummy", {:x=>"x", :y=>String, :z=>["1",2,:three]}
|
9
|
+
def create_proc_tester(property_value_hash)
|
10
|
+
proc_test = Class.new.new
|
11
|
+
|
12
|
+
# Add an evaluator method to make it more clear what we are doing
|
13
|
+
proc_test.class.class_eval do
|
14
|
+
define_method(:xql?) { |&block| instance_eval &block }
|
15
|
+
end
|
16
|
+
|
17
|
+
# Add the property values to this instance of the class
|
18
|
+
property_value_hash.each do |key, value|
|
19
|
+
proc_test.instance_variable_set("@#{key}", value)
|
20
|
+
end
|
21
|
+
|
22
|
+
proc_test
|
23
|
+
end
|
metadata
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hashmodel
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 1
|
9
|
+
version: 0.1.1
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Mike Bethany
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-12-15 00:00:00 -05:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rspec
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 2
|
29
|
+
- 2
|
30
|
+
- 0
|
31
|
+
version: 2.2.0
|
32
|
+
type: :development
|
33
|
+
prerelease: false
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: cucumber
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
segments:
|
43
|
+
- 0
|
44
|
+
- 10
|
45
|
+
- 0
|
46
|
+
version: 0.10.0
|
47
|
+
type: :development
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: bundler
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
segments:
|
58
|
+
- 1
|
59
|
+
- 0
|
60
|
+
- 0
|
61
|
+
version: 1.0.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: jeweler
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
segments:
|
73
|
+
- 1
|
74
|
+
- 5
|
75
|
+
- 0
|
76
|
+
- pre5
|
77
|
+
version: 1.5.0.pre5
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: *id004
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: rcov
|
83
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
segments:
|
89
|
+
- 0
|
90
|
+
version: "0"
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: *id005
|
94
|
+
description: A simple MVC type model class for storing records as an array of hashes. You can store deeply nested hashes and still easily flatten and querying the records using flattened field names.
|
95
|
+
email: mikbe.tk@gmail.com
|
96
|
+
executables: []
|
97
|
+
|
98
|
+
extensions: []
|
99
|
+
|
100
|
+
extra_rdoc_files:
|
101
|
+
- LICENSE.txt
|
102
|
+
- README.markdown
|
103
|
+
files:
|
104
|
+
- .document
|
105
|
+
- .rspec
|
106
|
+
- Gemfile
|
107
|
+
- Gemfile.lock
|
108
|
+
- LICENSE.txt
|
109
|
+
- README.markdown
|
110
|
+
- Rakefile
|
111
|
+
- autotest/discover.rb
|
112
|
+
- features/README
|
113
|
+
- features/hash_model_flatten.feature
|
114
|
+
- features/hash_model_grouping.feature
|
115
|
+
- features/hash_model_search.feature
|
116
|
+
- features/step_definitions/hash_model_steps.rb
|
117
|
+
- features/support/env.rb
|
118
|
+
- features/support/helper.rb
|
119
|
+
- lib/hash_model.rb
|
120
|
+
- lib/hash_model/exceptions.rb
|
121
|
+
- lib/hash_model/hash_model.rb
|
122
|
+
- lib/hash_model/version.rb
|
123
|
+
- spec/hash_model/hash_model_spec.rb
|
124
|
+
- spec/spec_helper.rb
|
125
|
+
has_rdoc: true
|
126
|
+
homepage: http://github.com/mikbe/hashmodel
|
127
|
+
licenses: []
|
128
|
+
|
129
|
+
post_install_message:
|
130
|
+
rdoc_options: []
|
131
|
+
|
132
|
+
require_paths:
|
133
|
+
- lib
|
134
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
hash: 209517049231045196
|
140
|
+
segments:
|
141
|
+
- 0
|
142
|
+
version: "0"
|
143
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
+
none: false
|
145
|
+
requirements:
|
146
|
+
- - ">="
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
segments:
|
149
|
+
- 0
|
150
|
+
version: "0"
|
151
|
+
requirements: []
|
152
|
+
|
153
|
+
rubyforge_project:
|
154
|
+
rubygems_version: 1.3.7
|
155
|
+
signing_key:
|
156
|
+
specification_version: 3
|
157
|
+
summary: Store small amounts of dynamic data and easily search fields (even nested ones)
|
158
|
+
test_files:
|
159
|
+
- spec/hash_model/hash_model_spec.rb
|
160
|
+
- spec/spec_helper.rb
|