wagn 1.16.8 → 1.16.9

Sign up to get free protection for your applications and to get access to all the features.
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