Class: RevealCK::Config

Inherits:
OpenStruct
  • Object
show all
Defined in:
lib/reveal-ck/config.rb

Overview

A Config represents core configuration options within reveal-ck. It has defaults. It is mutable.

Constant Summary collapse

OPEN_GRAPH_PREFIX =
'og: http://ogp.me/ns# ' \
'fb: http://ogp.me/ns/fb# ' \
'article: http://ogp.me/ns/article#'.freeze

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



7
8
9
# File 'lib/reveal-ck/config.rb', line 7

def initialize
  super defaults
end

Instance Method Details

#core_defaultsObject



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/reveal-ck/config.rb', line 28

def core_defaults
  {
    'title' => 'Slides',
    'description' => '',
    'author' => '',
    'theme' => 'black',
    'transition' => 'default',
    'data' => {},
    'meta_properties' => {},
    'meta_names' => {},
    'head_prefix' => OPEN_GRAPH_PREFIX
  }
end

#defaultsObject



17
18
19
20
21
# File 'lib/reveal-ck/config.rb', line 17

def defaults
  [core_defaults,
   revealjs_config_defaults,
   filter_defaults].reduce({}) { |acc, elem| acc.merge(elem) }
end

#filter_defaultsObject



53
54
55
56
57
58
59
60
61
62
# File 'lib/reveal-ck/config.rb', line 53

def filter_defaults
  {
    'filters' => ['HTML::Pipeline::RevealCKEmojiFilter',
                  'HTML::Pipeline::MentionFilter',
                  'HTML::Pipeline::AutolinkFilter'],
    'asset_root' => 'https://github.githubassets.com/images/icons/',
    'base_url' => 'https://github.com',
    'requires' => []
  }
end

#merge!(hash) ⇒ Object



11
12
13
14
15
# File 'lib/reveal-ck/config.rb', line 11

def merge!(hash)
  hash.each_pair do |name, value|
    modifiable[new_ostruct_member(name)] = value
  end
end

#revealjs_config_defaultsObject



42
43
44
45
46
47
48
49
50
51
# File 'lib/reveal-ck/config.rb', line 42

def revealjs_config_defaults
  {
    'revealjs_config' => {
      'controls' => true,
      'progress' => true,
      'history' => true,
      'center' => true
    }
  }
end