rspec-paper_trail 0.0.6 → 0.0.7
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/.rspec +1 -0
- data/lib/generators/rspec/paper_trail/install_generator.rb +1 -8
- data/lib/{rspec/versioning_extensions.rb → generators/rspec/paper_trail/templates/spec/support/rspec-paper_trail.rb} +1 -21
- data/lib/rspec/paper_trail/extensions.rb +21 -0
- data/lib/rspec/paper_trail/version.rb +1 -1
- data/lib/rspec/paper_trail.rb +1 -1
- data/spec/spec.opts +5 -0
- metadata +16 -16
- data/lib/generators/rspec-paper_trail/install_generator.rb +0 -58
- data/lib/generators/rspec-paper_trail/templates/features/versioning.rb +0 -6
- data/lib/generators/rspec-paper_trail/templates/migrations/create_versions.rb +0 -14
- data/lib/generators/rspec-paper_trail/templates/migrations/stringify_versions_item_id.rb +0 -8
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
@@ -24,14 +24,7 @@ module PaperTrail
|
|
24
24
|
|
25
25
|
def generate_configuration_files
|
26
26
|
copy_file 'features/versioning.rb', 'config/features/versioning.rb'
|
27
|
-
|
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
|
27
|
+
copy_file 'spec/support/rspec-paper_trail.rb', 'spec/support/rspec-paper_trail.rb'
|
35
28
|
end
|
36
29
|
private
|
37
30
|
def use_string_ids?
|
@@ -1,24 +1,5 @@
|
|
1
|
-
require 'rspec'
|
2
|
-
require 'rspec/expectations'
|
3
|
-
|
4
|
-
module Rspec::PaperTrailExtensions
|
5
|
-
# :call-seq:
|
6
|
-
# with_versioning
|
7
|
-
#
|
8
|
-
# enable versioning for specific blocks
|
9
|
-
|
10
|
-
def with_versioning
|
11
|
-
was_enabled = PaperTrail.enabled?
|
12
|
-
PaperTrail.enabled = true
|
13
|
-
begin
|
14
|
-
yield
|
15
|
-
ensure
|
16
|
-
PaperTrail.enabled = was_enabled
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
1
|
RSpec.configure do |config|
|
2
|
+
config.include Paperclip::Shoulda::Matchers
|
22
3
|
config.include Rspec::PaperTrailExtensions
|
23
4
|
|
24
5
|
config.before(:each) do
|
@@ -37,4 +18,3 @@ RSpec::Matchers.define :be_versioned do
|
|
37
18
|
actual.respond_to?(:versions)
|
38
19
|
end
|
39
20
|
end
|
40
|
-
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'rspec/expectations'
|
3
|
+
|
4
|
+
module Rspec
|
5
|
+
module PaperTrailExtensions
|
6
|
+
# :call-seq:
|
7
|
+
# with_versioning
|
8
|
+
#
|
9
|
+
# enable versioning for specific blocks
|
10
|
+
|
11
|
+
def with_versioning
|
12
|
+
was_enabled = ::PaperTrail.enabled?
|
13
|
+
::PaperTrail.enabled = true
|
14
|
+
begin
|
15
|
+
yield
|
16
|
+
ensure
|
17
|
+
::PaperTrail.enabled = was_enabled
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/rspec/paper_trail.rb
CHANGED
data/spec/spec.opts
ADDED
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.7
|
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-26 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: paper_trail
|
16
|
-
requirement: &
|
16
|
+
requirement: &2231106500 !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: *2231106500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &2231106020 !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: *2231106020
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &2231105540 !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: *2231105540
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &2231103360 !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: *2231103360
|
58
58
|
description: use paper_trail within rspec, conveniently
|
59
59
|
email:
|
60
60
|
- paul.belt@gmail.com
|
@@ -63,23 +63,22 @@ extensions: []
|
|
63
63
|
extra_rdoc_files: []
|
64
64
|
files:
|
65
65
|
- .gitignore
|
66
|
+
- .rspec
|
66
67
|
- .rvmrc
|
67
68
|
- Gemfile
|
68
69
|
- LICENSE.txt
|
69
70
|
- README.md
|
70
71
|
- 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
72
|
- lib/generators/rspec/paper_trail/install_generator.rb
|
76
73
|
- lib/generators/rspec/paper_trail/templates/features/versioning.rb
|
77
74
|
- lib/generators/rspec/paper_trail/templates/migrations/create_versions.rb
|
78
75
|
- lib/generators/rspec/paper_trail/templates/migrations/stringify_versions_item_id.rb
|
76
|
+
- lib/generators/rspec/paper_trail/templates/spec/support/rspec-paper_trail.rb
|
79
77
|
- lib/rspec/paper_trail.rb
|
78
|
+
- lib/rspec/paper_trail/extensions.rb
|
80
79
|
- lib/rspec/paper_trail/version.rb
|
81
|
-
- lib/rspec/versioning_extensions.rb
|
82
80
|
- rspec-paper_trail.gemspec
|
81
|
+
- spec/spec.opts
|
83
82
|
homepage: https://github.com/belt/rspec-paper_trail
|
84
83
|
licenses:
|
85
84
|
- MIT
|
@@ -105,4 +104,5 @@ rubygems_version: 1.8.10
|
|
105
104
|
signing_key:
|
106
105
|
specification_version: 3
|
107
106
|
summary: provides rspec-matcher to ensure versioning and per-spec, per-block versioning
|
108
|
-
test_files:
|
107
|
+
test_files:
|
108
|
+
- spec/spec.opts
|
@@ -1,58 +0,0 @@
|
|
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
|
@@ -1,6 +0,0 @@
|
|
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
|
-
|
@@ -1,14 +0,0 @@
|
|
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
|
-
|