lib/yandex-metrika/counter.rb in yandex-metrika-rails-0.0.1 vs lib/yandex-metrika/counter.rb in yandex-metrika-rails-0.1.1
- old
+ new
@@ -7,17 +7,18 @@
autoload :Kind, 'yandex-metrika/counter/kind'
autoload :Renderer, 'yandex-metrika/counter/renderer'
autoload :TemplateOptions, 'yandex-metrika/counter/template_options'
def initialize(args = {})
- @counter_types ||= []
+ @options_types ||= []
prepare_view_options(args)
append_counter_types(args)
- @options_renderer = YandexMetrika::Counter::Renderer.new(@counter_types)
+ @options_renderer = YandexMetrika::Counter::Renderer.new(@options_types)
end
def to_s
+ return if YM.invalid_counter?
template_name = @async ? "async" : "sync"
@template ||= ::ERB.new ::File.read ::File.expand_path("../templates/#{template_name}.erb", __FILE__)
@template.result(template_options.instance_eval { binding }).html_safe
end
alias_method :render, :to_s
@@ -31,16 +32,19 @@
})
end
def prepare_view_options(args)
@local = args.delete(:local) || false
- @async = args.delete(:async) || true
+ @async = true
+ @async = args.delete(:async) if args.include? :async
@noscript = args.delete(:noscript) || true
end
def append_counter_types(args = {})
+ args = YM.options.merge(args)
+ @options_types << Kind.new(:id, YM.counter)
args.each do |k,v|
- @counter_types << Kind.new(k,v)
+ @options_types << Kind.new(k,v)
end
end
end
end