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 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