-
Notifications
You must be signed in to change notification settings - Fork 115
/
options.rb
41 lines (35 loc) · 1.33 KB
/
options.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
require 'numbers_and_words/strategies/figures_converter/options/en'
require 'numbers_and_words/strategies/figures_converter/options/en-GB'
require 'numbers_and_words/strategies/figures_converter/options/es'
require 'numbers_and_words/strategies/figures_converter/options/hu'
require 'numbers_and_words/strategies/figures_converter/options/pt-BR'
require 'numbers_and_words/strategies/figures_converter/options/ru'
require 'numbers_and_words/strategies/figures_converter/options/ua'
require 'numbers_and_words/strategies/figures_converter/options/cs'
module NumbersAndWords
module Strategies
module FiguresConverter
module Options
class Proxy
attr_accessor :strategy, :options
def initialize(strategy, options)
@strategy = strategy
@options = options
end
def method_missing(method_name, *args, &block)
Object.const_get(proxy_class_name(method_name)).new self, args, block
rescue NameError
nil
end
private
def proxy_class_name(method_name)
"#{module_name}::#{I18n.language_class_name}::#{method_name.to_s.split('_').collect(&:capitalize).join}"
end
def module_name
self.class.name.split('::')[0..-2].join '::'
end
end
end
end
end
end