vapid 0.1.0 → 0.1.1
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/vapid.rb +0 -4
- data/lib/vapid/cli.rb +1 -5
- data/lib/vapid/controllers/admin_controller.rb +18 -9
- data/lib/vapid/directive.rb +27 -12
- data/lib/vapid/directives/date.rb +31 -0
- data/lib/vapid/directives/group.rb +3 -3
- data/lib/vapid/directives/href.rb +5 -0
- data/lib/vapid/server.rb +1 -0
- data/lib/vapid/version.rb +1 -1
- data/vapid.gemspec +1 -2
- metadata +5 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 504471e3bef72a241996ded672149874d00f0eaf
|
4
|
+
data.tar.gz: 109650d32dbb7d98efb77346628f72168ad6ca4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed753ed4e16155ce5562d4059a09c61ad3f5fe9a3dc7658569e4b7e46c21b9e7809c2583d4dba9a14fb9aec1dc0b59465ea2dcbdc265a9e8da8ed15d91e6de0a
|
7
|
+
data.tar.gz: 7b177df1ded95804960165af8578b4213a17dbf63dfd5519b5c0ef62c881c109343efedf3f981dadde1063024ff457809d3d26aad1d6475e59dff2518861ace6
|
data/lib/vapid.rb
CHANGED
data/lib/vapid/cli.rb
CHANGED
@@ -38,11 +38,7 @@ module Vapid
|
|
38
38
|
def server(target = ".")
|
39
39
|
say "== The Vapid server is loading"
|
40
40
|
inside_target(target) do
|
41
|
-
Thread.
|
42
|
-
Thread.new do
|
43
|
-
Server.run! options
|
44
|
-
end
|
45
|
-
|
41
|
+
Thread.new { Server.run! options }
|
46
42
|
Guard.start guardfile_contents: GUARDFILE, watchdir: target, no_interactions: true
|
47
43
|
end
|
48
44
|
say "== The Vapid server is now shut down"
|
@@ -10,7 +10,7 @@ module Vapid
|
|
10
10
|
def vp_field(name, type, value = "")
|
11
11
|
@directive = Directives[type]
|
12
12
|
@name = name
|
13
|
-
@value = value
|
13
|
+
@value = @directive.new(name).send :deserialize_input, value
|
14
14
|
|
15
15
|
label(name) +
|
16
16
|
template.content_tag(:div) do
|
@@ -211,6 +211,12 @@ module Vapid
|
|
211
211
|
@group = current_group
|
212
212
|
@record = @group.records.build(params[:record])
|
213
213
|
|
214
|
+
# TODO: Externalize this into a function (see update method below)
|
215
|
+
params[:record]["content"].each do |key, val|
|
216
|
+
content_type = current_group.fields[key]
|
217
|
+
@record.content[key] = Directives[content_type].serialize_input(val)
|
218
|
+
end
|
219
|
+
|
214
220
|
if @record.save
|
215
221
|
flash[:success] = "Record created"
|
216
222
|
livereload
|
@@ -231,15 +237,18 @@ module Vapid
|
|
231
237
|
@group = current_group
|
232
238
|
@record = current_record
|
233
239
|
|
240
|
+
# TODO: Externalize this into a function (see create method above)
|
234
241
|
params[:record]["content"].each do |key, val|
|
235
|
-
if val.is_a?(Hash) && val[:tempfile]
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
end
|
242
|
-
|
242
|
+
# if val.is_a?(Hash) && val[:tempfile]
|
243
|
+
# FileUtils.mkdir_p(settings.project_uploads)
|
244
|
+
# File.open File.join(settings.project_uploads, val[:filename]), "wb" do |file|
|
245
|
+
# file.write val[:tempfile].read
|
246
|
+
# end
|
247
|
+
# val = "/uploads/#{val[:filename]}"
|
248
|
+
# end
|
249
|
+
|
250
|
+
content_type = current_group.fields[key]
|
251
|
+
@record.content[key] = Directives[content_type].serialize_input(val)
|
243
252
|
end
|
244
253
|
|
245
254
|
params[:_destroy] && params[:_destroy].each do |key, _val|
|
data/lib/vapid/directive.rb
CHANGED
@@ -39,6 +39,13 @@ module Vapid
|
|
39
39
|
destroy
|
40
40
|
end
|
41
41
|
|
42
|
+
# Serializes input before it's saved to the database
|
43
|
+
#
|
44
|
+
# @return [String]
|
45
|
+
def serialize_input(input)
|
46
|
+
input.to_s
|
47
|
+
end
|
48
|
+
|
42
49
|
private
|
43
50
|
|
44
51
|
attr_accessor :filters, :preview, :destroy
|
@@ -63,14 +70,26 @@ module Vapid
|
|
63
70
|
@filters[name] = block
|
64
71
|
end
|
65
72
|
|
66
|
-
def
|
67
|
-
|
73
|
+
def deserialize(&block)
|
74
|
+
instance_eval do
|
75
|
+
define_method :deserialize_input do |input|
|
76
|
+
instance_exec input, &block
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def serialize(&block)
|
82
|
+
(class << self; self; end).instance_eval do
|
83
|
+
define_method :serialize_input do |input|
|
84
|
+
block.call input
|
85
|
+
end
|
86
|
+
end
|
68
87
|
end
|
69
88
|
|
70
89
|
def inherited(subclass)
|
71
90
|
# Auto-register directives
|
72
91
|
# @todo Shouldn't do this
|
73
|
-
Vapid.
|
92
|
+
Vapid::Directives.register subclass.name.split("::").last.downcase, subclass
|
74
93
|
end
|
75
94
|
|
76
95
|
def define_input_modifier(name, &block)
|
@@ -94,11 +113,8 @@ module Vapid
|
|
94
113
|
# @return [Object] a Nokogiri-friendly hash of modifiers,
|
95
114
|
# or the original input value
|
96
115
|
def render(input = nil)
|
97
|
-
@input = input
|
98
|
-
|
99
|
-
run_before_callback
|
116
|
+
@input = deserialize_input(input)
|
100
117
|
apply_filters
|
101
|
-
|
102
118
|
render_all
|
103
119
|
end
|
104
120
|
|
@@ -121,11 +137,6 @@ module Vapid
|
|
121
137
|
}.reject { |_k, v| v.blank? }
|
122
138
|
end
|
123
139
|
|
124
|
-
def run_before_callback
|
125
|
-
return unless respond_to?(:callback_before_render, true)
|
126
|
-
@input = callback_before_render
|
127
|
-
end
|
128
|
-
|
129
140
|
def apply_filters
|
130
141
|
@input = @args.reduce(@input) do |input, (name, args)|
|
131
142
|
begin
|
@@ -137,6 +148,10 @@ module Vapid
|
|
137
148
|
end
|
138
149
|
end
|
139
150
|
|
151
|
+
def deserialize_input(input)
|
152
|
+
input
|
153
|
+
end
|
154
|
+
|
140
155
|
def parse_expression(expression)
|
141
156
|
parts = expression.split("|")
|
142
157
|
@subject = parts.shift
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Vapid
|
2
|
+
module Directives
|
3
|
+
# Date directive
|
4
|
+
class Date < Vapid::Directive
|
5
|
+
DEFAULT_FORMAT = "%D"
|
6
|
+
|
7
|
+
serialize do |input|
|
8
|
+
::Date.parse(input).to_time.to_i
|
9
|
+
end
|
10
|
+
|
11
|
+
deserialize do |input|
|
12
|
+
::Time.at(input).to_date unless input.blank?
|
13
|
+
end
|
14
|
+
|
15
|
+
# Render
|
16
|
+
renders :text do |input|
|
17
|
+
input.strftime(@format || DEFAULT_FORMAT) unless input.blank?
|
18
|
+
end
|
19
|
+
|
20
|
+
filter :format do |input, fmt|
|
21
|
+
@format = fmt
|
22
|
+
input
|
23
|
+
end
|
24
|
+
|
25
|
+
# Form
|
26
|
+
form do |name, value|
|
27
|
+
date_field_tag name, value: value
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -6,7 +6,7 @@ module Vapid
|
|
6
6
|
|
7
7
|
renders :all
|
8
8
|
|
9
|
-
|
9
|
+
deserialize do |_input|
|
10
10
|
Models::Group.named(subject).try(:records)
|
11
11
|
end
|
12
12
|
|
@@ -22,7 +22,7 @@ module Vapid
|
|
22
22
|
fields, desc_indexes = parse_conditions(args)
|
23
23
|
values = fetch_values(query, fields)
|
24
24
|
sorted_values = sort_values(values, desc_indexes)
|
25
|
-
statement = sorted_values.map { |v| "ID
|
25
|
+
statement = sorted_values.map { |v| "ID='#{v[0]}' DESC" }.join(", ")
|
26
26
|
|
27
27
|
query.order(statement)
|
28
28
|
end
|
@@ -62,7 +62,7 @@ module Vapid
|
|
62
62
|
x[i] = y[i]
|
63
63
|
y[i] = orig
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
x <=> y
|
67
67
|
end
|
68
68
|
end
|
data/lib/vapid/server.rb
CHANGED
data/lib/vapid/version.rb
CHANGED
data/vapid.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.add_dependency "thor", "~> 0.
|
23
|
+
spec.add_dependency "thor", "~> 0.20"
|
24
24
|
spec.add_dependency "sinatra", "~> 2.0"
|
25
25
|
spec.add_dependency "sinatra-contrib", "~> 2.0"
|
26
26
|
spec.add_dependency "sinatra-activerecord", "~> 2.0"
|
@@ -33,7 +33,6 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_dependency "nokogiri", "~> 1.7"
|
34
34
|
spec.add_dependency "nokogiri-styles", "~> 0.1"
|
35
35
|
spec.add_dependency "bcrypt", "~> 3.1"
|
36
|
-
spec.add_dependency "super_token", "~> 1.0"
|
37
36
|
spec.add_dependency "loofah", "~> 2.0"
|
38
37
|
spec.add_dependency "rake", "~> 11.3"
|
39
38
|
spec.add_dependency "rack-livereload", "~> 0.3"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vapid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Robbin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.20'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.20'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sinatra
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,20 +192,6 @@ dependencies:
|
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '3.1'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: super_token
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - "~>"
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '1.0'
|
202
|
-
type: :runtime
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - "~>"
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: '1.0'
|
209
195
|
- !ruby/object:Gem::Dependency
|
210
196
|
name: loofah
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -378,6 +364,7 @@ files:
|
|
378
364
|
- lib/vapid/directive.rb
|
379
365
|
- lib/vapid/directives.rb
|
380
366
|
- lib/vapid/directives/audio.rb
|
367
|
+
- lib/vapid/directives/date.rb
|
381
368
|
- lib/vapid/directives/group.rb
|
382
369
|
- lib/vapid/directives/hide.rb
|
383
370
|
- lib/vapid/directives/href.rb
|