rspec-paper_trail 0.0.5 → 0.0.6
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.
- data/.rvmrc +47 -0
- data/Gemfile +1 -1
- data/lib/generators/rspec-paper_trail/install_generator.rb +58 -0
- data/lib/generators/rspec-paper_trail/templates/features/versioning.rb +6 -0
- data/lib/generators/rspec-paper_trail/templates/migrations/create_versions.rb +14 -0
- data/lib/generators/rspec-paper_trail/templates/migrations/stringify_versions_item_id.rb +8 -0
- data/lib/generators/rspec/paper_trail/install_generator.rb +50 -0
- data/lib/generators/rspec/paper_trail/templates/features/versioning.rb +6 -0
- data/lib/generators/rspec/paper_trail/templates/migrations/create_versions.rb +14 -0
- data/lib/generators/rspec/paper_trail/templates/migrations/stringify_versions_item_id.rb +8 -0
- data/lib/rspec/paper_trail/version.rb +1 -1
- data/lib/rspec/versioning_extensions.rb +2 -2
- metadata +19 -10
data/.rvmrc
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# Pick one EVENT or SWIFTIPLY
|
2
|
+
# To run a Rails app in evented mode (eventmachine gem)
|
3
|
+
export EVENT=1
|
4
|
+
|
5
|
+
# To run in swiftiplied mode (swiftiply gem)
|
6
|
+
#export SWIFTIPLY=1
|
7
|
+
|
8
|
+
# HACK: broken locales
|
9
|
+
my_hosttype="${HOSTTYPE:='unknown_hosttype'}"
|
10
|
+
my_kernel="${OSTYPE:='unknown_kernel'}"
|
11
|
+
my_hosttype=$(uname -a)
|
12
|
+
my_kernel=$(uname -s)
|
13
|
+
|
14
|
+
if [ "${my_kernel}" != 'Darwin' ]; then
|
15
|
+
my_kernel="${my_kernel/SunOS/solaris}"
|
16
|
+
fi
|
17
|
+
|
18
|
+
# TODO: re-write my_osver detection to include major-minor-patch
|
19
|
+
my_ostype="${my_kernel/Darwin*/darwin}"
|
20
|
+
my_osver="${my_kernel/darwin/}"
|
21
|
+
|
22
|
+
if [ "${my_ostype}" != 'darwin' ]; then
|
23
|
+
my_ostype="${my_kernel/Linux*/linux}"
|
24
|
+
if [ "${my_ostype}" != 'linux' ]; then
|
25
|
+
my_ostype="${my_kernel/-gnu/}"
|
26
|
+
fi
|
27
|
+
my_osver="${my_kernel/linux-/}"
|
28
|
+
if [ ${my_ostype} != 'linux' ]; then
|
29
|
+
my_ostype="${my_kernel/solaris*/solaris}"
|
30
|
+
my_osver="${my_kernel/solaris/}"
|
31
|
+
fi
|
32
|
+
fi
|
33
|
+
|
34
|
+
case "${my_ostype}" in
|
35
|
+
'darwin' )
|
36
|
+
LC_CTYPE='en_US.UTF-8'; builtin export LC_CTYPE
|
37
|
+
LC_ALL='en_US.UTF-8'; builtin export LC_ALL # Mnt. Lion
|
38
|
+
;;
|
39
|
+
'linux' )
|
40
|
+
LANG='en_US.UTF-8'; builtin export LANG
|
41
|
+
;;
|
42
|
+
* )
|
43
|
+
echo "Unsupported OS: ${my_ostype}"
|
44
|
+
;;
|
45
|
+
esac
|
46
|
+
|
47
|
+
rvm 1.9.3-p392-patched@rspec-paper_trail
|
data/Gemfile
CHANGED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'rails/generators/active_record/migration'
|
2
|
+
|
3
|
+
module Rspec::PaperTrail
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
5
|
+
include Rails::Generators::Migration
|
6
|
+
extend ActiveRecord::Generators::Migration
|
7
|
+
|
8
|
+
source_root File.expand_path('../templates', __FILE__)
|
9
|
+
class_option :with_string_ids, type: :boolean, default: true, desc: 'versions.type_id as string (vs integer)'
|
10
|
+
|
11
|
+
# paperclip-3.3.x seems to require this
|
12
|
+
# paperclip-3.4.x seems to have broken this
|
13
|
+
class_option :with_revision_in_filename, type: :boolean, default: false, desc: 'filename on system to include version-number'
|
14
|
+
|
15
|
+
class_option :'skip-migrations', type: :boolean, default: false, desc: 'do not generate migrations'
|
16
|
+
class_option :force, type: :boolean, default: false, desc: 'force generation migrations'
|
17
|
+
|
18
|
+
desc 'Generates (but does not run) a migration to add attachments and versions tables.'
|
19
|
+
|
20
|
+
def generate_migration_file
|
21
|
+
return if options.send(:'skip-migrations')
|
22
|
+
migration_template 'migrations/create_versions.rb', 'db/migrate/create_versions.rb'
|
23
|
+
migration_template 'migrations/stringify_versions_item_id.rb', 'db/migrate/stringify_versions_item_id.rb' if use_string_ids? && (!migrated? || has_integer_column?)
|
24
|
+
end
|
25
|
+
|
26
|
+
desc 'Generates initialization files.'
|
27
|
+
|
28
|
+
def generate_configuration_files
|
29
|
+
copy_file 'features/versioning.rb', 'config/features/versioning.rb'
|
30
|
+
end
|
31
|
+
|
32
|
+
desc 'Augments spec/spec_helper.rb adding paperclip and rspec-extensions'
|
33
|
+
|
34
|
+
def augment_spec_helper
|
35
|
+
[ 'config.include RspecPapertrailExtensions' ].each do |line|
|
36
|
+
insert_into_file 'spec/spec_helper.rb', " #{line}\n", after: "RSpec.configure do |config|\n"
|
37
|
+
end
|
38
|
+
["require \'paperclip/matchers\'"].each do |line|
|
39
|
+
insert_into_file 'spec/spec_helper.rb', "#{line}\n", before: "RSpec.configure do |config|\n"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
private
|
43
|
+
def use_versioned_filename?
|
44
|
+
options.with_revision_in_filename?
|
45
|
+
end
|
46
|
+
def use_string_ids?
|
47
|
+
options.with_string_ids?
|
48
|
+
end
|
49
|
+
def migrated?
|
50
|
+
return true if ActiveRecord::Base.connection.table_exists? 'versions'
|
51
|
+
end
|
52
|
+
def has_integer_column?
|
53
|
+
return false unless migrated?
|
54
|
+
Version.columns.select{|obj| obj.name == 'item_id'}.first.try(:type) == :integer
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,6 @@
|
|
1
|
+
Configuration.for('versioning') do
|
2
|
+
enabled true
|
3
|
+
path ":rails_root/public/system/:rails_env/:style/:attachable_klass/:id_partition/:basename.:stream_version.:extension"
|
4
|
+
url ['development', 'test'].include?(Rails.env) ? "/attachments/:id/download" : "/system/:rails_env/:style/:attachable_klass/:id_partition/:basename.:stream_version.:extension"
|
5
|
+
end
|
6
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class CreateVersions < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :versions, force: true do |t|
|
4
|
+
t.string :item_type, null: false
|
5
|
+
<% if use_string_ids? && (migrated? && !has_integer_column?) %>t.string :item_id, null: false # item_type.id generally should be GUID<% else %>t.integer :item_id, null: false, limit: 8<% end %>
|
6
|
+
t.string :event, null: false
|
7
|
+
t.string :whodunnit
|
8
|
+
t.text :object
|
9
|
+
t.datetime :created_at
|
10
|
+
end
|
11
|
+
add_index :versions, [:item_type, :item_id]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'rails/generators/active_record/migration'
|
2
|
+
|
3
|
+
module Rspec
|
4
|
+
module PaperTrail
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
6
|
+
include Rails::Generators::Migration
|
7
|
+
extend ActiveRecord::Generators::Migration
|
8
|
+
|
9
|
+
source_root File.expand_path('../templates', __FILE__)
|
10
|
+
class_option :with_string_ids, type: :boolean, default: true, desc: 'versions.type_id as string (vs integer)'
|
11
|
+
|
12
|
+
class_option :'skip-migrations', type: :boolean, default: false, desc: 'do not generate migrations'
|
13
|
+
class_option :force, type: :boolean, default: false, desc: 'force generation migrations'
|
14
|
+
|
15
|
+
desc 'Generates (but does not run) a migration to add versions table.'
|
16
|
+
|
17
|
+
def generate_migration_file
|
18
|
+
return if options.send(:'skip-migrations')
|
19
|
+
migration_template 'migrations/create_versions.rb', 'db/migrate/create_versions.rb'
|
20
|
+
migration_template 'migrations/stringify_versions_item_id.rb', 'db/migrate/stringify_versions_item_id.rb' if use_string_ids? && (!migrated? || has_integer_column?)
|
21
|
+
end
|
22
|
+
|
23
|
+
desc 'Generates initialization files.'
|
24
|
+
|
25
|
+
def generate_configuration_files
|
26
|
+
copy_file 'features/versioning.rb', 'config/features/versioning.rb'
|
27
|
+
end
|
28
|
+
|
29
|
+
desc 'Augments spec/spec_helper.rb adding paperclip and rspec-extensions'
|
30
|
+
|
31
|
+
def augment_spec_helper
|
32
|
+
[ 'config.include Rspec::PaperTrailExtensions' ].each do |line|
|
33
|
+
insert_into_file 'spec/spec_helper.rb', " #{line}\n", after: "RSpec.configure do |config|\n"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
private
|
37
|
+
def use_string_ids?
|
38
|
+
options.with_string_ids?
|
39
|
+
end
|
40
|
+
def migrated?
|
41
|
+
return true if ActiveRecord::Base.connection.table_exists? 'versions'
|
42
|
+
end
|
43
|
+
def has_integer_column?
|
44
|
+
return false unless migrated?
|
45
|
+
Version.columns.select{|obj| obj.name == 'item_id'}.first.try(:type) == :integer
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,6 @@
|
|
1
|
+
Configuration.for('versioning') do
|
2
|
+
enabled true
|
3
|
+
path ":rails_root/public/system/:rails_env/:style/:attachable_klass/:id_partition/:basename.:stream_version.:extension"
|
4
|
+
url ['development', 'test'].include?(Rails.env) ? "/attachments/:id/download" : "/system/:rails_env/:style/:attachable_klass/:id_partition/:basename.:stream_version.:extension"
|
5
|
+
end
|
6
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class CreateVersions < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :versions, force: true do |t|
|
4
|
+
t.string :item_type, null: false
|
5
|
+
<% if use_string_ids? && (migrated? && !has_integer_column?) %>t.string :item_id, null: false # item_type.id generally should be GUID<% else %>t.integer :item_id, null: false, limit: 8<% end %>
|
6
|
+
t.string :event, null: false
|
7
|
+
t.string :whodunnit
|
8
|
+
t.text :object
|
9
|
+
t.datetime :created_at
|
10
|
+
end
|
11
|
+
add_index :versions, [:item_type, :item_id]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rspec'
|
2
2
|
require 'rspec/expectations'
|
3
3
|
|
4
|
-
module
|
4
|
+
module Rspec::PaperTrailExtensions
|
5
5
|
# :call-seq:
|
6
6
|
# with_versioning
|
7
7
|
#
|
@@ -19,7 +19,7 @@ module RspecExtensions
|
|
19
19
|
end
|
20
20
|
|
21
21
|
RSpec.configure do |config|
|
22
|
-
config.include
|
22
|
+
config.include Rspec::PaperTrailExtensions
|
23
23
|
|
24
24
|
config.before(:each) do
|
25
25
|
PaperTrail.enabled = false
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-paper_trail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-18 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: paper_trail
|
16
|
-
requirement: &
|
16
|
+
requirement: &2266634340 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.7.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2266634340
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &2266633860 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 2.13.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2266633860
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &2266633380 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.3.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2266633380
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &2266633000 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2266633000
|
58
58
|
description: use paper_trail within rspec, conveniently
|
59
59
|
email:
|
60
60
|
- paul.belt@gmail.com
|
@@ -63,10 +63,19 @@ extensions: []
|
|
63
63
|
extra_rdoc_files: []
|
64
64
|
files:
|
65
65
|
- .gitignore
|
66
|
+
- .rvmrc
|
66
67
|
- Gemfile
|
67
68
|
- LICENSE.txt
|
68
69
|
- README.md
|
69
70
|
- Rakefile
|
71
|
+
- lib/generators/rspec-paper_trail/install_generator.rb
|
72
|
+
- lib/generators/rspec-paper_trail/templates/features/versioning.rb
|
73
|
+
- lib/generators/rspec-paper_trail/templates/migrations/create_versions.rb
|
74
|
+
- lib/generators/rspec-paper_trail/templates/migrations/stringify_versions_item_id.rb
|
75
|
+
- lib/generators/rspec/paper_trail/install_generator.rb
|
76
|
+
- lib/generators/rspec/paper_trail/templates/features/versioning.rb
|
77
|
+
- lib/generators/rspec/paper_trail/templates/migrations/create_versions.rb
|
78
|
+
- lib/generators/rspec/paper_trail/templates/migrations/stringify_versions_item_id.rb
|
70
79
|
- lib/rspec/paper_trail.rb
|
71
80
|
- lib/rspec/paper_trail/version.rb
|
72
81
|
- lib/rspec/versioning_extensions.rb
|