wagn 1.16.8 → 1.16.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a756e0936d5d5427d94f145918f42312f05c3cbb
4
- data.tar.gz: 32df7a1d4bb921f2efcf21d66142cfa2ccbd6aa5
3
+ metadata.gz: 6e2d535153a197b92c0822ab179707b0682c4bf0
4
+ data.tar.gz: 61a2241a28124f1ffbe02b07988de44ecdccd85d
5
5
  SHA512:
6
- metadata.gz: 207d5ce6a76adf49d2dbf1d3883060333e691892cb57d33ea079bc0a1c57237b82bd8176ccf54efec3b5794859897aa8c06974c7fe24a12685248043a61b6f1d
7
- data.tar.gz: 8af9497ab9f08767b6fced1e2476e190656848696caa4b3a4181969236f5b035b7b27a5be5453f3623e155160bb033f0ac70977745b01d7e042e9b3bf03de0bb
6
+ metadata.gz: 164ead08ce3191ec24b18852e3248638e0caf1719816792fc63669e7211a950d8660229a38ede7c4065b1a2d3b93b876e3c00963e9471dd4e56cb68be37e8ef1
7
+ data.tar.gz: 7eb97223c44d5337b9a4333786a45d76725c38b5cdee516fe5efea2569a1e5d843e5cebe52248846a42829e3b82250111ca9ebb795124813a176884eefd13445
@@ -1,5 +1,5 @@
1
1
  @javascript
2
- Feature: Conflict
2
+ Feature: File Upload
3
3
  I want to be able to upload files and images.
4
4
 
5
5
  Background:
@@ -8,12 +8,12 @@ Feature: Conflict
8
8
  Scenario: Uploading a file
9
9
  When I go to new File
10
10
  And I upload the file "file.txt"
11
- And I wait a sec
11
+ And I wait until ajax response done
12
12
  Then I should see "file.txt 9 Bytes"
13
13
  When I press "Delete"
14
14
  Then I should see "Add file..."
15
15
  When I upload the file "file.txt"
16
- And I wait a sec
16
+ And I wait until ajax response done
17
17
  And I fill in "card_name" with "a test file"
18
18
  And I press "Submit"
19
19
  Then I should see "Download a test file"
@@ -21,24 +21,60 @@ Feature: Conflict
21
21
  Scenario: Uploading and changing an image
22
22
  When I go to new Image
23
23
  And I upload the image "image.png"
24
- And I wait a sec
24
+ And I wait until ajax response done
25
25
  Then I should see "image.png 34.3 KB"
26
26
  And I fill in "card_name" with "a test image"
27
27
  And I press "Submit"
28
28
  Then I should see an image of size "large" and type "png"
29
29
  And I edit "a test image"
30
30
  And I upload the image "image2.jpg"
31
- And I wait a sec
31
+ And I wait until ajax response done
32
32
  Then I should see "image2.jpg 69.8 KB"
33
33
  And I press "Submit"
34
34
  Then I should see an image of size "large" and type "jpg"
35
+ And I wait until ajax response done
35
36
 
36
37
  Scenario: Changing a mod image
37
38
  When I edit "*logo"
38
39
  And I upload the image "image2.jpg"
39
- And I wait a sec
40
+ And I wait until ajax response done
40
41
  Then I should see "image2.jpg 69.8 KB"
41
42
  And I press "Submit"
