Class: Tr8n::Tokens::DataTokenizer

Inherits:
Object
  • Object
show all
Defined in:
lib/tr8n/tokens/data_tokenizer.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(text, context = {}, opts = {}) ⇒ DataTokenizer

Returns a new instance of DataTokenizer.



55
56
57
58
59
60
61
# File 'lib/tr8n/tokens/data_tokenizer.rb', line 55

def initialize(text, context={}, opts={})
  self.text = text
  self.context = context
  self.opts = opts
  self.tokens = []
  tokenize
end

Instance Attribute Details

#contextObject

Returns the value of attribute context.



45
46
47
# File 'lib/tr8n/tokens/data_tokenizer.rb', line 45

def context
  @context
end

#optsObject

Returns the value of attribute opts.



45
46
47
# File 'lib/tr8n/tokens/data_tokenizer.rb', line 45

def opts
  @opts
end

#textObject

Returns the value of attribute text.



45
46
47
# File 'lib/tr8n/tokens/data_tokenizer.rb', line 45

def text
  @text
end

#tokensObject

Returns the value of attribute tokens.



45
46
47
# File 'lib/tr8n/tokens/data_tokenizer.rb', line 45

def tokens
  @tokens
end

Class Method Details

.required?(label) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/tr8n/tokens/data_tokenizer.rb', line 51

def self.required?(label)
  label.index("{")
end

.supported_tokensObject



47
48
49
# File 'lib/tr8n/tokens/data_tokenizer.rb', line 47

def self.supported_tokens
  [Tr8n::Tokens::Data, Tr8n::Tokens::Hidden, Tr8n::Tokens::Method, Tr8n::Tokens::Transform]
end

Instance Method Details

#substitute(language, options = {}) ⇒ Object



76
77
78
79
80
81
82
83
# File 'lib/tr8n/tokens/data_tokenizer.rb', line 76

def substitute(language, options = {})
  label = self.text
  tokens.each do |token|
    next unless token_allowed?(token)
    label = token.substitute(label, context, language, options)
  end
  label
end

#token_allowed?(token) ⇒ Boolean

Returns:

  • (Boolean)


71
72
73
74
# File 'lib/tr8n/tokens/data_tokenizer.rb', line 71

def token_allowed?(token)
  return true unless opts[:allowed_tokens]
  not opts[:allowed_tokens][token.name].nil?
end

#tokenizeObject



63
64
65
66
67
68
69
# File 'lib/tr8n/tokens/data_tokenizer.rb', line 63

def tokenize
  self.tokens = []
  self.class.supported_tokens.each do |klass|
    self.tokens << klass.parse(self.text)
  end
  self.tokens.flatten!.uniq!
end