Class: TaxJp::Utils

Inherits:
Object
  • Object
show all
Defined in:
lib/tax_jp/utils.rb

Class Method Summary collapse

Class Method Details

.convert_to_date(value) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/tax_jp/utils.rb', line 45

def convert_to_date(value)
  ret = nil
    
  if value.is_a?(Date)
    ret = value.strftime('%Y-%m-%d')
  elsif value.is_a?(String)
    if value =~ /[0-9]{4}-[0-9]{2}-[0-9]{2}/
      ret = value
    else
      raise ArgumentError.new(value)
    end
  else
    raise TypeError.new(value.class)
  end

  ret
end

.convert_to_zip_code(value) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
# File 'lib/tax_jp/utils.rb', line 63

def convert_to_zip_code(value)
  ret = nil
    
  if value.is_a?(String)
    ret = value.sub('-', '')
  else
    raise TypeError.new(value.class)
  end

  ret
end

.data_dirObject



11
12
13
# File 'lib/tax_jp/utils.rb', line 11

def data_dir
  File.join(gem_dir, 'data')
end

.filename_to_date(filename) ⇒ Object



75
76
77
78
79
80
# File 'lib/tax_jp/utils.rb', line 75

def filename_to_date(filename)
  _, valid_from, valid_until = File.basename(filename).split('.').first.split('-')
  valid_from = Date.strptime(valid_from, '%Y%m%d')
  valid_until = Date.strptime(valid_until, '%Y%m%d')
  [valid_from.strftime('%Y-%m-%d'), valid_until.strftime('%Y-%m-%d')]
end

.gem_dirObject



7
8
9
# File 'lib/tax_jp/utils.rb', line 7

def gem_dir
  File.expand_path('../../..', __FILE__)
end

.load_file(filename) ⇒ Object



23
24
25
# File 'lib/tax_jp/utils.rb', line 23

def load_file(filename)
  File.read(File.join(data_dir, filename))
end

.load_yaml(filename) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/tax_jp/utils.rb', line 15

def load_yaml(filename)
  if Gem::Version.new(Psych::VERSION) >= Gem::Version.new("4.0.0")
    YAML.safe_load_file(File.join(data_dir, filename), permitted_classes: [Date])
  else
    YAML.safe_load(File.read(File.join(data_dir, filename)), permitted_classes: [Date])
  end
end

.normalize_amount(amount, options = {}) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/tax_jp/utils.rb', line 82

def normalize_amount(amount, options = {})
  ret = amount.to_s

  if ret == '-'
    ret = TaxJp::INTEGER_MAX
  else
    ret = ret.gsub(',', '')
    if ret.index('.')
      ret = ret.to_f
    else
      ret = ret.to_i
    end
  end

  ret
end

.render(filename) ⇒ Object



27
28
29
30
31
32
# File 'lib/tax_jp/utils.rb', line 27

def render(filename)
  src = File.join(gem_dir, 'templates', filename + '.erb')
  dest = File.join(gem_dir, filename)
  FileUtils.mkdir_p(File.dirname(dest))
  File.write(dest, ERB.new(File.read(src), 0, '-').result)
end

.with_database(db_path, results_as_hash: false) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/tax_jp/utils.rb', line 34

def with_database(db_path, results_as_hash: false)
  db = SQLite3::Database.new(db_path)
  db.results_as_hash = results_as_hash

  begin
    yield db
  ensure
    db.close
  end
end