class FactorioMods::Mod

Attributes

created_at[R]
current_user_rating[RW]
description[RW]
description_html[RW]
downloads_count[RW]
game_versions[RW]
github_path[R]
homepage[RW]
id[RW]
license_flags[R]
license_flags_raw[R]
license_name[RW]
license_url[RW]
media_files[R]
name[RW]
owner[RW]
ratings_count[RW]
releases[R]
summary[RW]
tags[R]
title[RW]
updated_at[R]
visits_count[RW]

Public Class Methods

new(data = {}) click to toggle source
# File lib/factorio_mods/mod.rb, line 91
def initialize(data = {})
  data.each do |k, v|
    send "#{k}=".to_sym, v if respond_to? "#{k}=".to_sym
  end
end

Public Instance Methods

created_at=(date) click to toggle source
# File lib/factorio_mods/mod.rb, line 105
def created_at=(date)
  @created_at = Time.parse date
end
first_media_file() click to toggle source
# File lib/factorio_mods/mod.rb, line 109
def first_media_file
  return media_files.first if media_files
  @first_media_file
end
first_media_file=(file) click to toggle source
# File lib/factorio_mods/mod.rb, line 114
def first_media_file=(file)
  @first_media_file = MediaFile.new file
end
github_path=(path) click to toggle source
# File lib/factorio_mods/mod.rb, line 127
def github_path=(path)
  @github_path = URI('https://github.com/' + path)
end
latest_release() click to toggle source
# File lib/factorio_mods/mod.rb, line 118
def latest_release
  return releases.max { |r| r.released_at.to_i } if releases
  @latest_release
end
latest_release=(release) click to toggle source
# File lib/factorio_mods/mod.rb, line 123
def latest_release=(release)
  @latest_release = Release.new release
end
license_flags=(flags) click to toggle source
# File lib/factorio_mods/mod.rb, line 131
def license_flags=(flags)
  @license_flags_raw = flags
  @license_flags = begin
    ret = []
    ret << :permit_commercial_use if flags & (1 << 0)
    ret << :permit_modification   if flags & (1 << 1)
    ret << :permit_distribution   if flags & (1 << 2)
    ret << :permit_patent_use     if flags & (1 << 3)
    ret << :permit_private_use    if flags & (1 << 4)

    ret << :must_disclose_source  if flags & (1 << 5)
    ret << :must_license_notice   if flags & (1 << 6)
    ret << :must_same_license     if flags & (1 << 7)
    ret << :must_state_changes    if flags & (1 << 8)

    ret << :cant_hold_liable      if flags & (1 << 9)
    ret << :cant_use_trademark    if flags & (1 << 10)
    ret
  end
end
media_files=(files) click to toggle source
# File lib/factorio_mods/mod.rb, line 152
def media_files=(files)
  @media_files = files.map { |file| MediaFile.new file }
end
releases=(releases) click to toggle source
# File lib/factorio_mods/mod.rb, line 156
def releases=(releases)
  @releases = releases.map { |release| Release.new release }
end
reload!() click to toggle source
# File lib/factorio_mods/mod.rb, line 97
def reload!
  data = FactorioMods::Api::ModPortal.raw_mod(name)
  data.each do |k, v|
    send "#{k}=".to_sym, v if respond_to? "#{k}=".to_sym
  end
  true
end
tags=(tags) click to toggle source
# File lib/factorio_mods/mod.rb, line 160
def tags=(tags)
  @tags = tags.map { |tag| Tag.new tag }
end
updated_at=(date) click to toggle source
# File lib/factorio_mods/mod.rb, line 164
def updated_at=(date)
  @updated_at = Time.parse date
end