42
- Then I should see an image of size "large" and type "jpg"
43
+ And I wait until ajax response done
44
+ Then I should see a non-mod image of size "large" and type "jpg"
45
+
46
+ Scenario: uploading a file as a field in a form
47
+ When I go to "/new Cardtype"
48
+ And I fill in "card_name" with "complicated_card"
49
+ And I press "Submit"
50
+ And I create HTML card "complicated card+*type+*structure" with content "{{+image}}{{+description}}"
51
+ And I go to "/new complicated_card"
52
+ And I fill in "card_name" with "Vignesh has a complicated relationship"
53
+ And I wait until ajax response done
54
+ And I upload the image "image.png"
55
+ And I wait until ajax response done
56
+ Then I should see "image.png 34.3 KB"
57
+ And I press "Submit"
58
+ Then I should see an image of size "medium" and type "png"
59
+ And I wait until ajax response done
60
+
61
+ Scenario: updating a file as a field in a form
62
+ When I go to "/new Cardtype"
63
+ And I fill in "card_name" with "complicated_card"
64
+ And I press "Submit"
65
+ And I create HTML card "complicated card+*type+*structure" with content "{{+image}}{{+description}}"
66
+ And I go to "/new complicated_card"
67
+ And I fill in "card_name" with "Vignesh has a complicated relationship"
68
+ And I wait until ajax response done
69
+ And I upload the image "image.png"
70
+ And I wait until ajax response done
71
+ And I press "Submit"
72
+ And I edit "Vignesh has a complicated relationship"
73
+ And I upload the image "image2.jpg"
74
+ And I wait until ajax response done
75
+ Then I should see "image2.jpg 69.8 KB"
76
+ And I press "Submit"
77
+ Then I should see an image of size "medium" and type "jpg"
78
+ And I wait until ajax response done
43
79
 
44
80
 
@@ -11,11 +11,6 @@ Feature: autonaming
11
11
  When I go to new Book
12
12
  And I press "Submit"
13
13
  Then I should see "Book_1"
14
-
15
14
  And I go to new Book
16
15
  And I press "Submit"
17
16
  Then I should see "Book_2"
18
-
19
- # And I go to new Book
20
- # Then I should see "Book 2"
21
-
@@ -154,6 +154,13 @@ When /I wait (\d+) seconds$/ do |period|
154
154
  sleep period.to_i
155
155
  end
156
156
 
157
+ When /^I wait until ajax response done$/ do
158
+ Timeout.timeout(Capybara.default_wait_time) do
159
+ while page.evaluate_script('jQuery.active') != 0
160
+ sleep(0.5)
161
+ end
162
+ end
163
+ end
157
164
 
158
165
  Then /what/ do
159
166
  save_and_open_page
@@ -326,6 +333,11 @@ Then /^I should see an image of size "(.+)" and type "(.+)"$/ do |size, type|
326
333
  find("img[src*='#{size}.#{type}']")
327
334
  end
328
335
 
336
+ Then /^I should see a non-mod image of size "(.+)" and type "(.+)"$/ do |size, type|
337
+ element = find("img[src*='#{size}.#{type}']")
338
+ expect(element[:src]).to match(%r(/~\d+/))
339
+ end
340
+
329
341
  Then /^I should see "([^\"]*)" in color (.*)$/ do |text, css_class|
330
342
  page.has_css?(".diff-#{css_class}", text: text)
331
343
  end
@@ -78,7 +78,7 @@ group :test do
78
78
  # CUKES see features dir
79
79
  gem 'cucumber-rails', '~> 1.3', :require=>false # feature-driven-development suite
80
80
  gem 'capybara', '~> 2.4.4'
81
- gem 'selenium-webdriver', '~> 2.39'
81
+ gem 'selenium-webdriver', '~> 2.47.1'
82
82
  # gem 'capybara-webkit'
83
83
  gem 'launchy' # lets cucumber launch browser windows
84
84
 
@@ -1,4 +1,6 @@
1
- TEST_SEED_PATH = ENV['DECKO_SEED_REPO_PATH']
1
+ TEST_SEED_PATH = File.join(
2
+ ENV['DECKO_SEED_REPO_PATH'] || [Cardio.gem_root, 'db','seed'], 'test'
3
+ )
2
4
 
3
5
  namespace :test do
4
6
  task :all => :environment do
@@ -47,7 +49,7 @@ namespace :test do
47
49
  ActiveRecord::Base.establish_connection
48
50
  tables.each do |table_name|
49
51
  i = "000"
50
- File.open("#{ TEST_SEED_PATH }/test/fixtures/#{table_name}.yml", 'w') do |file|
52
+ File.open("#{ TEST_SEED_PATH }/fixtures/#{table_name}.yml", 'w') do |file|
51
53
  data = ActiveRecord::Base.connection.select_all(sql % table_name)
