Sha256: 89fbb40ee09d9c00de4c677e42f095c5c33b4c63d6b97c9539a175b381c51b74

Contents?: true

Size: 1.06 KB

Versions: 14

Compression:

Stored size: 1.06 KB

Contents

require "relaton_bib/version"
require "relaton_bib/bibliographic_item"
require "relaton_bib/hit_collection"
require "relaton_bib/hit"

module RelatonBib
  class Error < StandardError; end

  class RequestError < StandardError; end

  class << self
    # @param date [String]
    # @return [Date, NilClass]
    def parse_date(sdate)
      if /(?<date>\w+\s\d{4})/ =~ sdate # February 2012
        Date.strptime(date, "%B %Y")
      elsif /(?<date>\w+\s\d{1,2},\s\d{4})/ =~ sdate # February 11, 2012
        Date.strptime(date, "%B %d, %Y")
      elsif /(?<date>\d{4}-\d{2}-\d{2})/ =~ sdate # 2012-02-11
        Date.parse(date)
      elsif /(?<date>\d{4}-\d{2})/ =~ sdate # 2012-02
        Date.strptime date, "%Y-%m"
      elsif /(?<date>\d{4})/ =~ sdate # 2012
        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[0].is_a?(String) ? array[0] : array[0].to_hash
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
relaton-bib-0.7.0 lib/relaton_bib.rb
relaton-bib-0.6.0 lib/relaton_bib.rb
relaton-bib-0.5.2 lib/relaton_bib.rb
relaton-bib-0.5.1 lib/relaton_bib.rb
relaton-bib-0.5.0 lib/relaton_bib.rb
relaton-bib-0.4.1 lib/relaton_bib.rb
relaton-bib-0.4.0 lib/relaton_bib.rb
relaton-bib-0.3.12 lib/relaton_bib.rb
relaton-bib-0.3.11 lib/relaton_bib.rb
relaton-bib-0.3.10 lib/relaton_bib.rb
relaton-bib-0.3.9 lib/relaton_bib.rb
relaton-bib-0.3.8 lib/relaton_bib.rb
relaton-bib-0.3.7 lib/relaton_bib.rb
relaton-bib-0.3.6 lib/relaton_bib.rb