Class: OpenBD::Resources::Onix::DescriptiveDetail
- Inherits:
-
BaseResource
- Object
- BaseResource
- OpenBD::Resources::Onix::DescriptiveDetail
- Defined in:
- lib/openbd/resources/onix/descriptive_detail.rb
Overview
Block 1: Product description
Instance Attribute Summary collapse
-
#authors ⇒ Array<OpenBD::Resources::Onix::Contributor>
readonly
Contributors / Authors (著者).
-
#ccode ⇒ String
readonly
Japanese book trade C-Code (Cコード).
-
#collection_sequence ⇒ Object
readonly
Collection Sequence/Publication order (配本回数).
-
#genre_code ⇒ String
readonly
Japanese book trade Genre Code (ジャンルコード).
-
#height ⇒ String
readonly
Height (サイズ・タテ).
-
#jp_childrens_audience_code ⇒ Object
readonly
Japanese Chidren’s audience code (児童書読者コード).
-
#label ⇒ Object
readonly
Collection level / Label (レーベル).
-
#label_collationkey ⇒ Object
readonly
Collationkey of Label (レーベル読み).
-
#languages ⇒ Array<String>
readonly
Languages (言語設定).
-
#onix_adult_audience_rating ⇒ Object
readonly
ONIX Adult audience rating (成人指定) onix-codelists.io/codelist/203.
-
#pages ⇒ String
readonly
Pages (ページ数).
-
#product_composition ⇒ Object
(also: #bunbai)
readonly
Product Composition (分売可否).
-
#product_form ⇒ Object
readonly
Product Form Code.
-
#product_form_detail ⇒ Object
(also: #hankei)
readonly
Product Form Detail (判型).
-
#product_parts ⇒ Object
readonly
Product Parts (付録).
-
#series ⇒ Object
readonly
Subcollection / Series (シリーズ名).
-
#series_collationkey ⇒ Object
readonly
Collationkey of Series (シリーズ読み).
-
#series_num ⇒ String
readonly
Number of Series (シリーズ巻次).
-
#subject_heading_text ⇒ String
(also: #keywords)
readonly
Keywords (キーワード).
-
#subtitle ⇒ Object
readonly
Subtitle (サブタイトル).
-
#subtitle_collationkey ⇒ Object
readonly
Collationkey of Subtitle (サブタイトル読み).
-
#title ⇒ Object
readonly
Title (書名).
-
#title_collationkey ⇒ Object
readonly
Collationkey of Title (書名読み).
-
#width ⇒ String
readonly
Width (サイズ・ヨコ).
Attributes inherited from BaseResource
Instance Method Summary collapse
-
#initialize(src) ⇒ DescriptiveDetail
constructor
A new instance of DescriptiveDetail.
- #parse(dd) ⇒ Object
Constructor Details
#initialize(src) ⇒ DescriptiveDetail
Returns a new instance of DescriptiveDetail.
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 98 def initialize(src) super @product_composition = nil @product_form = nil @product_form_detail = nil @height = nil @width = nil @product_parts = nil @collection_sequence = nil @series_number = nil @series = nil @series_collationkey = nil @label = nil @label_collationkey = nil @title = nil @title_collationkey = nil @subtitle = nil @subtitle_collationkey = nil @authors = [] @languages = [] @pages = nil @subject_heading_text = nil @ccode = nil @genre_code = nil @jp_childrens_audience_code = nil @onix_adult_audience_rating = nil parse(src) end |
Instance Attribute Details
#authors ⇒ Array<OpenBD::Resources::Onix::Contributor> (readonly)
Contributors / Authors (著者)
68 69 70 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 68 def @authors end |
#ccode ⇒ String (readonly)
Japanese book trade C-Code (Cコード)
85 86 87 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 85 def ccode @ccode end |
#collection_sequence ⇒ Object (readonly)
Collection Sequence/Publication order (配本回数)
36 37 38 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 36 def collection_sequence @collection_sequence end |
#genre_code ⇒ String (readonly)
Japanese book trade Genre Code (ジャンルコード)
89 90 91 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 89 def genre_code @genre_code end |
#height ⇒ String (readonly)
Height (サイズ・タテ)
26 27 28 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 26 def height @height end |
#jp_childrens_audience_code ⇒ Object (readonly)
Japanese Chidren’s audience code (児童書読者コード)
92 93 94 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 92 def jp_childrens_audience_code @jp_childrens_audience_code end |
#label ⇒ Object (readonly)
Collection level / Label (レーベル)
49 50 51 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 49 def label @label end |
#label_collationkey ⇒ Object (readonly)
Collationkey of Label (レーベル読み)
52 53 54 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 52 def label_collationkey @label_collationkey end |
#languages ⇒ Array<String> (readonly)
Languages (言語設定)
72 73 74 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 72 def languages @languages end |
#onix_adult_audience_rating ⇒ Object (readonly)
ONIX Adult audience rating (成人指定) onix-codelists.io/codelist/203
96 97 98 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 96 def @onix_adult_audience_rating end |
#pages ⇒ String (readonly)
Pages (ページ数)
76 77 78 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 76 def pages @pages end |
#product_composition ⇒ Object (readonly) Also known as: bunbai
Product Composition (分売可否)
11 12 13 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 11 def product_composition @product_composition end |
#product_form ⇒ Object (readonly)
Product Form Code
15 16 17 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 15 def product_form @product_form end |
#product_form_detail ⇒ Object (readonly) Also known as: hankei
Product Form Detail (判型)
Onix codelists List 175: Product form detail onix-codelists.io/codelist/175
21 22 23 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 21 def product_form_detail @product_form_detail end |
#product_parts ⇒ Object (readonly)
Product Parts (付録)
33 34 35 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 33 def product_parts @product_parts end |
#series ⇒ Object (readonly)
Subcollection / Series (シリーズ名)
43 44 45 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 43 def series @series end |
#series_collationkey ⇒ Object (readonly)
Collationkey of Series (シリーズ読み)
46 47 48 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 46 def series_collationkey @series_collationkey end |
#series_num ⇒ String (readonly)
Number of Series (シリーズ巻次)
40 41 42 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 40 def series_num @series_num end |
#subject_heading_text ⇒ String (readonly) Also known as: keywords
Keywords (キーワード)
80 81 82 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 80 def subject_heading_text @subject_heading_text end |
#subtitle ⇒ Object (readonly)
Subtitle (サブタイトル)
61 62 63 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 61 def subtitle @subtitle end |
#subtitle_collationkey ⇒ Object (readonly)
Collationkey of Subtitle (サブタイトル読み)
64 65 66 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 64 def subtitle_collationkey @subtitle_collationkey end |
#title ⇒ Object (readonly)
Title (書名)
55 56 57 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 55 def title @title end |
#title_collationkey ⇒ Object (readonly)
Collationkey of Title (書名読み)
58 59 60 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 58 def title_collationkey @title_collationkey end |
#width ⇒ String (readonly)
Width (サイズ・ヨコ)
30 31 32 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 30 def width @width end |
Instance Method Details
#parse(dd) ⇒ Object
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 |
# File 'lib/openbd/resources/onix/descriptive_detail.rb', line 127 def parse(dd) @product_composition = dd["ProductComposition"] # Onix codelists, List 150: Product form # https://onix-codelists.io/codelist/150 # Value: "BA" (Book), "BZ" (Other book format) or "ZA" (General merchandise, not recommended) @product_form = dd["ProductForm"] if @product_form == "BA" # Onix codelists List 175: Product form detail # https://onix-codelists.io/codelist/175 @product_form_detail = dd["ProductFormDetail"] end if dd["Measure"] dd["Measure"].each do |m| # Onix codelists, List 48: Measure type code # https://onix-codelists.io/codelist/48 case m["MeasureType"] when "01" @height = m["Measurement"] + m["MeasureUnitCode"] when "02" @width = m["Measurement"] + m["MeasureUnitCode"] else nil end end end if dd["ProductPart"] @product_parts = dd["ProductPart"].map do |part| part["ProductFormDescription"] end end if dd["Collection"] if dd["Collection"]["CollectionSequence"] @collection_sequence = dd["Collection"]["CollectionSequence"]["CollectionSequenceNumber"] end if dd["Collection"]["TitleDetail"] && dd["Collection"]["TitleDetail"]["TitleElement"] # Onix codelists, List 149: Title element level # https://onix-codelists.io/codelist/149 dd["Collection"]["TitleDetail"]["TitleElement"].each do |te| if te["TitleElementLevel"] == "03" ## Subcollection if te["PartNumber"] @series_number = te["PartNumber"] end @series = te["TitleText"]["content"] @series_collationkey = te["TitleText"]["collationkey"] elsif te["TitleElementLevel"] == "02" ## Collection level @label = te["TitleText"]["content"] @label_collationkey = te["TitleText"]["collationkey"] end end end end if dd["TitleDetail"] @title = dd["TitleDetail"]["TitleElement"]["TitleText"]["content"] @title_collationkey = dd["TitleDetail"]["TitleElement"]["TitleText"]["collationkey"] if dd["TitleDetail"]["TitleElement"]["Subtitle"] @subtitle = dd["TitleDetail"]["TitleElement"]["Subtitle"]["content"] @subtitle_collationkey = dd["TitleDetail"]["TitleElement"]["Subtitle"]["collationkey"] end end if dd["Contributor"] @authors = dd["Contributor"].map do || OpenBD::Resources::Onix::Contributor.new() end end if dd["Language"] @languages = dd["Language"].map{|lang| lang["LanguageCode"]} end if dd["Extent"] && dd["Extent"][0] @pages = dd["Extent"][0]["ExtentValue"] end if dd["Subject"] dd["Subject"].each do |sbj| # Onix codelists, List 27: Subject scheme identifier code # https://onix-codelists.io/codelist/27 case sbj["SubjectSchemeIdentifier"] when "20" @subject_heading_text = sbj["SubjectHeadingText"] ## keywords when "78" @ccode = sbj["SubjectCode"] when "79" @genre_code = sbj["SubjectCode"] end end end # ONIX Code Lists, List 29: Audience code type # https://onix-codelists.io/codelist/29 if dd["Audience"] dd["Audience"].each do |aud| if aud["AudienceCodeType"] == "21" ## JapaneseChildrensAudienceCode @jp_childrens_audience_code = aud["AudienceCodeValue"] elsif aud["AudienceCodeType"] == "22" ## OnixAdultAudienceRating @onix_adult_audience_rating = aud["AudienceCodeValue"] end end end end |