tadb 0.3.3 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b66a61ae71c4ead7f13f98164a6c62a6754aa9f6
4
- data.tar.gz: 06252de8264bd6c5e8e88db961a1a3e55d1184ee
2
+ SHA256:
3
+ metadata.gz: 9e9fba973db24cc4d6433bf39ece8446d9f16fa6441ba2aae764a6e8378251a8
4
+ data.tar.gz: a5cb4b7f8bf822c2bb90455d1d219e9868d7dab34984f101759ac1513c051f62
5
5
  SHA512:
6
- metadata.gz: 754cc4a6d1d4d746ed50dd58f76526932bc0670967794612528e007ba9b9459a81ee95b577fa4198892baefd862bb7a4ca4f1e326523b6b9da3febb01f163c41
7
- data.tar.gz: 305fa85f6d78894cd23cff585f2f260e9f0e8b30b54b9e5e29ece84c356077cd30e391c670eb47ff6d024a627ffec5a98965b6103ef31c403174fb74fff32990
6
+ metadata.gz: 330c1ce24169af523569952582153403abe9d5cde223d9ef67df41b7ce64da2de66e03da6507066e8016814d43084e546c4b6ef750907cac076ba72d741508d9
7
+ data.tar.gz: c0d36527aab8faea737fa83af5024664d44eb6ff0d755634cc2e00941e08f95389c3231bf3da26fd2efbf55d6c946489fe6ce3acaafa3d6a96eaf2c26d198591
data/lib/tadb.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module TADB
2
- VERSION = '0.3.3'
2
+ VERSION = '0.3.5'
3
3
  end
4
4
 
5
5
  require_relative 'tadb/db'
data/lib/tadb/db.rb CHANGED
@@ -1,18 +1,18 @@
1
- require 'fileutils'
2
- module TADB
3
- module DB
4
-
5
- def self.table(table_name)
6
- Table.new(table_name)
7
- end
8
-
9
- def self.clear_all
10
- #FileUtils.remove_dir('./db', true)
11
- Utils.db_files.each do |filename|
12
- FileUtils.chdir('./db') do
13
- File.delete(filename)
14
- end
15
- end
16
- end
17
- end
1
+ require 'fileutils'
2
+ module TADB
3
+ module DB
4
+
5
+ def self.table(table_name)
6
+ Table.new(table_name)
7
+ end
8
+
9
+ def self.clear_all
10
+ #FileUtils.remove_dir('./db', true)
11
+ Utils.db_files.each do |filename|
12
+ FileUtils.chdir('./db') do
13
+ File.delete(filename)
14
+ end
15
+ end
16
+ end
17
+ end
18
18
  end
