Module: Reader
- Included in:
- RW
- Defined in:
- lib/wonko_the_sane/new_format.rb
Instance Method Summary collapse
- #read_download(data, key) ⇒ Object
- #read_index(data) ⇒ Object
- #read_resource(data) ⇒ Object
- #read_version(data) ⇒ Object
- #read_version_index(data) ⇒ Object
Instance Method Details
#read_download(data, key) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/wonko_the_sane/new_format.rb', line 19 def read_download(data, key) if data[key.to_sym] data[key.to_sym].map { |dl| Download.from_json key, dl } else [] end end |
#read_index(data) ⇒ Object
75 76 77 |
# File 'lib/wonko_the_sane/new_format.rb', line 75 def read_index(data) data.with_indifferent_access end |
#read_resource(data) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/wonko_the_sane/new_format.rb', line 27 def read_resource(data) return if !data || !data.is_a?(Object) res = WonkoVersion::Resources.new res.traits = data[:'general.traits'] if data[:'general.traits'] res.folders = data[:'general.folders'] if data[:'general.folders'] res.launchMethod = data[:'general.launcher'] if data[:'general.launcher'] res.downloads = [] res.downloads << read_download(data, 'general.downloads') res.downloads << read_download(data, 'java.libraries') res.downloads << read_download(data, 'java.natives') res.downloads << read_download(data, 'mc.jarmods') res.downloads.flatten! res.mainClass = data[:'java.mainClass'] res.appletClass = data[:'mc.appletClass'] res.assets = data[:'mc.assets'] res.minecraftArguments = data[:'mc.arguments'] res.tweakers = data[:'mc.tweakers'] res.jarModTarget = data[:'mc.jarModTarget'] if data[:'mc.jarModTarget'] res end |
#read_version(data) ⇒ Object
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 |
# File 'lib/wonko_the_sane/new_format.rb', line 49 def read_version(data) data = data.with_indifferent_access file = WonkoVersion.new file.is_complete = true file.uid = data[:uid] file.version = data[:version] file.time = data[:time] file.type = data[:type] file.requires = data[:requires].map { |req| Referenced.new(req[:uid], req[:version]) } if data[:requires] data[:data].each do |group| rules = group[:rules] ? group[:rules] : [ImplicitRule.new(:allow)] if Rule.allowed_on_side(rules, :client) && Rule.allowed_on_side(rules, :server) file.common = read_resource group elsif Rule.allowed_on_side rules, :server file.server = read_resource group else file.client = read_resource group end end if data[:data] file end |
#read_version_index(data) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/wonko_the_sane/new_format.rb', line 2 def read_version_index(data) data = data.with_indifferent_access index = VersionIndex.new data[:uid] index.name = data[:name] data[:versions].each do |ver| v = WonkoVersion.new v.is_complete = false v.uid = data[:uid] v.version = ver[:version] v.type = ver[:type] v.time = ver[:time] index.versions << v end index end |