class SharepointApi::FileInfo
Constants
Attributes
file[R]
updated_at[R]
version[R]
version_id[R]
Public Class Methods
new(file)
click to toggle source
# File lib/sharepoint_api/file_info.rb, line 42 def initialize(file) @version = file.major_version @version_id = SharepointApi::VersionConverter.to_ui(file.major_version) @updated_at = Time.parse(file.time_last_modified) @file = file end
wrap(sharepoint_file)
click to toggle source
# File lib/sharepoint_api/file_info.rb, line 36 def self.wrap(sharepoint_file) return nil unless sharepoint_file new(sharepoint_file) end
Public Instance Methods
list_item_id()
click to toggle source
# File lib/sharepoint_api/file_info.rb, line 49 def list_item_id @list_item_id ||= file.list_item_all_fields.id end
to_h()
click to toggle source
# File lib/sharepoint_api/file_info.rb, line 79 def to_h { version: version, version_id: version_id, name: name, list_item_id: list_item_id } end
versions()
click to toggle source
# File lib/sharepoint_api/file_info.rb, line 53 def versions return @all_versions if @all_versions @all_versions = [] @all_versions << make_version_object( version_id, created_at: updated_at, current: true, creator_login: safe_modified_by(file)&.login_name ) return @all_versions unless version > 1 @all_versions += file.versions.map do |file_version| make_version_object( file_version.id, created_at: Time.parse(file_version.created), current: file_version.is_current_version, creator_login: safe_created_by(file_version)&.login_name ) end @all_versions = @all_versions.sort_by(&:number) end
Private Instance Methods
make_version_object(version_id, **attrs)
click to toggle source
# File lib/sharepoint_api/file_info.rb, line 87 def make_version_object(version_id, **attrs) OpenStruct.new( number: SharepointApi::VersionConverter.to_major(version_id), version_id: version_id, **attrs ) end
safe_created_by(file_version)
click to toggle source
# File lib/sharepoint_api/file_info.rb, line 103 def safe_created_by(file_version) return file_version.creator if file_version.data['CreatedBy']['__deferred'] return file_version.created_by if file_version.data['CreatedBy']['__metadata'] nil rescue Sharepoint::SPException => e return nil if e.message =~ /User cannot be found/ raise(FileInfoError, e.message) end
safe_modified_by(file)
click to toggle source
# File lib/sharepoint_api/file_info.rb, line 95 def safe_modified_by(file) file.modified_by rescue Sharepoint::SPException => e return nil if e.message =~ /User cannot be found/ raise(FileInfoError, e.message) end