Sha256: 2b2fe76e6827c83dbd4c9090750242028d81b83df5031083629ee52d7c685936

Contents?: true

Size: 1.6 KB

Versions: 21

Compression:

Stored size: 1.6 KB

Contents

require "forwardable"
require "yaml"
require "relaton_bib/version"
require "relaton_bib/deep_dup"
require "relaton_bib/localized_string"
require "relaton_bib/bibliographic_item"
require "relaton_bib/hit_collection"
require "relaton_bib/hit"
require "relaton_bib/bibxml_parser"

module RelatonBib
  class Error < StandardError; end

  class RequestError < StandardError; end

  class << self
    # @param date [String, Integer, Date] date
    # @param str [Boolean] return string or Date
    # @return [Date, String, nil] date
    def parse_date(date, str = true) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity,Metrics/AbcSize
      return date if date.is_a?(Date)

      case date.to_s
      when /(?<date>\w+\s\d{4})/ # February 2012
        d = Date.strptime($~[:date], "%B %Y")
        str ? d.strftime("%Y-%m") : d
      when /(?<date>\w+\s\d{1,2},\s\d{4})/ # February 11, 2012
        d = Date.strptime($~[:date], "%B %d, %Y")
        str ? d.strftime("%Y-%m-%d") : d
      when /(?<date>\d{4}-\d{2}-\d{2})/ # 2012-02-11
        str ? $~[:date] : Date.strptime($~[:date], "%Y-%m-%d")
      when /(?<date>\d{4}-\d{2})/ # 2012-02
        str ? $~[:date] : Date.strptime($~[:date], "%Y-%m")
      when /(?<date>\d{4})/ # 2012
        str ? $~[:date] : Date.strptime($~[:date], "%Y")
      end
    end
  end

  private

  # @param array [Array]
  # @return [Array<String>, String]
  def single_element_array(array)
    # if array.size > 1
    array.map { |e| e.is_a?(String) ? e : e.to_hash }
    # else
    #   array.first.is_a?(String) ? array[0] : array.first&.to_hash
    # end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
relaton-bib-1.11.5 lib/relaton_bib.rb
relaton-bib-1.11.4 lib/relaton_bib.rb
relaton-bib-1.11.3 lib/relaton_bib.rb
relaton-bib-1.11.2 lib/relaton_bib.rb
relaton-bib-1.11.1 lib/relaton_bib.rb
relaton-bib-1.11.0 lib/relaton_bib.rb
relaton-bib-1.10.7 lib/relaton_bib.rb
relaton-bib-1.10.6 lib/relaton_bib.rb
relaton-bib-1.10.5 lib/relaton_bib.rb
relaton-bib-1.10.4 lib/relaton_bib.rb
relaton-bib-1.10.3 lib/relaton_bib.rb
relaton-bib-1.10.2 lib/relaton_bib.rb
relaton-bib-1.10.1 lib/relaton_bib.rb
relaton-bib-1.10.0 lib/relaton_bib.rb
relaton-bib-1.9.23 lib/relaton_bib.rb
relaton-bib-1.9.22 lib/relaton_bib.rb
relaton-bib-1.9.21 lib/relaton_bib.rb
relaton-bib-1.9.20 lib/relaton_bib.rb
relaton-bib-1.9.19 lib/relaton_bib.rb
relaton-bib-1.9.18 lib/relaton_bib.rb