marfa 0.1.5 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/marfa/configuration.rb +6 -0
- data/lib/marfa/controllers/base_controller.rb +0 -2
- data/lib/marfa/file_templates.rb +58 -57
- data/lib/marfa/helpers/email.rb +32 -0
- data/lib/marfa/version.rb +1 -1
- data/lib/marfa.rb +1 -1
- data/marfa.gemspec +3 -2
- metadata +21 -7
- data/lib/marfa/helpers/javascript.rb +0 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a777d031578dcff7a85bf3264c509d21586551d9
|
4
|
+
data.tar.gz: b4690307d3915a21c4db20aa9035927fcd094d6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0dd578a7013bbd5f3b6b27204b73caa56ffde015c06f76f62fd6065db914c4adc3f7dfbd072f75ab1aabeeb7a877698cfc8486b5eb6fd44d34bd98d18c81138
|
7
|
+
data.tar.gz: e82ff2f99c26bfa94dbf1b5c6c4339554b250273e50b46642b1e26059923c559bcbd4bf0a5cf8b94124058bb193dfb292c0d981bd208f6d455503d02b2dc41cd
|
data/lib/marfa/configuration.rb
CHANGED
@@ -3,7 +3,6 @@ require 'rack/csrf'
|
|
3
3
|
require 'device_detector'
|
4
4
|
require 'marfa/helpers/controller'
|
5
5
|
require 'marfa/helpers/http/vary'
|
6
|
-
require 'marfa/helpers/javascript'
|
7
6
|
|
8
7
|
# Extending Marfa
|
9
8
|
module Marfa
|
@@ -24,7 +23,6 @@ module Marfa
|
|
24
23
|
# All methods defined below might be used in child controllers
|
25
24
|
helpers Marfa::Helpers::Controller
|
26
25
|
helpers Marfa::Helpers::HTTP::Vary
|
27
|
-
helpers Marfa::Helpers::Javascript
|
28
26
|
end
|
29
27
|
end
|
30
28
|
end
|
data/lib/marfa/file_templates.rb
CHANGED
@@ -14,63 +14,64 @@ module Marfa
|
|
14
14
|
def marfa_rb(project_path)
|
15
15
|
File.open("#{project_path}/config/marfa.rb", 'w') do |file|
|
16
16
|
file.puts "# Marfa configuration file
|
17
|
-
|
18
|
-
# Specifying API Server is needed
|
19
|
-
|
20
|
-
|
21
|
-
# Views path is needed
|
22
|
-
|
23
|
-
|
24
|
-
# Cache config
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
}
|
32
|
-
|
33
|
-
# Static files content path
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
# Public folder
|
39
|
-
|
40
|
-
|
41
|
-
# Static files cache
|
42
|
-
|
43
|
-
|
44
|
-
# CSRF Protection
|
45
|
-
|
46
|
-
|
47
|
-
# HTML Compression
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
}
|
68
|
-
|
69
|
-
# CSS Minifying
|
70
|
-
|
71
|
-
|
72
|
-
# JS Minifying
|
73
|
-
|
17
|
+
Marfa.configure do |cfg|
|
18
|
+
# Specifying API Server is needed
|
19
|
+
cfg.api_server = ''
|
20
|
+
|
21
|
+
# Views path is needed
|
22
|
+
cfg.views = File.expand_path('./app/views')
|
23
|
+
|
24
|
+
# Cache config
|
25
|
+
cfg.cache = {
|
26
|
+
enabled: false,
|
27
|
+
host: '',
|
28
|
+
port: 0,
|
29
|
+
db: 0,
|
30
|
+
expiration_time: 3600
|
31
|
+
}
|
32
|
+
|
33
|
+
# Static files content path
|
34
|
+
cfg.content_path = '/images/content/'
|
35
|
+
|
36
|
+
cfg.cache_styles = true
|
37
|
+
|
38
|
+
# Public folder
|
39
|
+
cfg.public_folder = File.expand_path('./static')
|
40
|
+
|
41
|
+
# Static files cache
|
42
|
+
cfg.static_cache_control = [:public, max_age: 2_592_000]
|
43
|
+
|
44
|
+
# CSRF Protection
|
45
|
+
cfg.csrf_enabled = false
|
46
|
+
|
47
|
+
# HTML Compression
|
48
|
+
cfg.html_compression_options = {
|
49
|
+
enabled: true,
|
50
|
+
remove_multi_spaces: true,
|
51
|
+
remove_comments: true,
|
52
|
+
remove_intertag_spaces: false,
|
53
|
+
remove_quotes: true,
|
54
|
+
compress_css: false,
|
55
|
+
compress_javascript: false,
|
56
|
+
simple_doctype: false,
|
57
|
+
remove_script_attributes: true,
|
58
|
+
remove_style_attributes: true,
|
59
|
+
remove_link_attributes: true,
|
60
|
+
remove_form_attributes: false,
|
61
|
+
remove_input_attributes: true,
|
62
|
+
remove_javascript_protocol: true,
|
63
|
+
remove_http_protocol: false,
|
64
|
+
remove_https_protocol: false,
|
65
|
+
preserve_line_breaks: false,
|
66
|
+
simple_boolean_attributes: true
|
67
|
+
}
|
68
|
+
|
69
|
+
# CSS Minifying
|
70
|
+
cfg.minify_css = true
|
71
|
+
|
72
|
+
# JS Minifying
|
73
|
+
cfg.minify_js = true
|
74
|
+
end
|
74
75
|
"
|
75
76
|
end
|
76
77
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'pony'
|
2
|
+
|
3
|
+
# Email adapter for Pony gem
|
4
|
+
module Marfa
|
5
|
+
# Extending Helpers
|
6
|
+
module Helpers
|
7
|
+
# Provide helpers for Sinatra controllers
|
8
|
+
module Email
|
9
|
+
# Send email using mailbox config
|
10
|
+
# @param template [String] - path to template file
|
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
|
15
|
+
# @example:
|
16
|
+
# send_email('mail', 'user@example.com', :admin, 'Hello', { title: 'Hello!' })
|
17
|
+
def send_email(template, to, mailbox = :default, subject = '', data = {})
|
18
|
+
config = Marfa.config.email[mailbox]
|
19
|
+
return if config.nil?
|
20
|
+
|
21
|
+
body = haml :"#{template}", locals: data, layout: false
|
22
|
+
|
23
|
+
Pony.options = {
|
24
|
+
via: :smtp,
|
25
|
+
via_options: config
|
26
|
+
}
|
27
|
+
|
28
|
+
Pony.mail(to: to, subject: subject, html_body: body)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
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.1.
|
4
|
+
VERSION = '0.1.8' unless defined?(Marfa::VERSION)
|
5
5
|
|
6
6
|
# The current Marfa version.
|
7
7
|
# @return [String] The version number
|
data/lib/marfa.rb
CHANGED
@@ -6,7 +6,7 @@ require 'marfa/helpers/controller'
|
|
6
6
|
require 'marfa/helpers/http/vary'
|
7
7
|
require 'marfa/helpers/scss'
|
8
8
|
require 'marfa/helpers/style'
|
9
|
-
require 'marfa/helpers/
|
9
|
+
require 'marfa/helpers/email'
|
10
10
|
require 'marfa/controllers'
|
11
11
|
require 'marfa/controllers/base_controller'
|
12
12
|
require 'marfa/controllers/css_controller'
|
data/marfa.gemspec
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = 'marfa'
|
6
|
-
s.version = '0.1.
|
6
|
+
s.version = '0.1.8'
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.date = Time.now.strftime('%Y-%m-%d')
|
9
9
|
s.summary = 'Little Sinatra-based framework'
|
@@ -32,5 +32,6 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.add_dependency('csso-rails', '~> 0.5.0')
|
33
33
|
s.add_dependency('yard')
|
34
34
|
s.add_dependency('yard-sinatra')
|
35
|
-
s.add_dependency('compass')
|
35
|
+
s.add_dependency('compass', '~> 1.0.3')
|
36
|
+
s.add_dependency('pony', '~> 1.11')
|
36
37
|
end
|
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.1.
|
4
|
+
version: 0.1.8
|
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-09 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: haml
|
@@ -240,16 +240,30 @@ dependencies:
|
|
240
240
|
name: compass
|
241
241
|
requirement: !ruby/object:Gem::Requirement
|
242
242
|
requirements:
|
243
|
-
- - "
|
243
|
+
- - "~>"
|
244
244
|
- !ruby/object:Gem::Version
|
245
|
-
version:
|
245
|
+
version: 1.0.3
|
246
246
|
type: :runtime
|
247
247
|
prerelease: false
|
248
248
|
version_requirements: !ruby/object:Gem::Requirement
|
249
249
|
requirements:
|
250
|
-
- - "
|
250
|
+
- - "~>"
|
251
251
|
- !ruby/object:Gem::Version
|
252
|
-
version:
|
252
|
+
version: 1.0.3
|
253
|
+
- !ruby/object:Gem::Dependency
|
254
|
+
name: pony
|
255
|
+
requirement: !ruby/object:Gem::Requirement
|
256
|
+
requirements:
|
257
|
+
- - "~>"
|
258
|
+
- !ruby/object:Gem::Version
|
259
|
+
version: '1.11'
|
260
|
+
type: :runtime
|
261
|
+
prerelease: false
|
262
|
+
version_requirements: !ruby/object:Gem::Requirement
|
263
|
+
requirements:
|
264
|
+
- - "~>"
|
265
|
+
- !ruby/object:Gem::Version
|
266
|
+
version: '1.11'
|
253
267
|
description: Little Sinatra-based framework
|
254
268
|
email: mvkrechetov@gmail.com
|
255
269
|
executables:
|
@@ -275,8 +289,8 @@ files:
|
|
275
289
|
- lib/marfa/file_templates.rb
|
276
290
|
- lib/marfa/helpers/classes/string.rb
|
277
291
|
- lib/marfa/helpers/controller.rb
|
292
|
+
- lib/marfa/helpers/email.rb
|
278
293
|
- lib/marfa/helpers/http/vary.rb
|
279
|
-
- lib/marfa/helpers/javascript.rb
|
280
294
|
- lib/marfa/helpers/sass_functions.rb
|
281
295
|
- lib/marfa/helpers/scss.rb
|
282
296
|
- lib/marfa/helpers/style.rb
|
@@ -1,46 +0,0 @@
|
|
1
|
-
require 'babel/transpiler'
|
2
|
-
require 'closure-compiler'
|
3
|
-
|
4
|
-
# TODO: Remove in v0.2
|
5
|
-
|
6
|
-
# Javascript
|
7
|
-
module Marfa
|
8
|
-
# Helpers for Javascript
|
9
|
-
module Helpers
|
10
|
-
# Javascript module
|
11
|
-
module Javascript
|
12
|
-
def js_transpile(path, is_plain_text = true)
|
13
|
-
path = File.read(path) unless is_plain_text
|
14
|
-
result = Babel::Transpiler.transform(path)
|
15
|
-
result['code']
|
16
|
-
end
|
17
|
-
|
18
|
-
# https://developers.google.com/closure/compiler/docs/compilation_levels
|
19
|
-
def js_import(path)
|
20
|
-
path = settings.views + path
|
21
|
-
|
22
|
-
closure = Closure::Compiler.new(
|
23
|
-
compilation_level: 'SIMPLE_OPTIMIZATIONS',
|
24
|
-
language_out: 'ES5_STRICT'
|
25
|
-
)
|
26
|
-
|
27
|
-
code = js_transpile(path, false)
|
28
|
-
code = closure.compile(code) if Marfa.config.minify_js
|
29
|
-
'<script>' + code + '</script>'
|
30
|
-
end
|
31
|
-
|
32
|
-
# https://developers.google.com/closure/compiler/docs/compilation_levels
|
33
|
-
def js_import_from_haml(path, data = {})
|
34
|
-
closure = Closure::Compiler.new(
|
35
|
-
compilation_level: 'SIMPLE_OPTIMIZATIONS',
|
36
|
-
language_out: 'ES5_STRICT'
|
37
|
-
)
|
38
|
-
|
39
|
-
template = haml :"#{path}", :layout => false, :locals => data
|
40
|
-
code = js_transpile(template)
|
41
|
-
code = closure.compile(code)
|
42
|
-
'<script>' + code + '</script>'
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|