data/lib/tadb/table.rb CHANGED
@@ -1,70 +1,70 @@
1
- require 'securerandom'
2
- require 'json'
3
-
4
- class TADB::Table
5
-
6
- def initialize(name)
7
- @name = name
8
- end
9
-
10
- def entries
11
- file('r') do |f|
12
- f.readlines.map do |line|
13
- JSON.parse(line).map {|k, v| [k.to_sym, v]}.to_h
14
- end
15
- end
16
- end
17
-
18
- def insert(_entry)
19
- entry = _entry.clone
20
- entry[:id] ||= SecureRandom.uuid
21
-
22
- validate_types(entry)
23
-
24
- file('a') do |f|
25
- f.puts(JSON.generate(entry))
26
- end
27
- entry[:id]
28
- end
29
-
30
- def delete(id)
31
- remaining = entries.reject {|entry| entry[:id] === id}
32
-
33
- file('w') do |f|
34
- remaining.each do |entry|
35
- f.puts(JSON.generate(entry))
36
- end
37
- end
38
- end
39
-
40
- def clear
41
- File.open(db_path, 'w') {}
42
- end
43
-
44
- private
45
-
46
- def file(mode, &block)
47
- Dir.mkdir('./db') unless File.exists?('./db')
48
- clear unless File.exists?(db_path)
49
-
50
- File.open(db_path, mode) {|file| block.call(file)}
51
- end
52
-
53
- def db_path
54
- "./db/#{@name}"
55
- end
56
-
57
- def validate_types(entry)
58
- invalid_pairs = entry.select do |_, value|
59
- !value.is_a?(String) && !value.is_a?(Numeric) && value != true && value != false
60
- end
61
-
62
- unless invalid_pairs.empty?
63
- separator = '/n/t'
64
- pairs_description = invalid_pairs
65
- .map {|key, value| " #{key}: #{value}"}
66
- .join(",#{separator}")
67
- raise TypeError.new("Can't persist field(s) because they contain non-primitive values at" + separator + pairs_description)
68
- end
69
- end
70
- end
1
+ require 'securerandom'
2
+ require 'json'
3
+
4
+ class TADB::Table
5
+
6
+ def initialize(name)
7
+ @name = name
8
+ end
9
+
10
+ def entries
11
+ file('r') do |f|
12
+ f.readlines.map do |line|
13
+ JSON.parse(line).map {|k, v| [k.to_sym, v]}.to_h
14
+ end
15
+ end
16
+ end
17
+
18
+ def insert(_entry)
19
+ entry = _entry.clone
20
+ entry[:id] ||= SecureRandom.uuid
21
+
22
+ validate_types(entry)
23
+
24
+ file('a') do |f|
25
+ f.puts(JSON.generate(entry))
26
+ end
27
+ entry[:id]
28
+ end
29
+
30
+ def delete(id)
31
+ remaining = entries.reject {|entry| entry[:id] === id}
32
+
33
+ file('w') do |f|
34
+ remaining.each do |entry|
35
+ f.puts(JSON.generate(entry))
36
+ end
37
+ end
38
+ end
39
+
40
+ def clear
41
+ File.open(db_path, 'w') {}
42
+ end
43
+
44
+ private
45
+
46
+ def file(mode, &block)
47
+ Dir.mkdir('./db') unless File.exists?('./db')
48
+ clear unless File.exists?(db_path)
49
+
50
+ File.open(db_path, mode) {|file| block.call(file)}
51
+ end
52
+
53
+ def db_path
54
+ "./db/#{@name}"
55
+ end
56
+
57
+ def validate_types(entry)
58
+ invalid_pairs = entry.select do |_, value|
59
+ !value.is_a?(String) && !value.is_a?(Numeric) && value != true && value != false
60
+ end
61
+
62
+ unless invalid_pairs.empty?
63
+ separator = '/n/t'
64
+ pairs_description = invalid_pairs
65
+ .map {|key, value| " #{key}: #{value}"}
66
+ .join(",#{separator}")
67
+ raise TypeError.new("Can't persist field(s) because they contain non-primitive values at" + separator + pairs_description)
68
+ end
69
+ end
70
+ end
data/lib/tadb/utils.rb CHANGED
@@ -1,7 +1,7 @@
1
- module Utils
2
- class << self
3
- def db_files
4
- Dir.entries('./db').reject {|filename| filename == '.' || filename == '..'}
5
- end
6
- end
1
+ module Utils
2
+ class << self
3
+ def db_files
4
+ Dir.entries('./db').reject {|filename| filename == '.' || filename == '..'}
5
+ end
6
+ end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tadb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - UTN FRBA - TADP
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-12 00:00:00.000000000 Z
11
+ date: 2021-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-collection_matchers
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.1'
19
+ version: '1.2'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.1'
26
+ version: '1.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.15'
33
+ version: 2.2.15
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.15'
40
+ version: 2.2.15
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '13.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: '13.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
61
+ version: '3.10'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: '3.10'
69
69
  description: Toy file based object storage for academic purposes
70
70
  email:
71
71
  - erwincdl@gmail.com
@@ -96,8 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  requirements: []
99
- rubyforge_project:
100
- rubygems_version: 2.5.2
99
+ rubygems_version: 3.1.4
101
100
  signing_key:
102
101
  specification_version: 4
103
102
  summary: File based storage