Class: Kotodama::Type

Inherits:
Object
  • Object
show all
Defined in:
lib/type.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(language) ⇒ Type

Returns a new instance of Type.



5
6
7
8
9
# File 'lib/type.rb', line 5

def initialize language
	@language = language
	@symbols = []
	@weights = []
end

Instance Attribute Details

#languageObject (readonly)

Returns the value of attribute language.



3
4
5
# File 'lib/type.rb', line 3

def language
  @language
end

#symbolsObject (readonly)

Returns the value of attribute symbols.



3
4
5
# File 'lib/type.rb', line 3

def symbols
  @symbols
end

#weightsObject (readonly)

Returns the value of attribute weights.



3
4
5
# File 'lib/type.rb', line 3

def weights
  @weights
end

Instance Method Details

#add(symbol, weight) ⇒ Object



11
12
13
14
# File 'lib/type.rb', line 11

def add symbol, weight
	@symbols << symbol
	@weights << weight
end

#generateObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/type.rb', line 20

def generate
	temp_weights = []
	@symbols.length.times do |i|
		if @weights[i]
			temp_weights << @weights[i]
		elsif @language.zipf[@symbols[i]]
			temp_weights << @language.zipf[@symbols[i]]
		elsif @language.options['$symbol_weight']
			temp_weights << @language.options['$symbol_weight']
		else
			temp_weights << 1
		end
	end
	@symbols.random temp_weights
end

#member?(symbol) ⇒ Boolean

Returns:

  • (Boolean)


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

def member? symbol
	@symbols.member? symbol
end