Class: Swaf

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/swaf.rb,
lib/swaf/version.rb

Defined Under Namespace

Classes: ReplaceTargetNotFound, SwafError

Constant Summary collapse

VERSION =
[
	major = 0,
	minor = 1,
	patch = 1,
].join('.')

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSwaf

Returns a new instance of Swaf.



32
33
34
35
# File 'lib/swaf.rb', line 32

def initialize
	@dumper = SwfRuby::SwfDumper.new
	@tamperer = SwfRuby::SwfTamperer.new
end

Instance Attribute Details

#dumperObject (readonly)

Returns the value of attribute dumper.



27
28
29
# File 'lib/swaf.rb', line 27

def dumper
  @dumper
end

Class Method Details

.load(doc) ⇒ Object



15
16
17
18
# File 'lib/swaf.rb', line 15

def self.load(doc)
	(swaf = self.new).load!(doc)
	swaf
end

.load_file(filename) ⇒ Object



20
21
22
23
24
25
# File 'lib/swaf.rb', line 20

def self.load_file(filename)
	(swaf = self.new).load!(
		File.binread(filename)
	)
	swaf
end

Instance Method Details

#detect(id) ⇒ Object Also known as: find



41
42
43
44
45
# File 'lib/swaf.rb', line 41

def detect(id)
	if t = @dumper.tags.each_with_index.find {|t, i| t.character_id == id }
		@dumper.tags_addresses[t[1]]
	end
end

#load!(swf) ⇒ Object



37
38
39
# File 'lib/swaf.rb', line 37

def load!(swf)
	self.dumper.dump(swf)
end

#replace(params = {}) ⇒ Object



48
49
50
51
52
# File 'lib/swaf.rb', line 48

def replace(params={})
	self.class.load(@tamperer.replace(@dumper.swf, params.inject([]) {|targets, (k, v)|
		targets.concat([*make_target(k, v)])
	}))
end