jsondb 0.0.2 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsondb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antonio Fernandez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-25 00:00:00.000000000 Z
11
+ date: 2014-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json_pure
@@ -31,13 +31,21 @@ extensions: []
31
31
  extra_rdoc_files: []
32
32
  files:
33
33
  - lib/jsondb.rb
34
+ - lib/jsondb/base.rb
35
+ - lib/jsondb/commands.rb
36
+ - lib/jsondb/constants.rb
34
37
  - lib/jsondb/db.rb
35
38
  - lib/jsondb/field.rb
39
+ - lib/jsondb/fields.rb
36
40
  - lib/jsondb/file_ops.rb
41
+ - lib/jsondb/logger.rb
37
42
  - lib/jsondb/record.rb
38
- - lib/jsondb/resultset.rb
43
+ - lib/jsondb/records.rb
44
+ - lib/jsondb/result_set.rb
45
+ - lib/jsondb/settings.rb
39
46
  - lib/jsondb/table.rb
40
- - lib/jsondb/validation.rb
47
+ - lib/jsondb/tables.rb
48
+ - lib/jsondb/validations.rb
41
49
  homepage: http://fernandezvara.github.io/jsondb/
42
50
  licenses:
43
51
  - MIT
@@ -1,109 +0,0 @@
1
- module JSONdb
2
- class ResultSet
3
-
4
- include Validation
5
-
6
- def initialize(table_class, array_fields = nil)
7
- @fields = array_fields || table_class.fields.to_hash.keys
8
- # actually it deletes the record!
9
- @result = Hash.new()
10
- table_class.records.each do |k, v|
11
- @result[k] = v.dup
12
- end
13
-
14
- @equal = Hash.new
15
- @min = Hash.new
16
- @max = Hash.new
17
- @like = Hash.new
18
- end
19
-
20
- def equal(field, value)
21
- @equal[field] = value
22
- return self
23
- end
24
-
25
- def min(field, value)
26
- @min[field] = value
27
- return self
28
- end
29
-
30
- def max(field, value)
31
- @max[field] = value
32
- return self
33
- end
34
-
35
- def like(field, value)
36
- @like[field] = value
37
- return self
38
- end
39
-
40
- def result
41
- result_equal if @equal.keys.count != 0
42
- result_min if @min.keys.count != 0
43
- result_max if @max.keys.count != 0
44
- result_like if @like.keys.count != 0
45
- return @result
46
- end
47
-
48
- private
49
-
50
- def result_equal
51
- @equal.each do |col_name, col_value|
52
- this_result = Array.new
53
- @result.each do |id, record|
54
- r = record.send col_name.to_sym
55
- if r == col_value
56
- this_result << id
57
- end
58
- end
59
- remove_if_key_not_in(this_result)
60
- end
61
- end
62
-
63
- def result_min
64
- @min.each do |col_name, col_value|
65
- this_result = Array.new
66
- @result.each do |id, record|
67
- r = record.send col_name.to_sym
68
- if r >= col_value
69
- this_result << id
70
- end
71
- end
72
- remove_if_key_not_in(this_result)
73
- end
74
- end
75
-
76
- def result_max
77
- @max.each do |col_name, col_value|
78
- this_result = Array.new
79
- @result.each do |id, record|
80
- r = record.send col_name.to_sym
81
- if r <= col_value
82
- this_result << id
83
- end
84
- end
85
- remove_if_key_not_in(this_result)
86
- end
87
- end
88
-
89
- def result_like
90
- @like.each do |col_name, col_value|
91
- this_result = Array.new
92
- @result.each do |id, record|
93
- r = record.send col_name.to_sym
94
- if r =~ Regexp.new(col_value)
95
- this_result << id
96
- end
97
- end
98
- remove_if_key_not_in(this_result)
99
- end
100
- end
101
-
102
- def remove_if_key_not_in(arr)
103
- @result.keys.each do |key|
104
- @result.delete(key) if arr.include?(key) == false
105
- end
106
- end
107
-
108
- end
109
- end
@@ -1,88 +0,0 @@
1
- module JSONdb
2
- module Validation
3
-
4
- def allowed_types
5
- ["String", "Fixnum", "Integer", "Float", "Time", "Bool"]
6
- end
7
-
8
- def allowed_name?(name)
9
- if (name =~ /^[a-zA-Z0-9_]+$/).nil?
10
- raise "Name not allowed. /^[a-zA-Z0-9_]+$/"
11
- else
12
- return true
13
- end
14
- end
15
-
16
- def allowed?(type)
17
- if allowed_types.include?(type.to_s)
18
- return type.to_s
19
- else
20
- raise "Validation: Type '#{type.to_s}' not allowed"
21
- end
22
- end
23
-
24
- def validate_type(_class, _value)
25
- case _class
26
- when "Bool"
27
- bool?(_class, _value)
28
- when "String"
29
- string?(_class, _value)
30
- when "Fixnum", "Integer", "Float"
31
- numeric?(_class, _value)
32
- when "Time"
33
- time?(_class, _value)
34
- else
35
- raise "Validation: '#{_class}' type not allowed"
36
- end
37
- end
38
-
39
- private
40
-
41
- def bool?(_class, _value)
42
- case _value
43
- when true, false
44
- return _value
45
- else
46
- raise "Validation: Bool: Not a Bool type"
47
- end
48
- end
49
-
50
- def string?(_class, _value)
51
- if _class == _value.class.to_s
52
- return _value
53
- else
54
- raise "Validation: #{_class}: Value '#{_value}' not allowed for '#{_class}' type"
55
- end
56
- end
57
-
58
- def numeric?(_class, _value)
59
- case _class
60
- when "Fixnum", "Integer"
61
- if _value.class.to_s == "Fixnum"
62
- return _value
63
- else
64
- raise "Validation: '#{_value}' is not Integer"
65
- end
66
- when "Float"
67
- case eval(_value).class.to_s
68
- when "Float"
69
- return _value
70
- when "Fixnum"
71
- return _value.to_f
72
- else
73
- raise "Validation: '#{_value} is not a Float type"
74
- end
75
- else
76
- raise "Validation: '#{_value} is not a Numeric type"
77
- end
78
- end
79
-
80
- def time?(_class, _value)
81
- if eval(_value).class.to_s != "Time"
82
- raise "Validation: '#{_value} is not a Time type"
83
- end
84
- end
85
-
86
- end
87
-
88
- end