marfa 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/marfa/css_version.rb +1 -1
- data/lib/marfa/helpers/controller.rb +30 -30
- data/lib/marfa/helpers/email.rb +7 -9
- data/lib/marfa/version.rb +1 -1
- data/marfa.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1a41778eb844114cb830fe48aa4c3be812e263d
|
4
|
+
data.tar.gz: a60191698afc032ffcfa2bf242a52353c897744d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a54094bfc1431e0dd77016f45617fc9218f07d76c35d1ae6866e94ae3ada5d13e1a9572a6dd9dda3d74e9ff3ed0648ae320b70a117095d371b3bb093fec123e0
|
7
|
+
data.tar.gz: 6a56ad0267d509005b5a16f5c36b5f0ed3387199899019c0653012d5d5721bae8b734b3842729084df3b054936213512338eea9f2f2b0dd56f6bf08f060e581a
|
data/lib/marfa/css_version.rb
CHANGED
@@ -23,18 +23,18 @@ module Marfa
|
|
23
23
|
end
|
24
24
|
|
25
25
|
# Render page from cache, return html
|
26
|
-
# @param
|
27
|
-
# @param tags [Array] - tag list
|
28
|
-
# @param data [Hash] - options hash
|
26
|
+
# @param options [Hash] - options hash
|
29
27
|
# @example
|
30
|
-
# render_page('index', ['tag1', 'tag2'], {})
|
28
|
+
# render_page({ path: 'index', tags: ['tag1', 'tag2'], data: {} })
|
31
29
|
# @return [String] rendered content
|
32
|
-
def render_page(
|
33
|
-
|
34
|
-
return render_content(full_path, data) if cache_time == 0
|
30
|
+
def render_page(options)
|
31
|
+
cache_time = options[:cache_time] || Marfa.config.cache[:expiration_time]
|
35
32
|
|
36
|
-
|
37
|
-
|
33
|
+
full_path = 'pages/' + options[:path]
|
34
|
+
return render_content(full_path, options[:data]) if cache_time == 0
|
35
|
+
|
36
|
+
cache_key = Marfa.cache.create_key('page', options[:path], options[:tags])
|
37
|
+
render_cached_content(cache_key, full_path, options[:data])
|
38
38
|
end
|
39
39
|
|
40
40
|
# Render page from cache, store to cache, return html
|
@@ -48,40 +48,39 @@ module Marfa
|
|
48
48
|
def get_cached_content(kind, path, tags = [])
|
49
49
|
cache_key = Marfa.cache.create_key(kind, path, tags)
|
50
50
|
return Marfa.cache.get(cache_key) if Marfa.cache.exist?(cache_key)
|
51
|
+
nil
|
51
52
|
end
|
52
53
|
|
53
54
|
# Render block from cache, return html
|
54
|
-
# @param
|
55
|
-
# @param tags [Array] - tag list
|
56
|
-
# @param query [Hash] - query params
|
57
|
-
# @param class_name [String] - class name to block
|
55
|
+
# @param options [Hash] - options hash
|
58
56
|
# @example
|
59
|
-
# render_block('index/index', ['tag1', 'tag2'])
|
57
|
+
# render_block({ path: 'index/index', tags: ['tag1', 'tag2'] })
|
60
58
|
# @return [String] rendered block
|
61
|
-
def render_block(
|
59
|
+
def render_block(options)
|
62
60
|
# TODO: Improve caching with parameters
|
61
|
+
cache_time = options[:cache_time] || Marfa.config.cache[:expiration_time]
|
62
|
+
tags = options[:tags] || []
|
63
|
+
|
63
64
|
if cache_time > 0
|
64
|
-
content = get_cached_content('block', path, tags)
|
65
|
+
content = get_cached_content('block', options[:path], tags)
|
65
66
|
return content unless content.nil?
|
66
67
|
end
|
67
68
|
|
68
|
-
classname = class_name || (path.to_class_name + 'Block')
|
69
|
+
classname = options[:class_name] || (options[:path].to_class_name + 'Block')
|
69
70
|
return unless Object.const_defined?(classname)
|
70
71
|
|
71
72
|
attrs = {
|
72
73
|
user_data: @user_data || {},
|
73
|
-
query: query
|
74
|
+
query: options[:query] || {}
|
74
75
|
}
|
75
76
|
|
76
77
|
block = Object.const_get(classname).new
|
77
78
|
data = block.get_data(attrs)
|
78
|
-
|
79
|
-
|
80
|
-
full_path = Marfa.config.block_templates_path + '/' + path
|
79
|
+
full_path = Marfa.config.block_templates_path + '/' + options[:path]
|
81
80
|
|
82
81
|
return render_content(full_path, data) if cache_time == 0
|
83
82
|
|
84
|
-
cache_key = Marfa.cache.create_key('block', path, tags)
|
83
|
+
cache_key = Marfa.cache.create_key('block', options[:path], tags)
|
85
84
|
render_cached_content(cache_key, full_path, data)
|
86
85
|
end
|
87
86
|
|
@@ -114,18 +113,19 @@ module Marfa
|
|
114
113
|
end
|
115
114
|
|
116
115
|
# Get HTML from cache or render new
|
117
|
-
# @param
|
118
|
-
# @param tags [Array] - tag list
|
119
|
-
# @param data [Hash] - data to render
|
116
|
+
# @param options [Hash] - params
|
120
117
|
# @example
|
121
|
-
# get_html('index
|
118
|
+
# get_html({ path: 'index', tags: ['tag1', 'tag2'], data: {} })
|
122
119
|
# @return [String] HTML
|
123
|
-
def get_html(path, tags, data, cache_time = Marfa.config.cache[:expiration_time])
|
120
|
+
# def get_html(path, tags, data, cache_time = Marfa.config.cache[:expiration_time])
|
121
|
+
def get_html(options)
|
122
|
+
cache_time = options[:cache_time] || Marfa.config.cache[:expiration_time]
|
123
|
+
|
124
124
|
if cache_time > 0
|
125
|
-
html = get_cached_content('page', path, tags)
|
126
|
-
html = render_page(
|
125
|
+
html = get_cached_content('page', options[:path], options[:tags])
|
126
|
+
html = render_page(options) if html.nil?
|
127
127
|
else
|
128
|
-
html = render_page(
|
128
|
+
html = render_page(options)
|
129
129
|
end
|
130
130
|
html
|
131
131
|
end
|
data/lib/marfa/helpers/email.rb
CHANGED
@@ -7,25 +7,23 @@ module Marfa
|
|
7
7
|
# Provide helpers for Sinatra controllers
|
8
8
|
module Email
|
9
9
|
# Send email using mailbox config
|
10
|
-
# @param
|
11
|
-
# @param to [String] - email address to send
|
12
|
-
# @param subject [String] - email subject
|
13
|
-
# @param data [Hash] - data to render in template
|
14
|
-
# @param mailbox [Symbol] - mailbox config
|
10
|
+
# @param options [Hash] - params
|
15
11
|
# @example:
|
16
|
-
# send_email('mail', 'user@example.com', :admin, 'Hello', { title: 'Hello!' })
|
17
|
-
def send_email(
|
12
|
+
# send_email({ template: 'mail', to: 'user@example.com', mailbox: :admin, subject: 'Hello', data: { title: 'Hello!' } })
|
13
|
+
def send_email(options)
|
14
|
+
mailbox = options[:mailbox] || :default
|
15
|
+
|
18
16
|
config = Marfa.config.email[mailbox]
|
19
17
|
return if config.nil?
|
20
18
|
|
21
|
-
body = haml :"#{template}", locals: data, layout: false
|
19
|
+
body = haml :"#{options[:template]}", locals: options[:data], layout: false
|
22
20
|
|
23
21
|
Pony.options = {
|
24
22
|
via: :smtp,
|
25
23
|
via_options: config
|
26
24
|
}
|
27
25
|
|
28
|
-
Pony.mail(to: to, subject: subject, html_body: body)
|
26
|
+
Pony.mail(to: options[:to], subject: options[:subject], html_body: body)
|
29
27
|
end
|
30
28
|
end
|
31
29
|
end
|
data/lib/marfa/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Version constant
|
2
2
|
module Marfa
|
3
3
|
# The version constant for the current version of Marfa
|
4
|
-
VERSION = '0.
|
4
|
+
VERSION = '0.3.0' unless defined?(Marfa::VERSION)
|
5
5
|
|
6
6
|
# The current Marfa version.
|
7
7
|
# @return [String] The version number
|
data/marfa.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marfa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Krechetov
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-02-
|
13
|
+
date: 2017-02-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: haml
|