wire-framework 0.1.5.4 → 0.1.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/app.rb +1 -1
- data/lib/app/cache.rb +6 -6
- data/lib/app/db.rb +1 -2
- data/lib/app/file.rb +1 -2
- data/lib/app/login.rb +1 -1
- data/lib/app/render/document.rb +5 -6
- data/lib/app/render/editor.rb +6 -6
- data/lib/app/render/error.rb +4 -4
- data/lib/app/render/instant.rb +12 -12
- data/lib/app/render/page.rb +2 -3
- data/lib/app/render/partial.rb +17 -7
- data/lib/app/repo.rb +11 -11
- data/lib/app/repo/svn.rb +11 -17
- data/lib/closet.rb +12 -12
- data/lib/closet/context.rb +9 -7
- data/lib/closet/renderer.rb +6 -5
- data/lib/wire.rb +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: 1de513e0952b185809c295af2ad4626e6ab110c3
|
4
|
+
data.tar.gz: 852e93f18f3635ec0f9c2ab2d4b37e8ee8e71e93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b74027d84c68f4b4c8183e7fa5a6d33e7b44c7083cf522efef74d424806d9c87c1e2acbbf714b928867f97dc710dccd0bd28299cf056275787568cac080fcfac
|
7
|
+
data.tar.gz: 538320181f48a3f45b2dbc5c45beee80e94603855419235ece206f9ee40e6c4cb71217e79dec50b0e954df5b08d9bf47b3769a77b1a43b3d75957875646bacf9
|
data/lib/app.rb
CHANGED
@@ -38,7 +38,7 @@ module Wire
|
|
38
38
|
# Read all of the configs in './configs/apps'
|
39
39
|
# @return [void]
|
40
40
|
def self.read_configs
|
41
|
-
|
41
|
+
Wire::Config.read_config_dir('config/apps', method(:configure))
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
data/lib/app/cache.rb
CHANGED
@@ -19,12 +19,12 @@ require 'lmdb'
|
|
19
19
|
module Cache
|
20
20
|
module Memory
|
21
21
|
|
22
|
-
|
22
|
+
@@cache = {}
|
23
23
|
|
24
24
|
def self.update_cached(context)
|
25
25
|
uri = context.uri.join('/')
|
26
26
|
all = context.uri[0..2].join('/')
|
27
|
-
env =
|
27
|
+
env = @@cache[context.config['remote']]
|
28
28
|
db = env.database
|
29
29
|
if context.id
|
30
30
|
result = context.forward(:read)
|
@@ -55,7 +55,7 @@ module Cache
|
|
55
55
|
|
56
56
|
def self.get_cached(context)
|
57
57
|
uri = context.uri.join('/')
|
58
|
-
env =
|
58
|
+
env = @@cache[context.config['remote']]
|
59
59
|
db = env.database
|
60
60
|
result = nil
|
61
61
|
env.transaction do
|
@@ -66,7 +66,7 @@ module Cache
|
|
66
66
|
|
67
67
|
def self.purge_cached(context)
|
68
68
|
uri = context.uri.join('/')
|
69
|
-
env =
|
69
|
+
env = @@cache[context.config['remote']]
|
70
70
|
db = env.database
|
71
71
|
result = 200
|
72
72
|
env.transaction do
|
@@ -82,8 +82,8 @@ module Cache
|
|
82
82
|
def self.invoke(actions, context)
|
83
83
|
|
84
84
|
# Create Cache if not set up
|
85
|
-
unless
|
86
|
-
|
85
|
+
unless @@cache[context.config['remote']]
|
86
|
+
@@cache[context.config['remote']] = LMDB.new("/tmp/cache/#{context.config['remote']}", mapsize: 2**30)
|
87
87
|
end
|
88
88
|
|
89
89
|
case context.action
|
data/lib/app/db.rb
CHANGED
@@ -25,7 +25,7 @@ module DB
|
|
25
25
|
# @param [Hash] conf the existing configuration
|
26
26
|
# @return [Hash] post-processed configuration
|
27
27
|
def self.configure(conf)
|
28
|
-
conf['models'].each do |m,k|
|
28
|
+
conf['models'].each do |m, k|
|
29
29
|
conf['models'][m] = Object.const_get(k)
|
30
30
|
end
|
31
31
|
conf
|
@@ -79,7 +79,6 @@ module DB
|
|
79
79
|
else
|
80
80
|
begin
|
81
81
|
instance = model.create(context.json)
|
82
|
-
instance.save
|
83
82
|
if instance.modified?
|
84
83
|
200
|
85
84
|
else
|
data/lib/app/file.rb
CHANGED
@@ -25,8 +25,7 @@ module Static
|
|
25
25
|
# @return [Response] a listing, or status code
|
26
26
|
def self.do_read_all(context)
|
27
27
|
path = context.config['path']
|
28
|
-
if path
|
29
|
-
return 404 unless File.exists?(path)
|
28
|
+
if path and File.exists?(path)
|
30
29
|
if File.directory? path
|
31
30
|
Dir.entries(path).sort.to_s
|
32
31
|
else
|
data/lib/app/login.rb
CHANGED
@@ -23,7 +23,7 @@ module Login
|
|
23
23
|
# @param [Hash] context the context for this request
|
24
24
|
# @return [Response] a redirect message returning to the previous page
|
25
25
|
def self.invoke(actions, context)
|
26
|
-
[307, {
|
26
|
+
[307, {'Location' => context.referer.join('/')}, ['Login Redirect']]
|
27
27
|
end
|
28
28
|
|
29
29
|
end
|
data/lib/app/render/document.rb
CHANGED
@@ -27,14 +27,13 @@ module Render
|
|
27
27
|
def self.do_read(actions, context, specific)
|
28
28
|
response = context.forward(specific)
|
29
29
|
mime = response[1]['content-type']
|
30
|
-
|
31
|
-
renderer = $wire_renderers[mime]
|
30
|
+
renderer = context.closet.renderers[mime]
|
32
31
|
if renderer
|
33
32
|
template = renderer['partial']
|
34
|
-
template.render(self, {
|
35
|
-
|
36
|
-
|
37
|
-
|
33
|
+
template.render(self, {actions: actions,
|
34
|
+
context: context,
|
35
|
+
mime: mime,
|
36
|
+
response: response[2]})
|
38
37
|
else
|
39
38
|
response
|
40
39
|
end
|
data/lib/app/render/editor.rb
CHANGED
@@ -35,13 +35,13 @@ module Render
|
|
35
35
|
return [404, {}, 'EDITOR: Document type not set for new document']
|
36
36
|
end
|
37
37
|
#TODO: Fix lookup
|
38
|
-
template =
|
38
|
+
template = context.closet.editors[mime]
|
39
39
|
if template
|
40
|
-
template.render(self, {
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
template.render(self, {actions: actions,
|
41
|
+
resource: context.resource,
|
42
|
+
id: context.id,
|
43
|
+
mime: mime,
|
44
|
+
response: body})
|
45
45
|
else
|
46
46
|
body
|
47
47
|
end
|
data/lib/app/render/error.rb
CHANGED
@@ -24,7 +24,7 @@ module Render
|
|
24
24
|
# @return [Hash] post-processed configuration
|
25
25
|
def self.configure(conf)
|
26
26
|
conf['errors'].each do |k, v|
|
27
|
-
conf['errors'][k] = Tilt.new(v, 1, {
|
27
|
+
conf['errors'][k] = Tilt.new(v, 1, {ugly: true})
|
28
28
|
end
|
29
29
|
conf
|
30
30
|
end
|
@@ -34,9 +34,9 @@ module Render
|
|
34
34
|
if errors
|
35
35
|
template = errors[result[0]]
|
36
36
|
if template
|
37
|
-
result[2] = template.render(self, {
|
38
|
-
|
39
|
-
|
37
|
+
result[2] = template.render(self, {actions: actions,
|
38
|
+
context: context,
|
39
|
+
result: result})
|
40
40
|
end
|
41
41
|
end
|
42
42
|
result
|
data/lib/app/render/instant.rb
CHANGED
@@ -25,8 +25,8 @@ module Render
|
|
25
25
|
# @return [Response] a Rack Response triplet, or status code
|
26
26
|
def self.do_update(actions, context)
|
27
27
|
## Default to not found
|
28
|
-
message
|
29
|
-
status
|
28
|
+
message = ''
|
29
|
+
status = 404
|
30
30
|
if context.resource
|
31
31
|
body = context.body
|
32
32
|
if body
|
@@ -38,19 +38,19 @@ module Render
|
|
38
38
|
## Assume unsupported mime type
|
39
39
|
status = 415
|
40
40
|
message = 'INSTANT: Unsupported MIME Type'
|
41
|
-
renderer =
|
41
|
+
renderer = context.closet.renderers["#{context.resource}/#{context.id}"]
|
42
42
|
if renderer
|
43
|
-
template =
|
44
|
-
result = template.render(self, {
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
template = context.
|
43
|
+
template = context.closet.templates[renderer]
|
44
|
+
result = template.render(self, {actions: actions,
|
45
|
+
context: context,
|
46
|
+
mime: "#{context.resource}/#{context.id}",
|
47
|
+
response: body, })
|
48
|
+
name = context.config['template']
|
49
|
+
template = context.closet.templates[name]
|
50
50
|
if template
|
51
|
-
message = template[
|
51
|
+
message = template['file'].render(self, {actions: actions,
|
52
52
|
context: context,
|
53
|
-
content: result
|
53
|
+
content: result})
|
54
54
|
else
|
55
55
|
message = result
|
56
56
|
end
|
data/lib/app/render/page.rb
CHANGED
@@ -62,7 +62,7 @@ module Render
|
|
62
62
|
end
|
63
63
|
message = template['file'].render(self, hash)
|
64
64
|
if template['use_layout']
|
65
|
-
message = render_template(actions, context,
|
65
|
+
message = render_template(actions, context, context.closet.templates['layout'], message)
|
66
66
|
end
|
67
67
|
else
|
68
68
|
message = 'Invalid Template'
|
@@ -78,9 +78,8 @@ module Render
|
|
78
78
|
def self.do_read(actions, context, specific)
|
79
79
|
if context.resource
|
80
80
|
result = context.forward(specific)
|
81
|
-
#TODO: fix lookup
|
82
81
|
name = context.config['template']
|
83
|
-
template =
|
82
|
+
template = context.closet.templates[name]
|
84
83
|
if template
|
85
84
|
result[1]['Content-Type'] = 'text/html'
|
86
85
|
result[2] = render_template(actions, context, template, result[2])
|
data/lib/app/render/partial.rb
CHANGED
@@ -31,7 +31,6 @@ module Render
|
|
31
31
|
conf['resources'][k]['multiple'] = Tilt.new(v['multiple'], 1, {ugly: true})
|
32
32
|
conf['resources'][k]['single'] = Tilt.new(v['single'], 1, {ugly: true})
|
33
33
|
elsif v.is_a? String
|
34
|
-
#TODO: fix needless duplication
|
35
34
|
conf['resources'][k] = {'all' => Tilt.new(v, 1, {ugly: true})}
|
36
35
|
end
|
37
36
|
end
|
@@ -64,16 +63,22 @@ module Render
|
|
64
63
|
response: body}
|
65
64
|
if resource['extras']
|
66
65
|
resource['extras'].each do |k, v|
|
67
|
-
|
68
|
-
|
69
|
-
|
66
|
+
temp = RL.request(:get,
|
67
|
+
"http://#{context.config['remote'].split('/')[0]}/#{v}",
|
68
|
+
{remote_user: context.user}
|
70
69
|
)[2]
|
70
|
+
begin
|
71
|
+
hash[k.to_sym] = JSON.parse_clean(temp)
|
72
|
+
rescue
|
73
|
+
hash[k.to_sym] = temp
|
74
|
+
end
|
75
|
+
|
71
76
|
end
|
72
77
|
end
|
73
78
|
mime = 'text/html'
|
74
79
|
body = template.render(self, hash)
|
75
80
|
end
|
76
|
-
[200, {'Content-Type'
|
81
|
+
[200, {'Content-Type' => mime}, body]
|
77
82
|
end
|
78
83
|
|
79
84
|
# Read a Partial and render it to HTML
|
@@ -105,13 +110,18 @@ module Render
|
|
105
110
|
response: body}
|
106
111
|
if resource['extras']
|
107
112
|
resource['extras'].each do |k, v|
|
108
|
-
|
113
|
+
temp = RL.request(:get, "http://#{context.config['remote'].split('/')[0]}/#{v}")[2]
|
114
|
+
begin
|
115
|
+
hash[k.to_sym] = JSON.parse_clean(temp)
|
116
|
+
rescue
|
117
|
+
hash[k.to_sym] = temp
|
118
|
+
end
|
109
119
|
end
|
110
120
|
end
|
111
121
|
mime = 'text/html'
|
112
122
|
body = template.render(self, hash)
|
113
123
|
end
|
114
|
-
[200, {'Content-Type'
|
124
|
+
[200, {'Content-Type' => mime}, body]
|
115
125
|
end
|
116
126
|
|
117
127
|
# Proxy method used when routing
|
data/lib/app/repo.rb
CHANGED
@@ -26,7 +26,7 @@ module Repo
|
|
26
26
|
# @param [Hash] conf the raw configuration
|
27
27
|
# @return [Hash] post-processed configuration
|
28
28
|
def self.configure(conf)
|
29
|
-
conf['listing'] = Tilt.new(conf['listing'], 1, {
|
29
|
+
conf['listing'] = Tilt.new(conf['listing'], 1, {ugly: true})
|
30
30
|
conf
|
31
31
|
end
|
32
32
|
|
@@ -51,10 +51,10 @@ module Repo
|
|
51
51
|
# @param [Hash] context the context for this request
|
52
52
|
# @return [Response] the listing, or status code
|
53
53
|
def do_read_all(context)
|
54
|
-
mime
|
55
|
-
list
|
56
|
-
|
57
|
-
|
54
|
+
mime = 'text/html'
|
55
|
+
list = do_read_listing(context.config['web'],
|
56
|
+
context.config['repos'],
|
57
|
+
context.resource)
|
58
58
|
if list == 404
|
59
59
|
return 404
|
60
60
|
end
|
@@ -64,9 +64,9 @@ module Repo
|
|
64
64
|
resource: context.resource,
|
65
65
|
id: '',
|
66
66
|
referrer: context.referer)
|
67
|
-
headers = {
|
68
|
-
|
69
|
-
|
67
|
+
headers = {'Content-Type' => mime,
|
68
|
+
'Cache-Control' => 'public',
|
69
|
+
'Expires' => "#{(Time.now + 1000).utc}"}
|
70
70
|
[200, headers, [list]]
|
71
71
|
end
|
72
72
|
|
@@ -101,9 +101,9 @@ module Repo
|
|
101
101
|
end
|
102
102
|
mime = do_read_mime(rev, web, repos, path, id)
|
103
103
|
end
|
104
|
-
headers = {
|
105
|
-
|
106
|
-
|
104
|
+
headers = {'Content-Type' => mime,
|
105
|
+
'Cache-Control' => 'public',
|
106
|
+
'Expires' => "#{(Time.now + 1000).utc}"}
|
107
107
|
[200, headers, [body]]
|
108
108
|
end
|
109
109
|
|
data/lib/app/repo/svn.rb
CHANGED
@@ -18,30 +18,25 @@ require 'nori'
|
|
18
18
|
require 'fileutils'
|
19
19
|
require_relative '../repo'
|
20
20
|
|
21
|
-
# Force Nori to convert tag names to Symbols
|
22
|
-
$nori = Nori.new :convert_tags_to => lambda { |tag| tag.snakecase.to_sym }
|
23
|
-
|
24
21
|
module Repo
|
25
22
|
# Repo::SVN is a connector for svnserve
|
26
23
|
# @author Bryan T. Meyers
|
27
24
|
module SVN
|
28
25
|
extend Repo
|
29
26
|
|
27
|
+
# Force Nori to convert tag names to Symbols
|
28
|
+
@@nori = Nori.new :convert_tags_to => lambda { |tag| tag.snakecase.to_sym }
|
29
|
+
|
30
30
|
# Make a new SVN repo
|
31
31
|
# @param [String] path the path to the repositories
|
32
32
|
# @param [String] repo the new repo name
|
33
33
|
# @return [Integer] status code
|
34
34
|
def self.do_create_file(path, repo)
|
35
|
-
result = 200
|
36
35
|
`svnadmin create #{path}/#{repo}`
|
37
|
-
if $?.exitstatus != 0
|
38
|
-
return 500
|
39
|
-
end
|
40
|
-
|
41
36
|
if $?.exitstatus != 0
|
42
37
|
500
|
43
38
|
else
|
44
|
-
|
39
|
+
200
|
45
40
|
end
|
46
41
|
end
|
47
42
|
|
@@ -94,7 +89,7 @@ module Repo
|
|
94
89
|
unless $?.exitstatus == 0
|
95
90
|
return 404
|
96
91
|
end
|
97
|
-
list =
|
92
|
+
list = @@nori.parse(list)
|
98
93
|
list[:lists][:list][:entry]
|
99
94
|
end
|
100
95
|
|
@@ -119,7 +114,7 @@ module Repo
|
|
119
114
|
unless $?.exitstatus == 0
|
120
115
|
return 404
|
121
116
|
end
|
122
|
-
info =
|
117
|
+
info = @@nori.parse(info)
|
123
118
|
info[:info][:entry]
|
124
119
|
end
|
125
120
|
|
@@ -140,11 +135,10 @@ module Repo
|
|
140
135
|
else
|
141
136
|
mime = `svn propget #{options} -r #{rev} --xml svn:mime-type 'svn://localhost/#{repo}/#{web}/#{id}'`
|
142
137
|
end
|
143
|
-
|
144
138
|
unless $?.success?
|
145
139
|
return 500
|
146
140
|
end
|
147
|
-
mime =
|
141
|
+
mime = @@nori.parse(mime)
|
148
142
|
if mime[:properties].nil?
|
149
143
|
'application/octet-stream'
|
150
144
|
else
|
@@ -165,9 +159,9 @@ module Repo
|
|
165
159
|
def self.do_update_file(web, path, repo, id, content, message, mime, user)
|
166
160
|
options = "--username #{$environment[:repos_user]} --password #{$environment[:repos_password]}"
|
167
161
|
status = 500
|
168
|
-
id
|
162
|
+
id = id.split('/')
|
169
163
|
id.pop
|
170
|
-
id
|
164
|
+
id = id.join('/')
|
171
165
|
if web.nil?
|
172
166
|
repo_path = "/tmp/svn/#{repo}/#{id}"
|
173
167
|
else
|
@@ -180,9 +174,9 @@ module Repo
|
|
180
174
|
`svn checkout #{options} 'svn://localhost/#{repo}' '/tmp/svn/#{repo}'`
|
181
175
|
id = CGI.unescape(id)
|
182
176
|
if $?.exitstatus == 0
|
183
|
-
id
|
177
|
+
id = id.split('/')
|
184
178
|
id.pop
|
185
|
-
id
|
179
|
+
id = id.join('/')
|
186
180
|
if web.nil?
|
187
181
|
file_path = "/tmp/svn/#{repo}/#{id}"
|
188
182
|
else
|
data/lib/closet.rb
CHANGED
@@ -28,13 +28,15 @@ module Wire
|
|
28
28
|
class Closet
|
29
29
|
include Wire::Auth
|
30
30
|
|
31
|
+
attr_reader :apps, :editors, :renderers, :templates
|
32
|
+
|
31
33
|
# Create an empty Closet
|
32
34
|
# @return [Wire::Closet] the new closet
|
33
35
|
def initialize
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
36
|
+
@apps = {}
|
37
|
+
@editors = {}
|
38
|
+
@renderers = {}
|
39
|
+
@templates = {}
|
38
40
|
end
|
39
41
|
|
40
42
|
# Route a Request to the correct Wire::App
|
@@ -54,7 +56,7 @@ module Wire
|
|
54
56
|
# @return [Response] a Rack Response triplet, or status code
|
55
57
|
def call(env)
|
56
58
|
begin
|
57
|
-
context = Wire::Context.new(env)
|
59
|
+
context = Wire::Context.new(self, env)
|
58
60
|
response = route(context)
|
59
61
|
rescue Exception => e
|
60
62
|
$stderr.puts e.message
|
@@ -62,10 +64,8 @@ module Wire
|
|
62
64
|
response = [500, {}, e.message]
|
63
65
|
end
|
64
66
|
if response.is_a? Array
|
65
|
-
if response[2]
|
66
|
-
|
67
|
-
response[2] = [response[2]]
|
68
|
-
end
|
67
|
+
if response[2] and not response[2].is_a? Array
|
68
|
+
response[2] = [response[2]]
|
69
69
|
end
|
70
70
|
else
|
71
71
|
if response.is_a? Integer
|
@@ -86,8 +86,8 @@ module Wire
|
|
86
86
|
$stderr.puts 'Starting Up Wire...'
|
87
87
|
$stderr.puts 'Starting Apps...'
|
88
88
|
end
|
89
|
-
Wire::App.read_configs
|
90
|
-
Wire::Renderer.read_configs
|
89
|
+
@apps = Wire::App.read_configs
|
90
|
+
@editors, @renderers, @templates = Wire::Renderer.read_configs
|
91
91
|
if ENV['RACK_ENV'].eql? 'development'
|
92
92
|
closet.info
|
93
93
|
end
|
@@ -98,7 +98,7 @@ module Wire
|
|
98
98
|
# @return [void]
|
99
99
|
def info
|
100
100
|
$stderr.puts "Apps:\n"
|
101
|
-
|
101
|
+
@apps.each do |app, config|
|
102
102
|
$stderr.puts "\u{2502}"
|
103
103
|
$stderr.puts "\u{251c} Name: #{app}"
|
104
104
|
if config['auth_handler']
|
data/lib/closet/context.rb
CHANGED
@@ -49,9 +49,9 @@ module Wire
|
|
49
49
|
#@!attribute [r] verb
|
50
50
|
# @return [Symbol] the HTTP verb
|
51
51
|
|
52
|
-
attr_reader :action, :app, :body, :
|
53
|
-
:
|
54
|
-
:uri, :user, :verb
|
52
|
+
attr_reader :action, :app, :body, :closet, :config, :id,
|
53
|
+
:json, :query, :query_string, :rack_env,
|
54
|
+
:referer, :resource, :uri, :user, :verb
|
55
55
|
attr_writer :referer
|
56
56
|
|
57
57
|
# Maps HTTP verbs to actions
|
@@ -85,9 +85,11 @@ module Wire
|
|
85
85
|
end
|
86
86
|
|
87
87
|
# Builds a new Context
|
88
|
+
# @param [Closet] closet the Wire::Closet
|
88
89
|
# @param [Hash] env the Rack environment
|
89
90
|
# @return [Context] a new Context
|
90
|
-
def initialize(env)
|
91
|
+
def initialize(closet, env)
|
92
|
+
@closet = closet
|
91
93
|
@rack_env = update_session(env)
|
92
94
|
@user = env['rack.session']['user']
|
93
95
|
@verb = HTTP_VERBS[env['REQUEST_METHOD'].to_sym]
|
@@ -98,7 +100,7 @@ module Wire
|
|
98
100
|
else
|
99
101
|
@referer = ['http:', '', env['HTTP_HOST']].concat(@uri[1...@uri.length])
|
100
102
|
end
|
101
|
-
@config =
|
103
|
+
@config = @closet.apps[@uri[1]]
|
102
104
|
if @config
|
103
105
|
@app = @uri[1]
|
104
106
|
@resource = @uri[2]
|
@@ -134,8 +136,8 @@ module Wire
|
|
134
136
|
# @param [Symbol] method the action to use when forwarding
|
135
137
|
# @return [Response] a Rack Response triplet, or status code
|
136
138
|
def forward(method)
|
137
|
-
headers = {
|
138
|
-
|
139
|
+
headers = {referer: @referer.join('/'),
|
140
|
+
remote_user: @user}
|
139
141
|
verb = CONVERT[method]
|
140
142
|
uri = "http://#{@config['remote']}/#{@resource}"
|
141
143
|
if [:update, :read, :delete].include?(method)
|
data/lib/closet/renderer.rb
CHANGED
@@ -26,7 +26,7 @@ module Wire
|
|
26
26
|
# @param [Hash] conf the raw configuration
|
27
27
|
# @return [Hash] post-processed configuration
|
28
28
|
def self.configure_partial(conf)
|
29
|
-
conf['partial'] = Tilt.new(conf['partial'], 1, {
|
29
|
+
conf['partial'] = Tilt.new(conf['partial'], 1, {ugly: true})
|
30
30
|
conf
|
31
31
|
end
|
32
32
|
|
@@ -34,16 +34,17 @@ module Wire
|
|
34
34
|
# @param [Hash] conf the raw configuration
|
35
35
|
# @return [Hash] post-processed configuration
|
36
36
|
def self.configure_template(conf)
|
37
|
-
conf['file'] = Tilt.new(conf['file'], 1, {
|
37
|
+
conf['file'] = Tilt.new(conf['file'], 1, {ugly: true})
|
38
38
|
conf
|
39
39
|
end
|
40
40
|
|
41
41
|
# Read all of the configs in './configs/apps'
|
42
42
|
# @return [void]
|
43
43
|
def self.read_configs
|
44
|
-
|
45
|
-
|
46
|
-
|
44
|
+
editors = Wire::Config.read_config_dir('config/editors', method(:configure_template))
|
45
|
+
renderers = Wire::Config.read_config_dir('config/renderers', method(:configure_partial))
|
46
|
+
templates = Wire::Config.read_config_dir('config/templates', method(:configure_template))
|
47
|
+
[editors, renderers, templates]
|
47
48
|
end
|
48
49
|
end
|
49
50
|
end
|
data/lib/wire.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wire-framework
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.5.
|
4
|
+
version: 0.1.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryan T. Meyers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|