rubylite 0.1.0 → 0.1.1

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
2
  SHA1:
3
- metadata.gz: 2599210fed8076ba87b4815eff27f802005fc4cf
4
- data.tar.gz: 6bcc2bd2d884b1cab8fad77c3cfda765794c39ae
3
+ metadata.gz: 837a37d03c91c250f62f3051e41cb0041513bed5
4
+ data.tar.gz: 3acddefaaa0491601364518c55805ef577c10fc2
5
5
  SHA512:
6
- metadata.gz: e8ff1b3a2f5c44d6be1791835e5a05a4a416c9a67f3c13503570a5f349085425c2a65c0c4b4dbf55ef7418760bb519dfdc98c40977b57794f3b3c999456b0f58
7
- data.tar.gz: 671da1b214ab685d7ddfcbbc3a6c18fc5ad3b3addad6663c4f23a496c2dd469d2dd3df8a895fac7f37417d70f2d768c77077c8f111b8afde46d2f006b1f788c4
6
+ metadata.gz: 07664bb79accbc6236b02b8d941ed727764ac4d2714bb4da31e6faca1cd99324eba7fded95a949d8b8f596c2ec6f5185af50c7ba8e22b205d2dfcc173d90ac8b
7
+ data.tar.gz: 310077619e45e6df668643cbd57ff0be151a245dd3d7bbc556f915c8ad099eb0f97d19450808cb8eeae7c7d80610c7596d30f1a7c2ac721c6563d6b3f81845cb
@@ -1,11 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rubylite (0.1.0)
4
+ rubylite (0.1.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
+ amalgalite (1.6.1)
10
+ arrayfields (~> 4.9)
11
+ arrayfields (4.9.2)
9
12
  minitest (5.11.3)
10
13
  rake (10.5.0)
11
14
 
@@ -13,6 +16,7 @@ PLATFORMS
13
16
  ruby
14
17
 
15
18
  DEPENDENCIES
19
+ amalgalite (~> 1.6)
16
20
  bundler (~> 1.16)
17
21
  minitest (~> 5.0)
18
22
  rake (~> 10.0)
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Rubylite
1
+ # Rubylite [![Gem Version](https://badge.fury.io/rb/rubylite.svg)](https://badge.fury.io/rb/rubylite) [![Maintainability](https://api.codeclimate.com/v1/badges/82521265da36e81d3a7c/maintainability)](https://codeclimate.com/github/vbhv007/rubylite/maintainability)
2
2
 
3
3
  This is a command line tool which can interact with databases
4
4
 
@@ -30,9 +30,9 @@ Let's say **users** is a table
30
30
  | 1 | 'vbhv' |
31
31
  | 2 | 'luci' |
32
32
 
33
- Users.first # 1 vbhv
34
- Users.last # 2 luci
35
- Users.find_by('name', 'vbhv') # 1 vbhv
33
+ User.first # 1 vbhv
34
+ User.last # 2 luci
35
+ User.find_by('name', 'vbhv') # 1 vbhv
36
36
  ```
37
37
 
38
38
  ## Development
@@ -43,7 +43,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
43
43
 
44
44
  ## Contributing
45
45
 
46
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/rubylite. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
46
+ Bug reports and pull requests are welcome on GitHub at https://github.com/vbhv007/rubylite. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
47
47
 
48
48
  ## License
49
49
 
@@ -1,4 +1,4 @@
1
- require '../lib/rquery.rb'
2
- ob = RQuery.new
1
+ require '../lib/rubylite.rb'
2
+ ob = Rubylite.new
3
3
  puts "Type `db_open('database_name')` to start or q for quit"
4
4
  ob.code
Binary file
@@ -0,0 +1,44 @@
1
+ require 'amalgalite'
2
+ # this is Functions
3
+ module Functions
4
+ def exe(query)
5
+ Rubylite.new.exec_this(@database, query)
6
+ end
7
+
8
+ def find_table_name
9
+ (to_s + 's').downcase
10
+ end
11
+
12
+ def first(arg = 1)
13
+ exe("select * from #{find_table_name} order by
14
+ #{find_table_name}.id ASC limit #{arg}")
15
+ end
16
+
17
+ def take(arg = 1)
18
+ exe("select * from #{find_table_name} limit #{arg}")
19
+ end
20
+
21
+ def last(arg = 1)
22
+ exe("select * from #{find_table_name} order by
23
+ #{find_table_name}.id DESC limit #{arg}")
24
+ end
25
+
26
+ def find_by(arg1, arg2)
27
+ exe("select * from #{find_table_name} where
28
+ (#{find_table_name}.#{arg1} = '#{arg2}') limit 1")
29
+ end
30
+
31
+ def all
32
+ exe("select * from #{find_table_name}")
33
+ end
34
+
35
+ def making_query_from_hash(hash)
36
+ hash.inject('') { |s, (k, v)| s + "#{k} = '#{v}', " }
37
+ end
38
+
39
+ def update(hash, condn_hash)
40
+ str = making_query_from_hash(hash)
41
+ condn = making_query_from_hash(condn_hash)
42
+ exe("update #{to_s.downcase} set #{str[0..-3]} where #{condn[0..-3]}")
43
+ end
44
+ end
@@ -1,5 +1,61 @@
1
- require "rubylite/version"
1
+ require_relative 'functions.rb'
2
+ # this is class Rubylite
3
+ class Rubylite
4
+ def db_open(db_name)
5
+ @db = Amalgalite::Database.new "#{db_name}.db"
6
+ @current_db = db_name
7
+ make_class
8
+ end
2
9
 
3
- module Rubylite
4
- # Your code goes here...
10
+ def create(table_name, hash)
11
+ str = make_query(hash)
12
+ @db.execute("create table #{table_name.downcase}(#{str})")
13
+ str2 = make_query2(hash)
14
+ @db.execute("insert into #{table_name} values(#{str2})")
15
+ db_name = @current_db
16
+ db_close
17
+ db_open(db_name)
18
+ end
19
+
20
+ def make_query2(hash)
21
+ column = hash.inject('') { |col, (_k, value)| col + "'#{value}', " }
22
+ column[0..-3]
23
+ end
24
+
25
+ def make_query(hash)
26
+ column = hash.inject('') { |col, (key, _v)| col + "'#{key}', " }
27
+ column[0..-3]
28
+ end
29
+
30
+ def exec_this(db_name, query)
31
+ db_name.execute(query)
32
+ end
33
+
34
+ def db_close
35
+ @current_db = ''
36
+ end
37
+
38
+ def make_class
39
+ tables_list = exec_this(@db, "select name from sqlite_master where
40
+ type='table'")
41
+ tables_list.each do |table|
42
+ @class_created = Object.const_set((table[0])[0..-2].capitalize, Class.new)
43
+ @class_created.instance_variable_set(:@database, @db)
44
+ @class_created.class_eval do
45
+ extend Functions
46
+ end
47
+ end
48
+ end
49
+
50
+ def eval_this(input)
51
+ instance_eval(input)
52
+ end
53
+
54
+ def code
55
+ print "#{@current_db}>>"
56
+ input = gets
57
+ exit if input =~ /^q$/
58
+ puts eval_this(input)
59
+ code
60
+ end
5
61
  end
@@ -1,3 +1,3 @@
1
- module Rubylite
2
- VERSION = "0.1.0"
1
+ module Version
2
+ VERSION = "0.1.1"
3
3
  end
@@ -5,7 +5,7 @@ require "rubylite/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "rubylite"
8
- spec.version = Rubylite::VERSION
8
+ spec.version = Version::VERSION
9
9
  spec.authors = ["vbhv007"]
10
10
  spec.email = ["bhardwajvbhv@gmail.com"]
11
11
 
@@ -25,4 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "bundler", "~> 1.16"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
27
27
  spec.add_development_dependency "minitest", "~> 5.0"
28
+ spec.add_development_dependency "amalgalite", "~> 1.6"
28
29
  end
data/vbhv.db ADDED
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubylite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - vbhv007
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-10 00:00:00.000000000 Z
11
+ date: 2018-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: amalgalite
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.6'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.6'
55
69
  description:
56
70
  email:
57
71
  - bhardwajvbhv@gmail.com
@@ -70,16 +84,17 @@ files:
70
84
  - bin/console
71
85
  - bin/main.rb
72
86
  - bin/setup
87
+ - bin/vbhv.db
73
88
  - database/new.db
74
89
  - database/qwerty.db
75
90
  - database/test.db
76
91
  - database/test2.db
77
92
  - database/vbhv.db
78
- - lib/module.rb
79
- - lib/rquery.rb
93
+ - lib/functions.rb
80
94
  - lib/rubylite.rb
81
95
  - lib/rubylite/version.rb
82
96
  - rubylite.gemspec
97
+ - vbhv.db
83
98
  homepage: https://github.com/vbhv007/rubylite
84
99
  licenses:
85
100
  - MIT
@@ -1,36 +0,0 @@
1
- require 'amalgalite'
2
- # this is DB
3
- module Functions
4
- def exe(query)
5
- RQuery.new.exec_this(@database, query)
6
- end
7
-
8
- def first(arg = 1)
9
- exe("select * from #{to_s.downcase} order by
10
- #{to_s.downcase}.id ASC limit #{arg}")
11
- end
12
-
13
- def take(arg = 1)
14
- exe("select * from #{to_s.downcase} limit #{arg}")
15
- end
16
-
17
- def last(arg = 1)
18
- exe("select * from #{to_s.downcase} order by
19
- #{to_s.downcase}.id DESC limit #{arg}")
20
- end
21
-
22
- def find_by(arg1, arg2)
23
- exe("select * from #{to_s.downcase} where
24
- (#{to_s.downcase}.#{arg1} = '#{arg2}') limit 1")
25
- end
26
-
27
- def all
28
- exe("select * from #{to_s.downcase}")
29
- end
30
-
31
- def update(hash, condn_hash)
32
- str = hash.inject('') { |s, (k, v)| s + "#{k} = '#{v}', " }
33
- condn = condn_hash.inject('') { |s, (k, v)| s + "#{k} = '#{v}', " }
34
- exe("update #{to_s.downcase} set #{str[0..-3]} where #{condn[0..-3]}")
35
- end
36
- end
@@ -1,61 +0,0 @@
1
- require_relative 'module.rb'
2
- # this is class RQuery
3
- class RQuery
4
- def db_open(db_name)
5
- @db = Amalgalite::Database.new "../database/#{db_name}.db"
6
- @current_db = db_name
7
- make_class
8
- end
9
-
10
- def create(table_name, hash)
11
- str = make_query(hash)
12
- @db.execute("create table #{table_name.downcase}(#{str})")
13
- str2 = make_query2(hash)
14
- @db.execute("insert into #{table_name} values(#{str2})")
15
- db_name = @current_db
16
- db_close
17
- db_open(db_name)
18
- end
19
-
20
- def make_query2(hash)
21
- column = hash.inject('') { |col, (_k, value)| col + "'#{value}', " }
22
- column[0..-3]
23
- end
24
-
25
- def make_query(hash)
26
- column = hash.inject('') { |col, (key, _v)| col + "'#{key}', " }
27
- column[0..-3]
28
- end
29
-
30
- def exec_this(db_name, query)
31
- db_name.execute(query)
32
- end
33
-
34
- def db_close
35
- @current_db = ''
36
- end
37
-
38
- def make_class
39
- tables_list = exec_this(@db, "select name from sqlite_master where
40
- type='table'")
41
- tables_list.each do |table|
42
- @class_created = Object.const_set(table[0].capitalize, Class.new)
43
- @class_created.instance_variable_set(:@database, @db)
44
- @class_created.class_eval do
45
- extend Functions
46
- end
47
- end
48
- end
49
-
50
- def eval_this(input)
51
- instance_eval(input)
52
- end
53
-
54
- def code
55
- print "#{@current_db}>>"
56
- input = gets
57
- exit if input =~ /^q$/
58
- puts eval_this(input)
59
- code
60
- end
61
- end