Module: Vanity::Rails::Helpers
- Defined in:
- lib/vanity/frameworks/rails.rb
Overview
Introduces ab_test helper (controllers and views). Similar to the generic ab_test method, with the ability to capture content (applicable to views, see examples).
Instance Method Summary collapse
-
#ab_test(name, &block) ⇒ Object
This method returns one of the alternative values in the named A/B test.
-
#vanity_experiments ⇒ Object
Return a copy of the active experiments on a page.
- #vanity_h(text) ⇒ Object
- #vanity_html_safe(text) ⇒ Object
- #vanity_js ⇒ Object
- #vanity_simple_format(text, html_options = {}) ⇒ Object
-
#vanity_track_url_for(identity, metric, options = {}) ⇒ Object
Generate url with the identity of the current user and the metric to track on click.
-
#vanity_tracking_image(identity, metric, options = {}) ⇒ Object
Generate url with the fingerprint for the current Vanity experiment.
Instance Method Details
#ab_test(name, &block) ⇒ Object
This method returns one of the alternative values in the named A/B test.
221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 |
# File 'lib/vanity/frameworks/rails.rb', line 221 def ab_test(name, &block) current_request = respond_to?(:request) ? request : nil value = Vanity.ab_test(name, current_request) if block content = capture(value, &block) if defined?(block_called_from_erb?) && block_called_from_erb?(block) concat(content) else content end else value end end |
#vanity_experiments ⇒ Object
Return a copy of the active experiments on a page
291 292 293 294 295 296 297 298 299 |
# File 'lib/vanity/frameworks/rails.rb', line 291 def vanity_experiments edit_safe_experiments = {} Vanity.context.vanity_active_experiments.each do |name, alternative| edit_safe_experiments[name] = alternative.clone end edit_safe_experiments end |
#vanity_h(text) ⇒ Object
258 259 260 |
# File 'lib/vanity/frameworks/rails.rb', line 258 def vanity_h(text) h(text) end |
#vanity_html_safe(text) ⇒ Object
262 263 264 265 266 267 268 |
# File 'lib/vanity/frameworks/rails.rb', line 262 def vanity_html_safe(text) if text.respond_to?(:html_safe) text.html_safe else text end end |
#vanity_js ⇒ Object
249 250 251 252 253 254 255 256 |
# File 'lib/vanity/frameworks/rails.rb', line 249 def vanity_js return if Vanity.context.vanity_active_experiments.nil? || Vanity.context.vanity_active_experiments.empty? template = File.read(Vanity.template("_vanity.js.erb")) javascript_tag do ERB.new(template).result(binding) end end |
#vanity_simple_format(text, html_options = {}) ⇒ Object
270 271 272 |
# File 'lib/vanity/frameworks/rails.rb', line 270 def vanity_simple_format(text, = {}) vanity_html_safe(simple_format(text, )) end |
#vanity_track_url_for(identity, metric, options = {}) ⇒ Object
Generate url with the identity of the current user and the metric to track on click
238 239 240 241 |
# File 'lib/vanity/frameworks/rails.rb', line 238 def vanity_track_url_for(identity, metric, = {}) = .merge(_identity: identity, _track: metric) url_for() end |
#vanity_tracking_image(identity, metric, options = {}) ⇒ Object
Generate url with the fingerprint for the current Vanity experiment
244 245 246 247 |
# File 'lib/vanity/frameworks/rails.rb', line 244 def vanity_tracking_image(identity, metric, = {}) = .merge(controller: :vanity, action: :image, _identity: identity, _track: metric) image_tag(url_for(), width: "1px", height: "1px", alt: "") end |