52
54
  file.write data.inject({}) { |hash, record|
53
55
  record['trash'] = false if record.has_key? 'trash'
@@ -63,7 +65,7 @@ namespace :test do
63
65
  task :populate_template_database => :environment do
64
66
  raise "must be test env" unless Rails.env == 'test'
65
67
  puts "populate test data\n"
66
- load "#{ TEST_SEED_PATH }/test/seed.rb"
68
+ load "#{ TEST_SEED_PATH }/seed.rb"
67
69
  SharedData.add_test_data
68
70
  end
69
71
 
@@ -1,41 +1,43 @@
1
1
  require 'wagn/application'
2
2
 
3
- WAGN_SEED_TABLES = %w{ cards card_actions card_acts card_changes card_references }
3
+ WAGN_SEED_TABLES = %w{ cards card_actions card_acts card_changes
4
+ card_references }
4
5
  WAGN_SEED_PATH = File.join(
5
- ENV['DECKO_SEED_REPO_PATH'] || [Cardio.gem_root, 'db','seed'], 'new'
6
+ ENV['DECKO_SEED_REPO_PATH'] || [Cardio.gem_root, 'db', 'seed'], 'new'
6
7
  )
7
8
 
8
-
9
9
  def prepare_migration
10
10
  Card::Cache.reset_global
11
11
  Card.config.action_mailer.perform_deliveries = false
12
12
  Card.reset_column_information
13
- Card::Reference.reset_column_information # this is needed in production mode to insure core db
14
- # structures are loaded before schema_mode is set
13
+ # this is needed in production mode to insure core db
14
+ Card::Reference.reset_column_information
15
+ # structures are loaded before schema_mode is set
15
16
  end
16
17
 
17
18
  namespace :wagn do
18
- desc "create a wagn database from scratch, load initial data"
19
+ desc 'create a wagn database from scratch, load initial data'
19
20
  task :seed do
20
21
  ENV['SCHEMA'] ||= "#{Cardio.gem_root}/db/schema.rb"
21
- puts "dropping"
22
- #fixme - this should be an option, but should not happen on standard creates!
22
+ puts 'dropping'
23
+ # FIXME: this should be an option, but should not happen on standard
24
+ # creates!
23
25
  begin
24
26
  Rake::Task['db:drop'].invoke
25
27
  rescue
26
- puts "not dropped"
28
+ puts 'not dropped'
27
29
  end
28
30
 
29
- puts "creating"
31
+ puts 'creating'
30
32
  Rake::Task['db:create'].invoke
31
33
 
32
- puts "loading schema"
34
+ puts 'loading schema'
33
35
  Rake::Task['db:schema:load'].invoke
34
36
 
35
37
  Rake::Task['wagn:load'].invoke
36
38
  end
37
39
 
38
- desc "clear and load fixtures with existing tables"
40
+ desc 'clear and load fixtures with existing tables'
39
41
  task :reseed do
40
42
  ENV['SCHEMA'] ||= "#{Cardio.gem_root}/db/schema.rb"
41
43
 
@@ -44,64 +46,64 @@ namespace :wagn do
44
46
  Rake::Task['wagn:load'].invoke
45
47
  end
46
48
 
47
- desc "empty the card tables"
49
+ desc 'empty the card tables'
48
50
  task :clear do
49
51
  conn = ActiveRecord::Base.connection
50
52
 
51
- puts "delete all data in bootstrap tables"
53
+ puts 'delete all data in bootstrap tables'
52
54
  WAGN_SEED_TABLES.each do |table|
53
55
  conn.delete "delete from #{table}"
54
56
  end
55
57
  end
56
58
 
57
- desc "Load bootstrap data into database"
59
+ desc 'Load bootstrap data into database'
58
60
  task :load do
59
61
  require 'decko/engine'
60
- puts "update card_migrations"
62
+ puts 'update card_migrations'
61
63
  Rake::Task['wagn:assume_card_migrations'].invoke
62
64
 
63
65
  if Rails.env == 'test' && !ENV['GENERATE_FIXTURES']
64
- puts "loading test fixtures"
66
+ puts 'loading test fixtures'
65
67
  Rake::Task['db:fixtures:load'].invoke
66
68
  else
67
- puts "loading bootstrap"
69
+ puts 'loading bootstrap'
68
70
  Rake::Task['wagn:bootstrap:load'].invoke
69
71
  end
70
72
 
71
- puts "set symlink for assets"
73
+ puts 'set symlink for assets'
72
74
  Rake::Task['wagn:update_assets_symlink'].invoke
73
75
  end
74
76
 
75
- desc "update wagn gems and database"
77
+ desc 'update wagn gems and database'
76
78
  task :update do
77
79
  ENV['NO_RAILS_CACHE'] = 'true'
78
- #system 'bundle update'
79
- if Wagn.paths["tmp"].existent
80
- FileUtils.rm_rf Wagn.paths["tmp"].first, :secure=>true
80
+ # system 'bundle update'
81
+ if Wagn.paths['tmp'].existent
82
+ FileUtils.rm_rf Wagn.paths['tmp'].first, secure: true
81
83
  end
82
- Dir.mkdir Wagn.paths["tmp"].first
84
+ Dir.mkdir Wagn.paths['tmp'].first
83
85
  Rake::Task['wagn:migrate'].invoke
84
86
  # FIXME remove tmp dir / clear cache
85
- puts "set symlink for assets"
87
+ puts 'set symlink for assets'
86
88
  Rake::Task['wagn:update_assets_symlink'].invoke
87
89
  end
88
90
 
89
- desc "reset cache"
90
- task :reset_cache => :environment do
91
+ desc 'reset cache'
92
+ task reset_cache: :environment do
91
93
  Card::Cache.reset_global
92
94
  end
93
95
 
94
- desc "set symlink for assets"
96
+ desc 'set symlink for assets'
95
97
  task :update_assets_symlink do
96
- assets_path = File.join(Rails.public_path, "assets")
98
+ assets_path = File.join(Rails.public_path, 'assets')
97
99
  if Rails.root.to_s != Wagn.gem_root and not File.exists? assets_path
98
100
  FileUtils.rm assets_path if File.symlink? assets_path
99
- FileUtils.ln_s( Decko::Engine.paths['gem-assets'].first, assets_path )
101
+ FileUtils.ln_s(Decko::Engine.paths['gem-assets'].first, assets_path)
100
102
  end
101
103
  end
102
104
 
103
- desc "migrate structure and cards"
104
- task :migrate => :environment do
105
+ desc 'migrate structure and cards'
106
+ task migrate: :environment do
105
107
  ENV['NO_RAILS_CACHE'] = 'true'
106
108
  ENV['SCHEMA'] ||= "#{Cardio.gem_root}/db/schema.rb"
107
109
 
@@ -140,14 +142,14 @@ namespace :wagn do
140
142
  end
141
143
 
142
144
  namespace :migrate do
143
- desc "migrate cards"
144
- task :cards => :environment do
145
+ desc 'migrate cards'
146
+ task cards: :environment do
145
147
  Rake::Task['wagn:migrate:core_cards'].invoke
146
148
  Rake::Task['wagn:migrate:deck_cards'].execute
147
149
  end
148
150
 
149
- desc "migrate structure"
150
- task :structure => :environment do
151
+ desc 'migrate structure'
152
+ task structure: :environment do
151
153
  ENV['SCHEMA'] ||= "#{Cardio.gem_root}/db/schema.rb"
152
154
  Cardio.schema_mode(:structure) do
153
155
  paths = ActiveRecord::Migrator.migrations_paths = Cardio.migration_paths(:structure)
@@ -156,23 +158,26 @@ namespace :wagn do
156
158
  end
157
159
  end
158
160
 
159
- desc "migrate core cards"
160
- task :core_cards => :environment do
161
+ desc 'migrate core cards'
162
+ task core_cards: :environment do
161
163
  require 'card/core_migration'
162
164
 
163
165
  Card::Cache.reset_global
164
166
  ENV['SCHEMA'] ||= "#{Cardio.gem_root}/db/schema.rb"
165
167
  prepare_migration
166
- paths = ActiveRecord::Migrator.migrations_paths = Cardio.migration_paths(:core_cards)
167
- Cardio.schema_mode :core_cards do
168
+ paths = Cardio.migration_paths(:core_cards)
169
+ verbose = ENV['VERBOSE'] ? ENV['VERBOSE'] == 'true' : true
170
+ version = ENV['VERSION'] ? ENV['VERSION'].to_i : nil
168
171
 
169
- ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
170
- ActiveRecord::Migrator.migrate paths, ENV["VERSION"] ? ENV["VERSION"].to_i : nil
172
+ ActiveRecord::Migrator.migrations_paths = paths
173
+ Cardio.schema_mode :core_cards do
174
+ ActiveRecord::Migration.verbose = verbose
175
+ ActiveRecord::Migrator.migrate paths, version
171
176
  end
172
177
  end
173
178
 
174
- desc "migrate deck cards"
175
- task :deck_cards => :environment do
179
+ desc 'migrate deck cards'
180
+ task deck_cards: :environment do
176
181
  require 'card/migration'
177
182
 
178
183
  Card::Cache.reset_global
@@ -181,17 +186,18 @@ namespace :wagn do
181
186
  paths = ActiveRecord::Migrator.migrations_paths = Cardio.migration_paths(:deck_cards)
182
187
 
183
188
  Cardio.schema_mode(:deck_cards) do
184
- ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
185
- ActiveRecord::Migrator.migrate paths, ENV["VERSION"] ? ENV["VERSION"].to_i : nil
189
+ ActiveRecord::Migration.verbose = ENV['VERBOSE'] ? ENV['VERBOSE'] == 'true' : true
190
+ ActiveRecord::Migrator.migrate paths, ENV['VERSION'] ? ENV['VERSION'].to_i : nil
186
191
  end
187
192
  end
188
193
 
189
- desc 'write the version to a file (not usually called directly)' #maybe we should move this to a method?
194
+ # maybe we should move this to a method?
195
+ desc 'write the version to a file (not usually called directly)'
190
196
  task :stamp, :type do |t, args|
191
197
  ENV['SCHEMA'] ||= "#{Cardio.gem_root}/db/schema.rb"
192
198
  Cardio.config.action_mailer.perform_deliveries = false
193
199
 
194
- stamp_file = Cardio.schema_stamp_path( args[:type] )
200
+ stamp_file = Cardio.schema_stamp_path(args[:type])
195
201
 
196
202
  Cardio.schema_mode args[:type] do
197
203
  version = ActiveRecord::Migrator.current_version
@@ -205,10 +211,10 @@ namespace :wagn do
205
211
 
206
212
 
207
213
  namespace :emergency do
208
- task :rescue_watchers => :environment do
214
+ task rescue_watchers: :environment do
209
215
  follower_hash = Hash.new { |h, v| h[v] = [] }
210
216
 
211
- Card.where("right_id" => 219).each do |watcher_list|
217
+ Card.where('right_id' => 219).each do |watcher_list|
212
218
  watcher_list.include_set_modules
213
219
  if watcher_list.left
214
220
  watching = watcher_list.left.name
@@ -218,16 +224,16 @@ namespace :wagn do
218
224
  end
219
225
  end
220
226
 
221
- Card.search(:right=>{:codename=>"following"}).each do |following|
227
+ Card.search(right: {codename: 'following'}).each do |following|
222
228
  Card::Auth.as_bot do
223
- following.update_attributes! :content=>''
229
+ following.update_attributes! content: ''
224
230
  end
225
231
  end
226
232
 
227
233
  follower_hash.each do |user, items|
228
234
  if card=Card.fetch(user) and card.account
229
235
  Card::Auth.as(user) do
230
- following = card.fetch :trait=>"following", :new=>{}
236
+ following = card.fetch trait: 'following', new: {}
231
237
  following.items = items
232
238
  end
233
239
  end
@@ -236,57 +242,18 @@ namespace :wagn do
236
242
  end
237
243
 
238
244
  namespace :bootstrap do
239
- desc "rid template of unneeded cards, acts, actions, changes, and references"
240
- task :clean => :environment do
245
+ desc 'rid template of unneeded cards, acts, actions, changes, and references'
246
+ task clean: :environment do
241
247
  Card::Cache.reset_global
242
- conn = ActiveRecord::Base.connection
243
- # Correct time and user stamps
244
- # USER related
245
- who_and_when = [ Card::WagnBotID, Time.now.utc.to_s(:db) ]
246
- card_sql = "update cards set creator_id=%1$s, created_at='%2$s', updater_id=%1$s, updated_at='%2$s'"
247
- conn.update( card_sql % who_and_when )
248
- conn.update( "update card_acts set actor_id=%s, acted_at='%s'" % who_and_when )
249
-
250
- Card::Auth.as_bot do
251
- # delete ignored cards
252
-
253
- if ignoramus = Card['*ignore']
254
- ignoramus.item_cards.each do |card|
255
- card.delete!
256
- end
257
- end
258
- Card::Cache.reset_global
259
- # FIXME: can this be associated with the machine module somehow?
260
- %w{ machine_input machine_output }.each do |codename|
261
- Card.search(:right=>{:codename=>codename }).each do |card|
262
- FileUtils.rm_rf File.join('files', card.id.to_s ), :secure=>true
263
- card.delete!
264
- end
265
- end
266
- end
267
-
248
+ clear_history
249
+ delete_unwanted_cards
268
250
  Card.empty_trash
269
-
270
- # FIXME: move this to history
271
- # Card::Act.clear_history(:actor_id=>Card::WagnBotID, :card_id=>Card::WagnBotID)
272
- Card::Action.delete_old
273
- Card::Change.delete_actionless
274
-
275
- conn.execute( "truncate card_acts" )
276
- conn.execute( "truncate sessions" )
277
-
278
-
279
- act = Card::Act.create!(:actor_id=>Card::WagnBotID, :card_id=>Card::WagnBotID)
280
- Card::Action.find_each do |action|
281
- action.update_attributes!(:card_act_id=>act.id)
282
- end
283
-
251
+ correct_time_and_user_stamps
284
252
  Card::Cache.reset_global
285
-
286
253
  end
287
254
 
288
- desc "dump db to bootstrap fixtures"
289
- task :dump => :environment do
255
+ desc 'dump db to bootstrap fixtures'
256
+ task dump: :environment do
290
257
  Card::Cache.reset_global
291
258
 
292
259
  # FIXME temporarily taking this out!!
@@ -299,9 +266,11 @@ namespace :wagn do
299
266
  # which dumps with slashes that syck can't understand
300
267
 
301
268
  WAGN_SEED_TABLES.each do |table|
302
- i = "000"
269
+ i = '000'
303
270
  File.open(File.join(WAGN_SEED_PATH, "#{table}.yml"), 'w') do |file|
304
- data = ActiveRecord::Base.connection.select_all( "select * from #{table}" )
271
+ data = ActiveRecord::Base.connection.select_all(
272
+ "select * from #{table}"
273
+ )
305
274
  file.write YAML::dump( data.inject({}) do |hash, record|
306
275
  record['trash'] = false if record.has_key? 'trash'
307
276
  record['draft'] = false if record.has_key? 'draft'
@@ -317,60 +286,92 @@ namespace :wagn do
317
286
 
318
287
  end
319
288
 
320
- desc "copy files from template database to standard mod and update cards"
321
- task :copy_mod_files => :environment do
289
+ desc 'copy files from template database to standard mod and update cards'
290
+ task copy_mod_files: :environment do
322
291
 
323
292
  source_files_dir = "#{Wagn.root}/files"
324
293
 
325
294
  # mark mod files as mod files
326
295
  Card::Auth.as_bot do
327
- Card.search( :type=>['in', 'Image', 'File'], :ne=>'' ).each do |card|
328
- if card.mod_file? || card.codename == 'new_file' || card.codename == 'new_image'
296
+ Card.search(type: ['in', 'Image', 'File'], ne: '').each do |card|
297
+ if card.mod_file? || card.codename == 'new_file' ||
298
+ card.codename == 'new_image'
329
299
  puts "skipping #{card.name}: already in code"
330
300
  next
331
301
  else
332
302
  puts "working on #{card.name}"
333
303
  end
334
304
 
335
- raise "need codename for file" unless card.codename.present?
305
+ raise 'need codename for file' unless card.codename.present?
336
306
 
337
- files = {:original => card.attachment.path}
307
+ files = {original: card.attachment.path}
338
308
  card.attachment.versions.each_key do |version|
339
309
  files[version] = card.attachment.path(version)
340
310
  end
341
311
 
342
312
  # make card a mod file card
343
313
  mod_name = (l = card.left) && l.type_id==Card::SkinID ? '06_bootstrap' : '05_standard'
344
- card.update_column :db_content, card.attachment.db_content(:mod=>mod_name)
345
- card.last_action.change_for(2).first.update_column :value, card.attachment.db_content(:mod=>mod_name)
314
+ card.update_column :db_content, card.attachment.db_content(mod: mod_name)
315
+ card.last_action.change_for(2).first.update_column :value, card.attachment.db_content(mod: mod_name)
346
316
  card.expire
347
317
  card = Card.fetch card.name
348
318
 
349
319
  target_dir = card.store_dir
350
320
 
351
- #FileUtils.remove_dir target_dir, force=true if Dir.exists? target_dir
352
- #FileUtils.mkdir_p target_dir
353
-
354
321
  files.each do |version, path|
355
322
  FileUtils.cp path, card.attachment.path(version)
356
323
  end
357
-
358
324
  end
359
325
  end
360
326
  end
361
327
 
362
-
363
- desc "load bootstrap fixtures into db"
364
- task :load => :environment do
365
- #FIXME - shouldn't we be more standard and use seed.rb for this code?
328
+ desc 'load bootstrap fixtures into db'
329
+ task load: :environment do
330
+ # FIXME: shouldn't we be more standard and use seed.rb for this code?
366
331
  Rake.application.options.trace = true
367
332
  puts "bootstrap load starting #{WAGN_SEED_PATH}"
368
333
  require 'active_record/fixtures'
369
- # require 'time'
370
-
371
- ActiveRecord::Fixtures.create_fixtures WAGN_SEED_PATH, WAGN_SEED_TABLES
334
+ ActiveRecord::FixtureSet.create_fixtures WAGN_SEED_PATH, WAGN_SEED_TABLES
372
335
  end
336
+ end
337
+ end
373
338
 
339
+ def correct_time_and_user_stamps
340
+ conn = ActiveRecord::Base.connection
341
+ who_and_when = [ Card::WagnBotID, Time.now.utc.to_s(:db) ]
342
+ card_sql = "update cards set creator_id=%1$s, created_at='%2$s', updater_id=%1$s, updated_at='%2$s'"
343
+ conn.update(card_sql % who_and_when)
344
+ conn.update("update card_acts set actor_id=%s, acted_at='%s'" % who_and_when)
345
+ end
346
+
347
+ def delete_unwanted_cards
348
+ Card::Auth.as_bot do
349
+ if ignoramus = Card['*ignore']
350
+ ignoramus.item_cards.each do |card|
351
+ card.delete!
352
+ end
353
+ end
354
+ Card::Cache.reset_global
355
+ # FIXME: can this be associated with the machine module somehow?
356
+ %w{ machine_input machine_output }.each do |codename|
357
+ Card.search(:right=>{:codename=>codename }).each do |card|
358
+ FileUtils.rm_rf File.join('files', card.id.to_s ), :secure=>true
359
+ card.delete!
360
+ end
361
+ end
374
362
  end
363
+ end
375
364
 
365
+ def clear_history
366
+ Card::Action.delete_old
367
+ Card::Change.delete_actionless
368
+
369
+ conn = ActiveRecord::Base.connection
370
+ conn.execute( "truncate card_acts" )
371
+ conn.execute( "truncate sessions" )
372
+ act = Card::Act.create! actor_id: Card::WagnBotID,
373
+ :card_id=>Card::WagnBotID
374
+ Card::Action.find_each do |action|
375
+ action.update_attributes!(:card_act_id=>act.id)
376
+ end
376
377
  end
@@ -75,7 +75,7 @@ class CardController < ActionController::Base
75
75
 
76
76
  def load_id
77
77
  params[:id] ||= case
78
- when Card::Auth.needs_setup?
78
+ when Card::Auth.needs_setup? && Card::Env.html?
79
79
  params[:card] = { type_id: Card.default_accounted_type_id }
80
80
  params[:view] = 'setup'
81
81
  ''
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.8
4
+ version: 1.16.9
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-10-06 00:00:00.000000000 Z
14
+ date: 2015-10-20 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.8
36
+ version: 1.16.9
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.8
43
+ version: 1.16.9
44
44
  description: a wiki approach to stuctured data, dynamic interaction, and web design
45
45
  email:
46
46
  - info@wagn.org