Class: Elibri::ONIX::Release_3_0::FileInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/elibri_onix/onix_3_0/file_info.rb

Constant Summary collapse

ATTRIBUTES =

Informacja o fragmencie publikacji (e-book)

[
  :file_type, :file_size, :md5, :updated_at
]
RELATIONS =
[
  :inspect_include_fields
]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ FileInfo

Returns a new instance of FileInfo.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/elibri_onix/onix_3_0/file_info.rb', line 21

def initialize(data)
  @to_xml = data.to_s

  data.css("ResourceFileDate").each do |date|
    if date.css("ResourceFileDateRole").first.inner_text == Elibri::ONIX::Dict::Release_3_0::::LAST_UPDATED
      @updated_at = Time.parse(date.css("Date").first.inner_text)
    end
  end

  data.css("ResourceFileFeature").each do |feat|
    ftype = feat.css("ResourceFileFeatureType").first.inner_text
    fvalue = feat.css("ResourceFileFeatureValue").first.inner_text

    if ftype == Elibri::ONIX::Dict::Release_3_0::ResourceFileFeatureType::EXACT_FILE_SIZE
      @file_size = fvalue.to_i
    elsif ftype == Elibri::ONIX::Dict::Release_3_0::ResourceFileFeatureType::MD5
      @md5 = fvalue
    end
  end

  fname = data.css("ResourceFileLink").first&.inner_text
  if fname
    if File.extname(fname) == ".zip"
      @file_type = "mp3_in_zip"
    else
      @file_type = File.extname(fname)[1..-1]
    end
  end

  data.css("ResourceIdentifier").each do |ident|
    if ident.css("ResourceIDType").first&.inner_text == Elibri::ONIX::Dict::Release_3_0::ResourceIDType::PROPRIETARY
      @eid = ident.css("IDValue").first&.inner_text&.to_i
    end
  end
end

Instance Attribute Details

#eidObject

Returns the value of attribute eid.



19
20
21
# File 'lib/elibri_onix/onix_3_0/file_info.rb', line 19

def eid
  @eid
end

#file_sizeObject

Returns the value of attribute file_size.



19
20
21
# File 'lib/elibri_onix/onix_3_0/file_info.rb', line 19

def file_size
  @file_size
end

#file_typeObject

Returns the value of attribute file_type.



19
20
21
# File 'lib/elibri_onix/onix_3_0/file_info.rb', line 19

def file_type
  @file_type
end

#md5Object

Returns the value of attribute md5.



19
20
21
# File 'lib/elibri_onix/onix_3_0/file_info.rb', line 19

def md5
  @md5
end

#to_xmlObject

Returns the value of attribute to_xml.



19
20
21
# File 'lib/elibri_onix/onix_3_0/file_info.rb', line 19

def to_xml
  @to_xml
end

#updated_atObject

Returns the value of attribute updated_at.



19
20
21
# File 'lib/elibri_onix/onix_3_0/file_info.rb', line 19

def updated_at
  @updated_at
end

Instance Method Details

#inspect_include_fieldsObject



57
58
59
# File 'lib/elibri_onix/onix_3_0/file_info.rb', line 57

def inspect_include_fields
  [:file_type]
end