wagn 1.16.4 → 1.16.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/wagn/commands.rb +2 -3
- data/lib/wagn/generators/wagn/wagn_generator.rb +8 -0
- data/lib/wagn/tasks/test.rake +14 -42
- data/lib/wagn/tasks/wagn.rake +7 -6
- data/rails/controllers/card_controller.rb +30 -66
- data/spec/controllers/card_controller_spec.rb +28 -6
- data/spec/controllers/location_spec.rb +11 -32
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c07eb758befe1e7d6b8faf991be470719b28a635
|
4
|
+
data.tar.gz: 630f8cfff554b2613a3f1de298e635244b690c6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd70f04d06d46e0ee24dfd1f9dfb0d9f01ebcf65fc9d2d0385b5fdecae05fe46ddc652d53c8bd3c06227cb8e1d0ced3eac4078378f630e96ee840353a01cf115
|
7
|
+
data.tar.gz: 9fab68ab8e304d554a5decc9186425a76b35e0f7f6cdbe9c470c02e036e7a8e2db3d451bf5d0461026dd5684b49120936d1d7c0e9712d245908cb3582abdd5b9
|
data/lib/wagn/commands.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'optparse'
|
2
|
-
require 'active_support/core_ext/object/inclusion' # adds method in? to Object class
|
2
|
+
require 'active_support/core_ext/object/inclusion' # adds method in? to Object class
|
3
3
|
|
4
4
|
def load_rake_tasks
|
5
5
|
require './config/environment'
|
@@ -158,8 +158,7 @@ WAGN
|
|
158
158
|
rspec_args.shift
|
159
159
|
|
160
160
|
parser.parse!(wagn_args)
|
161
|
-
|
162
|
-
rspec_command = "RAILS_ROOT=. #{opts[:simplecov]} #{opts[:executer]} #{opts[:rescue]} rspec #{rspec_args*' '} #{opts[:files]} 2>&1"
|
161
|
+
rspec_command = "RAILS_ROOT=. #{opts[:simplecov]} #{opts[:executer]} #{opts[:rescue]} rspec #{rspec_args*' '} #{opts[:files]} 2>&1"
|
163
162
|
unless system rspec_command
|
164
163
|
exit $?.exitstatus
|
165
164
|
end
|
@@ -220,6 +220,14 @@ class WagnGenerator < Rails::Generators::AppBase
|
|
220
220
|
end
|
221
221
|
end
|
222
222
|
|
223
|
+
def database_gemfile_entry
|
224
|
+
return [] if options[:skip_active_record]
|
225
|
+
gem_name = gem_for_database
|
226
|
+
gem_version = gem_name == 'mysql2' ? '0.3.20' : nil
|
227
|
+
GemfileEntry.version gem_name, gem_version,
|
228
|
+
"Use #{options[:database]} as the database for Active Record"
|
229
|
+
end
|
230
|
+
|
223
231
|
protected
|
224
232
|
def self.banner
|
225
233
|
"wagn new #{self.arguments.map(&:usage).join(' ')} [options]"
|
data/lib/wagn/tasks/test.rake
CHANGED
@@ -1,14 +1,4 @@
|
|
1
|
-
|
2
|
-
y = YAML.load_file("#{Wagn.root}/config/database.yml")
|
3
|
-
y["development"]["database"] = db if y["development"]
|
4
|
-
y["production"]["database"] = db if y["production"]
|
5
|
-
|
6
|
-
File.open( "#{Wagn.root}/config/database.yml", 'w' ) do |out|
|
7
|
-
YAML.dump( y, out )
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
|
1
|
+
TEST_SEED_PATH = ENV['DECKO_SEED_REPO_PATH']
|
12
2
|
|
13
3
|
namespace :test do
|
14
4
|
task :all => :environment do
|
@@ -27,44 +17,25 @@ namespace :test do
|
|
27
17
|
## setting it by hand after fixture generation.
|
28
18
|
desc "recreate test fixtures from fresh db"
|
29
19
|
task :generate_fixtures => :environment do
|
30
|
-
|
31
|
-
|
32
|
-
# but we need development to get the right schema dumped.
|
33
|
-
ENV['RAILS_ENV'] = 'development'
|
34
|
-
|
35
|
-
abcs = ActiveRecord::Base.configurations
|
36
|
-
config = ENV['RAILS_ENV'] || 'development'
|
37
|
-
olddb = abcs[config]["database"]
|
38
|
-
abcs[config]["database"] = "wagn_test_template"
|
20
|
+
ENV['GENERATE_FIXTURES'] = 'true'
|
21
|
+
raise "must be test env" unless Rails.env == 'test'
|
39
22
|
|
40
|
-
|
41
|
-
begin
|
42
|
-
# assume we have a good database, ie. just migrated dev db.
|
43
|
-
puts "setting database to wagn_test_template"
|
44
|
-
set_database 'wagn_test_template'
|
45
|
-
Rake::Task['wagn:seed'].invoke
|
23
|
+
Rake::Task['wagn:reset_cache']
|
46
24
|
|
47
|
-
|
48
|
-
|
49
|
-
# need to start rails over to get things going again I tried ActiveRecord::Base.reset_subclasses etc. to no avail. -LWH
|
50
|
-
puts ">>populating test data"
|
51
|
-
puts `rake test:populate_template_database --trace`
|
52
|
-
puts ">>extracting to fixtures"
|
53
|
-
puts `rake test:extract_fixtures --trace`
|
54
|
-
ensure
|
55
|
-
set_database olddb
|
56
|
-
end
|
57
|
-
# go ahead and load the fixtures into the test database
|
58
|
-
puts ">> preparing test database"
|
59
|
-
puts `env RELOAD_TEST_DATA=true rake db:test:prepare --trace`
|
25
|
+
puts "reseed test db"
|
26
|
+
Rake::Task['wagn:seed'].invoke
|
60
27
|
|
61
|
-
|
28
|
+
puts ">>populating test data"
|
29
|
+
puts `rake test:populate_template_database --trace`
|
62
30
|
|
31
|
+
puts ">>extracting to fixtures"
|
32
|
+
puts `rake test:extract_fixtures --trace`
|
63
33
|
end
|
64
34
|
|
65
35
|
|
66
36
|
desc "dump current db to test fixtures"
|
67
37
|
task :extract_fixtures => :environment do
|
38
|
+
raise "must be test env" unless Rails.env == 'test'
|
68
39
|
if RUBY_VERSION !~ /^(2|1\.9)/
|
69
40
|
YAML::ENGINE.yamler = 'syck'
|
70
41
|
end
|
@@ -76,7 +47,7 @@ namespace :test do
|
|
76
47
|
ActiveRecord::Base.establish_connection
|
77
48
|
tables.each do |table_name|
|
78
49
|
i = "000"
|
79
|
-
File.open("#{
|
50
|
+
File.open("#{ TEST_SEED_PATH }/test/fixtures/#{table_name}.yml", 'w') do |file|
|
80
51
|
data = ActiveRecord::Base.connection.select_all(sql % table_name)
|
81
52
|
file.write data.inject({}) { |hash, record|
|
82
53
|
record['trash'] = false if record.has_key? 'trash'
|
@@ -90,8 +61,9 @@ namespace :test do
|
|
90
61
|
|
91
62
|
desc "create sample data for testing"
|
92
63
|
task :populate_template_database => :environment do
|
64
|
+
raise "must be test env" unless Rails.env == 'test'
|
93
65
|
puts "populate test data\n"
|
94
|
-
load "#{
|
66
|
+
load "#{ TEST_SEED_PATH }/test/seed.rb"
|
95
67
|
SharedData.add_test_data
|
96
68
|
end
|
97
69
|
|
data/lib/wagn/tasks/wagn.rake
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
|
2
1
|
require 'wagn/application'
|
3
2
|
|
4
3
|
WAGN_SEED_TABLES = %w{ cards card_actions card_acts card_changes card_references }
|
5
|
-
WAGN_SEED_PATH =
|
4
|
+
WAGN_SEED_PATH = "#{ ENV['DECKO_SEED_REPO_PATH'] }/new"
|
5
|
+
|
6
6
|
|
7
7
|
def prepare_migration
|
8
8
|
Card::Cache.reset_global
|
@@ -16,7 +16,6 @@ namespace :wagn do
|
|
16
16
|
desc "create a wagn database from scratch, load initial data"
|
17
17
|
task :seed do
|
18
18
|
ENV['SCHEMA'] ||= "#{Cardio.gem_root}/db/schema.rb"
|
19
|
-
|
20
19
|
puts "dropping"
|
21
20
|
#fixme - this should be an option, but should not happen on standard creates!
|
22
21
|
begin
|
@@ -59,7 +58,7 @@ namespace :wagn do
|
|
59
58
|
puts "update card_migrations"
|
60
59
|
Rake::Task['wagn:assume_card_migrations'].invoke
|
61
60
|
|
62
|
-
if Rails.env == 'test'
|
61
|
+
if Rails.env == 'test' && !ENV['GENERATE_FIXTURES']
|
63
62
|
puts "loading test fixtures"
|
64
63
|
Rake::Task['db:fixtures:load'].invoke
|
65
64
|
else
|
@@ -288,6 +287,7 @@ namespace :wagn do
|
|
288
287
|
task :dump => :environment do
|
289
288
|
Card::Cache.reset_global
|
290
289
|
|
290
|
+
# FIXME temporarily taking this out!!
|
291
291
|
Rake::Task['wagn:bootstrap:copy_mod_files'].invoke
|
292
292
|
|
293
293
|
if RUBY_VERSION !~ /^(2|1\.9)/
|
@@ -345,8 +345,9 @@ namespace :wagn do
|
|
345
345
|
card = Card.fetch card.name
|
346
346
|
|
347
347
|
target_dir = card.store_dir
|
348
|
-
|
349
|
-
FileUtils.
|
348
|
+
|
349
|
+
#FileUtils.remove_dir target_dir, force=true if Dir.exists? target_dir
|
350
|
+
#FileUtils.mkdir_p target_dir
|
350
351
|
|
351
352
|
files.each do |version, path|
|
352
353
|
FileUtils.cp path, card.attachment.path(version)
|
@@ -7,27 +7,17 @@ require_dependency 'card/mailer' #otherwise Net::SMTPError rescues can cause pr
|
|
7
7
|
|
8
8
|
class CardController < ActionController::Base
|
9
9
|
|
10
|
-
include Card::
|
11
|
-
include Card::HtmlFormat::Location
|
10
|
+
include Card::Location
|
12
11
|
include Recaptcha::Verify
|
13
12
|
|
14
|
-
before_filter :start_performance_logger
|
15
|
-
after_filter :stop_performance_logger
|
16
|
-
after_filter :request_logger if Wagn.config.request_logger
|
17
|
-
|
18
13
|
before_filter :per_request_setup, :except => [:asset]
|
19
14
|
before_filter :load_id, :only => [ :read ]
|
20
15
|
before_filter :load_card, :except => [:asset]
|
21
16
|
before_filter :refresh_card, :only=> [ :create, :update, :delete, :rollback ]
|
22
|
-
before_filter :init_success_object, :only => [ :create, :update, :delete ]
|
23
|
-
|
24
|
-
|
25
17
|
|
26
18
|
layout nil
|
27
19
|
|
28
20
|
attr_reader :card
|
29
|
-
attr_accessor :success
|
30
|
-
|
31
21
|
|
32
22
|
|
33
23
|
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
@@ -38,7 +28,6 @@ class CardController < ActionController::Base
|
|
38
28
|
end
|
39
29
|
|
40
30
|
def read
|
41
|
-
save_location # should be an event!
|
42
31
|
show
|
43
32
|
end
|
44
33
|
|
@@ -47,16 +36,14 @@ class CardController < ActionController::Base
|
|
47
36
|
end
|
48
37
|
|
49
38
|
def delete
|
50
|
-
discard_locations_for card #should be an event
|
51
|
-
if @success.target == card
|
52
|
-
@success.target = :previous
|
53
|
-
end
|
54
39
|
handle { card.delete }
|
55
40
|
end
|
56
41
|
|
57
42
|
def asset
|
58
43
|
Rails.logger.info "Routing assets through Card. Recommend symlink from Deck to Card gem using 'rake wagn:update_assets_symlink'"
|
59
|
-
|
44
|
+
asset_path = Decko::Engine.paths['gem-assets'].existent.first
|
45
|
+
filename = [ params[:filename], params[:format] ].join('.')
|
46
|
+
send_file_inside asset_path, filename , :x_sendfile => true
|
60
47
|
end
|
61
48
|
|
62
49
|
|
@@ -107,7 +94,7 @@ class CardController < ActionController::Base
|
|
107
94
|
def load_card
|
108
95
|
@card = case params[:id]
|
109
96
|
when '*previous'
|
110
|
-
return card_redirect( previous_location )
|
97
|
+
return card_redirect( Card::Env.previous_location )
|
111
98
|
else # get by name
|
112
99
|
opts = params[:card] ? params[:card].clone : {} # clone so that original params remain unaltered. need deeper clone?
|
113
100
|
opts[:type] ||= params[:type] if params[:type] # for /new/:type shortcut. we should fix and deprecate this.
|
@@ -132,43 +119,10 @@ class CardController < ActionController::Base
|
|
132
119
|
true
|
133
120
|
end
|
134
121
|
|
135
|
-
def init_success_object
|
136
|
-
@success = Card::Env[:success] = Card::Success.new(@card.cardname, params[:success])
|
137
|
-
end
|
138
|
-
|
139
122
|
def refresh_card
|
140
123
|
@card = card.refresh
|
141
124
|
end
|
142
125
|
|
143
|
-
def request_logger
|
144
|
-
Card::Log::Request.write_log_entry self
|
145
|
-
end
|
146
|
-
|
147
|
-
def start_performance_logger
|
148
|
-
if params[:performance_log]
|
149
|
-
@old_log_level = Wagn.config.log_level
|
150
|
-
if params[:performance_log].kind_of?(Hash) && params[:performance_log][:output] == 'console'
|
151
|
-
Wagn.config.log_level = :wagn
|
152
|
-
end
|
153
|
-
Card::Log::Performance.load_config params[:performance_log]
|
154
|
-
end
|
155
|
-
|
156
|
-
if Wagn.config.performance_logger || params[:performance_log]
|
157
|
-
Card::Log::Performance.start :method=>env["REQUEST_METHOD"], :message=>env["PATH_INFO"]
|
158
|
-
end
|
159
|
-
end
|
160
|
-
|
161
|
-
def stop_performance_logger
|
162
|
-
if Wagn.config.performance_logger || params[:performance_log]
|
163
|
-
Card::Log::Performance.stop
|
164
|
-
end
|
165
|
-
if params[:perfomance_log]
|
166
|
-
Wagn.config.log_level = @old_log_level
|
167
|
-
if Wagn.config.performance_logger
|
168
|
-
Card::Log::Performance.load_config Wagn.config.performance_logger
|
169
|
-
end
|
170
|
-
end
|
171
|
-
end
|
172
126
|
|
173
127
|
protected
|
174
128
|
|
@@ -176,8 +130,8 @@ class CardController < ActionController::Base
|
|
176
130
|
Card::Env.ajax?
|
177
131
|
end
|
178
132
|
|
179
|
-
def
|
180
|
-
[
|
133
|
+
def success
|
134
|
+
Card::Env[:success]
|
181
135
|
end
|
182
136
|
|
183
137
|
# ----------( rendering methods ) -------------
|
@@ -194,22 +148,24 @@ class CardController < ActionController::Base
|
|
194
148
|
end
|
195
149
|
|
196
150
|
def handle
|
197
|
-
|
151
|
+
card.run_callbacks :handle do
|
152
|
+
yield ? render_success : render_errors
|
153
|
+
end
|
198
154
|
end
|
199
155
|
|
200
156
|
def render_success
|
201
|
-
|
202
|
-
if !ajax? ||
|
203
|
-
card_redirect
|
204
|
-
elsif String ===
|
205
|
-
render :text =>
|
157
|
+
success.name_context = @card.cardname
|
158
|
+
if !ajax? || success.hard_redirect?
|
159
|
+
card_redirect success.to_url
|
160
|
+
elsif String === success.target
|
161
|
+
render :text => success.target
|
206
162
|
else
|
207
|
-
if
|
208
|
-
self.params =
|
163
|
+
if success.soft_redirect?
|
164
|
+
self.params = success.params
|
209
165
|
else
|
210
|
-
self.params.merge!
|
166
|
+
self.params.merge! success.params # #need tests. insure we get slot, main...
|
211
167
|
end
|
212
|
-
@card =
|
168
|
+
@card = success.target
|
213
169
|
@card.select_action_by_params params
|
214
170
|
show
|
215
171
|
end
|
@@ -228,6 +184,7 @@ class CardController < ActionController::Base
|
|
228
184
|
|
229
185
|
def show view = nil, status = 200
|
230
186
|
# ActiveSupport::Notifications.instrument('card', message: 'CardController#show') do
|
187
|
+
card.action = :read
|
231
188
|
format = request.parameters[:format]
|
232
189
|
format = :file if params[:explicit_file] or !Card::Format.registered.member? format #unknown format
|
233
190
|
|
@@ -238,9 +195,16 @@ class CardController < ActionController::Base
|
|
238
195
|
card.content = card.drafts.last.card_changes.last.value
|
239
196
|
end
|
240
197
|
formatter = card.format(format.to_sym)
|
241
|
-
result =
|
198
|
+
result = card.run_callbacks :show do
|
199
|
+
formatter.show view, opts
|
200
|
+
end
|
242
201
|
status = formatter.error_status || status
|
243
202
|
|
203
|
+
deliver format, result, status
|
204
|
+
end
|
205
|
+
|
206
|
+
|
207
|
+
def deliver format, result, status
|
244
208
|
if format==:file && status==200
|
245
209
|
send_file *result
|
246
210
|
elsif status == 302
|
@@ -250,10 +214,8 @@ class CardController < ActionController::Base
|
|
250
214
|
args[:content_type] = 'text/text' if format == :file
|
251
215
|
render args
|
252
216
|
end
|
253
|
-
# end
|
254
217
|
end
|
255
218
|
|
256
|
-
|
257
219
|
rescue_from StandardError do |exception|
|
258
220
|
Rails.logger.info "exception = #{exception.class}: #{exception.message}"
|
259
221
|
|
@@ -294,3 +256,5 @@ class CardController < ActionController::Base
|
|
294
256
|
|
295
257
|
end
|
296
258
|
|
259
|
+
|
260
|
+
|
@@ -246,7 +246,7 @@ describe CardController do
|
|
246
246
|
@all_style.reset_machine_output!
|
247
247
|
end
|
248
248
|
|
249
|
-
it '
|
249
|
+
it 'creates missing machine output file' do
|
250
250
|
args = { :id=>@all_style.machine_output_card.name, :format=>'css', :explicit_file=>true }
|
251
251
|
get :read, args
|
252
252
|
output_card = Card[ "#{ Card[:all].name }+#{ Card[:style].name }+#{ Card[:machine_output].name}" ]
|
@@ -337,14 +337,36 @@ describe CardController do
|
|
337
337
|
end
|
338
338
|
|
339
339
|
|
340
|
+
describe "delete" do
|
341
|
+
it "works" do
|
342
|
+
c = Card.create( :name=>"Boo", :content=>"booya")
|
343
|
+
post :delete, :id=>"~#{c.id}"
|
344
|
+
assert_response :redirect
|
345
|
+
expect(Card["Boo"]).to eq(nil)
|
346
|
+
end
|
347
|
+
|
348
|
+
# FIXME: this should probably be files in the spot for a delete test
|
349
|
+
it "returns to previous undeleted card after deletion" do
|
350
|
+
t1 = t2 = nil
|
351
|
+
Card::Auth.as_bot do
|
352
|
+
t1 = Card.create! :name => "Testable1", :content => "hello"
|
353
|
+
t2 = Card.create! :name => "Testable1+bandana", :content => "world"
|
354
|
+
end
|
340
355
|
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
356
|
+
get :read, :id => t1.key
|
357
|
+
get :read, :id => t2.key
|
358
|
+
|
359
|
+
post :delete, :id=> '~'+t2.id.to_s
|
360
|
+
assert_nil Card[ t2.name ]
|
361
|
+
assert_redirected_to "/#{t1.name}"
|
362
|
+
|
363
|
+
post :delete, :id => '~'+t1.id.to_s
|
364
|
+
assert_redirected_to '/'
|
365
|
+
assert_nil Card[ t1.name ]
|
366
|
+
end
|
346
367
|
end
|
347
368
|
|
369
|
+
|
348
370
|
it "should comment" do
|
349
371
|
Card::Auth.as_bot do
|
350
372
|
Card.create :name => 'basicname+*self+*comment', :content=>'[[Anyone Signed In]]'
|
@@ -10,42 +10,21 @@ describe CardController, "location test from old integration" do
|
|
10
10
|
login_as 'joe_user'
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
it "should test_previous_location_should_not_be_updated_by_nonexistent_card" do
|
19
|
-
get :read, :id=>"Joe_User"
|
20
|
-
get :read, :id=>"Not_Me"
|
21
|
-
get :read, :id=>'*previous'
|
22
|
-
assert_redirected_to '/Joe_User'
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should test_return_to_special_url_when_logging_in_after_visit" do
|
26
|
-
# not sure this still tests the case, controller tests do not test routes
|
27
|
-
get :read, :id=>'*recent'
|
28
|
-
assert_equal "/*recent", assigns['previous_location']
|
29
|
-
end
|
13
|
+
describe 'previous location'do
|
14
|
+
it "gets updated after viewing" do
|
15
|
+
get :read, :id=>"Joe_User"
|
16
|
+
assert_equal "/Joe_User", Card::Env.previous_location
|
17
|
+
end
|
30
18
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
t2 = Card.create! :name => "Testable1+bandana", :content => "world"
|
19
|
+
it "doesn't link to nonexistent cards" do
|
20
|
+
get :read, :id=>"Joe_User"
|
21
|
+
get :read, :id=>"Not_Me"
|
22
|
+
get :read, :id=>'*previous'
|
23
|
+
assert_redirected_to '/Joe_User'
|
37
24
|
end
|
38
25
|
|
39
|
-
|
40
|
-
get :read, :id => t2.key
|
26
|
+
end
|
41
27
|
|
42
|
-
post :delete, :id=> '~'+t2.id.to_s
|
43
|
-
assert_nil Card[ t2.name ]
|
44
|
-
assert_redirected_to "/#{t1.name}"
|
45
28
|
|
46
|
-
post :delete, :id => '~'+t1.id.to_s
|
47
|
-
assert_redirected_to '/'
|
48
|
-
assert_nil Card[ t1.name ]
|
49
|
-
end
|
50
29
|
|
51
30
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wagn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.16.
|
4
|
+
version: 1.16.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ethan McCutchen
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2015-09-
|
14
|
+
date: 2015-09-19 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
@@ -33,14 +33,14 @@ dependencies:
|
|
33
33
|
requirements:
|
34
34
|
- - '='
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 1.16.
|
36
|
+
version: 1.16.5
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
41
|
- - '='
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 1.16.
|
43
|
+
version: 1.16.5
|
44
44
|
description: a wiki approach to stuctured data, dynamic interaction, and web design
|
45
45
|
email:
|
46
46
|
- info@wagn.org
|