Class: OpenBD::Resources::Onix::PublishingDetail

Inherits:
BaseResource
  • Object
show all
Defined in:
lib/openbd/resources/onix/publishing_detail.rb

Overview

Block 4: Publishing detail

出版社に関する情報を記述する。

Instance Attribute Summary collapse

Attributes inherited from BaseResource

#src

Instance Method Summary collapse

Constructor Details

#initialize(src) ⇒ PublishingDetail

Returns a new instance of PublishingDetail.



36
37
38
39
40
41
42
43
44
45
# File 'lib/openbd/resources/onix/publishing_detail.rb', line 36

def initialize(src)
  super
  @imprint = nil
  @publisher = nil
  @publishing_date = nil
  @publishing_embargo_date = nil
  @public_announcement_date = nil
  @publishers_reservation_order_deadline = nil
  parse(src)
end

Instance Attribute Details

#imprintOpenBD::Resources::Onix::Publisher (readonly)

Imprint (発行出版社)



14
15
16
# File 'lib/openbd/resources/onix/publishing_detail.rb', line 14

def imprint
  @imprint
end

#public_announcement_dateString (readonly)

Public Announcement Date (発売情報解禁日)

Returns:

  • (String)


30
31
32
# File 'lib/openbd/resources/onix/publishing_detail.rb', line 30

def public_announcement_date
  @public_announcement_date
end

#publisherOpenBD::Resources::Onix::Publisher (readonly)

Publisher (発売出版社)



18
19
20
# File 'lib/openbd/resources/onix/publishing_detail.rb', line 18

def publisher
  @publisher
end

#publishers_reservation_order_deadlineString (readonly)

Publishers Reservation Order Deadline (注文・申込締切(事前予約注文締切日))

Returns:

  • (String)


34
35
36
# File 'lib/openbd/resources/onix/publishing_detail.rb', line 34

def publishers_reservation_order_deadline
  @publishers_reservation_order_deadline
end

#publishing_dateString (readonly)

Publishing Date (発売予定日)

Returns:

  • (String)


22
23
24
# File 'lib/openbd/resources/onix/publishing_detail.rb', line 22

def publishing_date
  @publishing_date
end

#publishing_embargo_dateString (readonly)

Publishing Embargo Date (発売協定日)

Returns:

  • (String)


26
27
28
# File 'lib/openbd/resources/onix/publishing_detail.rb', line 26

def publishing_embargo_date
  @publishing_embargo_date
end

Instance Method Details

#parse(pd) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/openbd/resources/onix/publishing_detail.rb', line 47

def parse(pd)
  if pd["Imprint"]
    publisher_id = distribution_id = nil
    pd["Imprint"]["ImprintIdentifier"].each do |ii|

      # Onix codelists, List 44: Name code type
      # https://onix-codelists.io/codelist/44
      case ii["ImprintIDType"]
      when "19" ## JapanesePublisherIdentifier, 発行出版社コード
        publisher_id = ii["IDValue"]
      when "24" ## JpDistributionIdentifier, 発行取引コード
        distribution_id = ii["IDValue"]
      end
    end
    name = pd["Imprint"]["ImprintName"] ## 発行出版社名
    @imprint = OpenBD::Resources::Onix::Publisher.new(name,
                                                      publisher_id,
                                                      distribution_id)
  end

  if pd["Publisher"]
    publisher_id = distribution_id = nil
    pd["Publisher"]["PublisherIdentifier"].each do |pi|

      # Onix codelists, List 44: Name code type
      # https://onix-codelists.io/codelist/44
      case pi["PublisherIDType"]
      when "19" ## JapanesePublisherIdentifier, 発売出版社コード
        publisher_id = pi["IDValue"]
      when "24" ## JpDistributionIdentifier, 発売取引コード
        distribution_id = pi["IDValue"]
      end
    end
    name = pd["Publisher"]["PublisherName"] ## 発売出版社名
    @publisher = OpenBD::Resources::Onix::Publisher.new(name,
                                                        publisher_id,
                                                        distribution_id)
  end

  if pd["PublishingDate"]
    pd["PublishingDate"].each do |pdi|

      # Onix Codelists, List 163: Publishing date role
      # https://onix-codelists.io/codelist/163
      case pdi["PublishingDateRole"]
      when "01" ## PublicationDate
        @publishing_date = pdi["Date"]
      when "02" ## EmbargoDate
        @publishing_embargo_date = pdi["Date"]
      when "09" ## PublicAnnouncementDate
        @public_announcement_date = pdi["Date"]
      when "25" ## PublishersReservationOrderDeadline
        @publishers_reservation_order_deadline = pdi["Date"]
      end
    end
  end
end