Class: SharingTags::Configuration

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

Defined Under Namespace

Classes: Error

Constant Summary collapse

NETWORKS =
%i( google facebook twitter )

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



12
13
14
# File 'lib/sharing_tags/configuration.rb', line 12

def initialize
  clear!
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *arguments, &block) ⇒ Object (private)



86
87
88
# File 'lib/sharing_tags/configuration.rb', line 86

def method_missing(method_name, *arguments, &block)
  current_context.send(method_name, *arguments, &block)
end

Instance Attribute Details

#asset_finderObject

Returns the value of attribute asset_finder.



7
8
9
# File 'lib/sharing_tags/configuration.rb', line 7

def asset_finder
  @asset_finder
end

#default_contextObject (readonly)

Returns the value of attribute default_context.



6
7
8
# File 'lib/sharing_tags/configuration.rb', line 6

def default_context
  @default_context
end

#running_contextObject

Returns the value of attribute running_context.



5
6
7
# File 'lib/sharing_tags/configuration.rb', line 5

def running_context
  @running_context
end

Instance Method Details

#clean_params!Object



61
62
63
# File 'lib/sharing_tags/configuration.rb', line 61

def clean_params!
  @params = nil
end

#clear!Object



39
40
41
42
43
44
45
# File 'lib/sharing_tags/configuration.rb', line 39

def clear!
  @contexts = {}
  @default_context = Context.new(:default, self)
  @current_context = nil
  @running_context = nil
  clean_params!
end

#clear_context!Object



65
66
67
# File 'lib/sharing_tags/configuration.rb', line 65

def clear_context!
  @current_context = nil
end

#context(name, &block) ⇒ Object



16
17
18
19
# File 'lib/sharing_tags/configuration.rb', line 16

def context(name, &block)
  fail "please define context block params" unless block_given?
  (@contexts[name] ||= Context.new(name, self)).instance_exec(&block)
end

#current_contextObject



57
58
59
# File 'lib/sharing_tags/configuration.rb', line 57

def current_context
  @current_context || default_context
end

#paramsObject



47
48
49
50
# File 'lib/sharing_tags/configuration.rb', line 47

def params
  # @params ||= fetch_params
  @params = fetch_params
end

#switch_context(name = nil, *args, &block) ⇒ Object Also known as: switch_context_to



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/sharing_tags/configuration.rb', line 21

def switch_context(name = nil, *args, &block)
  clean_params!
  prev_context = current_context
  prev_context_params = @current_context_params

  @current_context_params = args
  @current_context = name && @contexts[name] || default_context
  return unless block_given?

  result = block.call

  @current_context = prev_context
  @current_context_params = prev_context_params

  result
end

#within_context_params(running_context_instance) ⇒ Object



52
53
54
55
# File 'lib/sharing_tags/configuration.rb', line 52

def within_context_params(running_context_instance)
  @running_context = running_context_instance
  params
end