atm_program 1.4.1.pre → 1.5.0

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
  SHA256:
3
- metadata.gz: 6e60dda1416ccfeb905bf97486c26c9df458d26a09762cbbb4ddafb77f539044
4
- data.tar.gz: c11852c94b28ab86b612018c28d9718c929daf79d721fe25b2879dd5488a3233
3
+ metadata.gz: 5b3f4bdef07fcdca735e2e456c22b9d53907ce2e54d325fe949e4106471124e2
4
+ data.tar.gz: 7a9b496594fb7e256f2c9004c3d63e36c039149ad21e0d2c335047d1af892728
5
5
  SHA512:
6
- metadata.gz: 9a10f7d97f1bb8f0a55b1b7a4d0af5c8525f231d13b095155e6bed0ac6e5c4c963d20284dfbd6e1ed32d80d298e0b89a580994d2cac9e9b74cd192c893b6c2c3
7
- data.tar.gz: 51ebcdffce77ab80ba62558cdfcc962277c1bcc55134f6ee05213f076b866ce2aab43da093360e066586a835d95478ffbd220167c5028359aaf593ee30efe605
6
+ metadata.gz: 357db845bc92ecc75cc7d064b081444eba2debf0fd1f3c7d16fb2d325a085f8c58df37e003e1eb5a9e9169cfa67fa3b92c3efd68b167e665b4800e9d3709f93a
7
+ data.tar.gz: af50c89f0c5ecec35be4ec8533de736ad5e0ccea706372fe3b03ccadc7ca3540d90a4ec06b239a20e7deee28f325dbfcaeabd91f42d0b42f7839c6c05a1b2533
data/lib/account.rb CHANGED
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  require 'csv'
4
- # class Account
5
3
  class Account
6
4
  attr_accessor :name, :card_number, :pin, :balance, :transactions, :card_blocked
7
5
 
@@ -14,7 +12,7 @@ class Account
14
12
  end
15
13
 
16
14
  def self.find_by_card_number(card_number)
17
- CSV.table('/account.csv').each do |entry|
15
+ CSV.table(ACCOUNT_PATH).each do |entry|
18
16
  if entry[:card_number] == card_number
19
17
  return new(entry[:name], entry[:card_number], entry[:pin], entry[:balance], entry[:card_blocked])
20
18
  end
data/lib/atm.rb CHANGED
@@ -17,12 +17,12 @@ class Atm
17
17
 
18
18
  def thank_you
19
19
  puts "\nThank You for using the ATM"
20
- sleep(2)
20
+ sleep(1.5)
21
21
  welcome_screen
22
22
  end
23
23
 
24
24
  def clear
25
- sleep(4)
25
+ sleep(1.5)
26
26
  puts `clear`
27
27
  end
28
28
 
@@ -116,7 +116,7 @@ class Atm
116
116
  return unless valid_pin?
117
117
 
118
118
  transactions = []
119
- CSV.table('/transaction.csv').each do |row|
119
+ CSV.table(TRANSACTION_PATH).each do |row|
120
120
  next unless row[:card_number] == @current_account.card_number && row[:status] == 'Success'
121
121
 
122
122
  transaction_number = row[:transaction_number].to_s.rjust(4, '0')
data/lib/atm_program.rb CHANGED
@@ -3,7 +3,8 @@ require 'base64'
3
3
  require_relative 'atm'
4
4
  require 'highline/import'
5
5
  require 'colorize'
6
-
6
+ ACCOUNT_PATH = File.join(File.dirname(__FILE__), 'account.csv')
7
+ TRANSACTION_PATH = File.join(File.dirname(__FILE__), 'transaction.csv')
7
8
  module ATM
8
9
  def self.start
9
10
  Atm.new
data/lib/transaction.rb CHANGED
@@ -11,7 +11,7 @@ class Transaction
11
11
  @current_account = current_account
12
12
  @type = type
13
13
  @amount = amount
14
- @transaction_number = File.readlines('/transaction.csv').length
14
+ @transaction_number = File.readlines(TRANSACTION_PATH).length
15
15
  @row = "#{@transaction_number},#{@current_account.card_number},#{@type},#{Time.now.strftime('%d/%m/%Y %I:%M:%S:%P')},#{@amount},"
16
16
  validate_type if valid_pin?
17
17
  end
@@ -104,7 +104,7 @@ class Transaction
104
104
  end
105
105
 
106
106
  def update_account_file(transaction_type, amount: nil, pin: nil)
107
- data = CSV.table('/account.csv')
107
+ data = CSV.table(ACCOUNT_PATH)
108
108
  data.each do |entry|
109
109
  next unless entry[:card_number] == @current_account.card_number
110
110
 
@@ -113,13 +113,13 @@ class Transaction
113
113
  when :Deposit then entry[:balance] += amount
114
114
  when :'Change Pin' then entry[:pin] = pin
115
115
  end
116
- File.write('/account.csv', data)
116
+ File.write(ACCOUNT_PATH, data)
117
117
  break
118
118
  end
119
119
  end
120
120
 
121
121
  def update_transaction_file(data)
122
- File.open('/transaction.csv', 'a') do |row|
122
+ File.open(TRANSACTION_PATH, 'a') do |row|
123
123
  row << data
124
124
  end
125
125
  end
data/lib/validation.rb CHANGED
@@ -21,13 +21,13 @@ module Validation
21
21
  puts "Incorrect Pin\n\n"
22
22
  next unless n == 2
23
23
 
24
- @accounts_table = CSV.table('/account.csv').each do |account|
24
+ @accounts_table = CSV.table(ACCOUNT_PATH).each do |account|
25
25
  if account[:card_number] == @current_account.card_number
26
26
  account[:card_blocked] = 'true'
27
27
  break
28
28
  end
29
29
  end
30
- File.write('/account.csv', @accounts_table)
30
+ File.write(ACCOUNT_PATH, @accounts_table)
31
31
  puts "You have entered wrong pin 3 times\nnow your card is blocked contact your bank for more details.."
32
32
  return false
33
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atm_program
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1.pre
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zaid Shaikh
@@ -67,9 +67,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
67
67
  version: 2.7.0
68
68
  required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  requirements:
70
- - - ">"
70
+ - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 1.3.1
72
+ version: '0'
73
73
  requirements: []
74
74
  rubygems_version: 3.3.3
75
75
  signing_key: