rspec-paper_trail 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source 'http://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in rspec-paper_trail.gemspec
4
4
  gemspec
@@ -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,8 @@
1
+ class StringifyVersionsItemId < ActiveRecord::Migration
2
+ def up
3
+ change_column :versions, :item_id, :string, null: false
4
+ end
5
+ def down
6
+ change_column :versions, :item_id, :integer, limit: 8, null: false
7
+ end
8
+ end
@@ -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
+
@@ -0,0 +1,8 @@
1
+ class StringifyVersionsItemId < ActiveRecord::Migration
2
+ def up
3
+ change_column :versions, :item_id, :string, null: false
4
+ end
5
+ def down
6
+ change_column :versions, :item_id, :integer, limit: 8, null: false
7
+ end
8
+ end
@@ -1,5 +1,5 @@
1
1
  module Rspec
2
2
  module PaperTrail
3
- VERSION = '0.0.5'
3
+ VERSION = '0.0.6'
4
4
  end
5
5
  end
@@ -1,7 +1,7 @@
1
1
  require 'rspec'
2
2
  require 'rspec/expectations'
3
3
 
4
- module RspecExtensions
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 RspecExtensions
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.5
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 00:00:00.000000000Z
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: &2279818840 !ruby/object:Gem::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: *2279818840
24
+ version_requirements: *2266634340
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &2279818360 !ruby/object:Gem::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: *2279818360
35
+ version_requirements: *2266633860
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &2279817880 !ruby/object:Gem::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: *2279817880
46
+ version_requirements: *2266633380
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &2279817500 !ruby/object:Gem::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: *2279817500
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