Sha256: d4ee1f5b40af39137d8f5f4efea68e7d4fd0c76075ec8f917db02ba04d4d7eee

Contents?: true

Size: 1.29 KB

Versions: 8

Compression:

Stored size: 1.29 KB

Contents

require 'erb'

module TaxJp
  class Utils
    class << self

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

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

      def load_yaml(filename)
        YAML.load_file(File.join(data_dir, filename))
      end

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

      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

      def with_database(db_path)
        db = SQLite3::Database.new(db_path)
        begin
          yield db
        ensure
          db.close
        end
      end

      def convert_to_date(value)
        ret = nil
    
        if value.is_a?(Date)
          ret = value.strftime('%Y-%m-%d')
        elsif value.is_a?(String)
          ret = value
        else
          raise TypeError.new(value.class)
        end

        ret
      end

      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

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
tax_jp-0.3.7 lib/tax_jp/utils.rb
tax_jp-0.3.6 lib/tax_jp/utils.rb
tax_jp-0.3.5 lib/tax_jp/utils.rb
tax_jp-0.3.4 lib/tax_jp/utils.rb
tax_jp-0.3.3 lib/tax_jp/utils.rb
tax_jp-0.3.2 lib/tax_jp/utils.rb
tax_jp-0.3.1 lib/tax_jp/utils.rb
tax_jp-0.3.0 lib/tax_jp/utils.rb