protective 0.1.0 → 0.2.0
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.
- checksums.yaml +7 -0
- data/.travis.yml +4 -0
- data/Gemfile +7 -8
- data/Gemfile.lock +79 -24
- data/LICENSE.txt +1 -1
- data/README.rdoc +6 -4
- data/Rakefile +4 -9
- data/VERSION +1 -1
- data/lib/protective.rb +15 -13
- data/test/helper.rb +11 -9
- data/test/protective_test.rb +11 -12
- metadata +111 -122
- data/rails/init.rb +0 -1
- data/test/database.yml +0 -3
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0dfc31d7a1219447cc46645f4b5c7d0dbe74ac64
|
4
|
+
data.tar.gz: c73c7eabbefbec37e5e6645538c4342cb97c5e88
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f2c97c8f6657b28630e4190a1a554a60d4378daacd938601dd19255054047c2eb1e296c957ce72b48c7f50e1f6d3c7535a7ff84f9188efbe6075786d2254e1eb
|
7
|
+
data.tar.gz: 9177fd36fc0980acc58680df79cb75e6e6a49709020a735e5c72c03511aa9317030f4b3f6a0ae12b6227b8f85f3b0e5fee442eddc25dc68bb8fe899d0a7e279e
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -1,15 +1,14 @@
|
|
1
|
-
source "
|
2
|
-
# Add dependencies required to use your gem here.
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
1
|
+
source "https://rubygems.org"
|
5
2
|
|
6
3
|
gem "activerecord"
|
7
4
|
|
8
5
|
# Add dependencies to develop your gem here.
|
9
6
|
# Include everything needed to run rake, tests, features, etc.
|
10
7
|
group :development do
|
11
|
-
gem "bundler"
|
12
|
-
gem "jeweler"
|
13
|
-
gem "
|
14
|
-
gem
|
8
|
+
gem "bundler"
|
9
|
+
gem "jeweler"
|
10
|
+
gem "simplecov"
|
11
|
+
gem 'sqlite3', :platforms => :ruby
|
12
|
+
gem 'jdbc-sqlite3', :platforms => :jruby
|
13
|
+
gem 'activerecord-jdbcsqlite3-adapter', :platforms => :jruby
|
15
14
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,35 +1,90 @@
|
|
1
1
|
GEM
|
2
|
-
remote:
|
2
|
+
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
|
-
activemodel (
|
5
|
-
activesupport (=
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
4
|
+
activemodel (5.1.2)
|
5
|
+
activesupport (= 5.1.2)
|
6
|
+
activerecord (5.1.2)
|
7
|
+
activemodel (= 5.1.2)
|
8
|
+
activesupport (= 5.1.2)
|
9
|
+
arel (~> 8.0)
|
10
|
+
activesupport (5.1.2)
|
11
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
12
|
+
i18n (~> 0.7)
|
13
|
+
minitest (~> 5.1)
|
14
|
+
tzinfo (~> 1.1)
|
15
|
+
addressable (2.4.0)
|
16
|
+
arel (8.0.0)
|
17
|
+
builder (3.2.3)
|
18
|
+
concurrent-ruby (1.0.5)
|
19
|
+
descendants_tracker (0.0.4)
|
20
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
21
|
+
docile (1.1.5)
|
22
|
+
faraday (0.9.2)
|
23
|
+
multipart-post (>= 1.2, < 3)
|
24
|
+
git (1.3.0)
|
25
|
+
github_api (0.16.0)
|
26
|
+
addressable (~> 2.4.0)
|
27
|
+
descendants_tracker (~> 0.0.4)
|
28
|
+
faraday (~> 0.8, < 0.10)
|
29
|
+
hashie (>= 3.4)
|
30
|
+
mime-types (>= 1.16, < 3.0)
|
31
|
+
oauth2 (~> 1.0)
|
32
|
+
hashie (3.5.5)
|
33
|
+
highline (1.7.8)
|
34
|
+
i18n (0.8.6)
|
35
|
+
jeweler (2.3.7)
|
36
|
+
builder
|
37
|
+
bundler (>= 1)
|
20
38
|
git (>= 1.2.5)
|
39
|
+
github_api (~> 0.16.0)
|
40
|
+
highline (>= 1.6.15)
|
41
|
+
nokogiri (>= 1.5.10)
|
42
|
+
psych (~> 2.2)
|
21
43
|
rake
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
44
|
+
rdoc
|
45
|
+
semver2
|
46
|
+
json (2.1.0)
|
47
|
+
jwt (1.5.6)
|
48
|
+
mime-types (2.99.3)
|
49
|
+
mini_portile2 (2.2.0)
|
50
|
+
minitest (5.10.2)
|
51
|
+
multi_json (1.12.1)
|
52
|
+
multi_xml (0.6.0)
|
53
|
+
multipart-post (2.0.0)
|
54
|
+
nokogiri (1.8.0)
|
55
|
+
mini_portile2 (~> 2.2.0)
|
56
|
+
oauth2 (1.4.0)
|
57
|
+
faraday (>= 0.8, < 0.13)
|
58
|
+
jwt (~> 1.0)
|
59
|
+
multi_json (~> 1.3)
|
60
|
+
multi_xml (~> 0.5)
|
61
|
+
rack (>= 1.2, < 3)
|
62
|
+
psych (2.2.4)
|
63
|
+
rack (2.0.3)
|
64
|
+
rake (12.0.0)
|
65
|
+
rdoc (5.1.0)
|
66
|
+
semver2 (3.4.2)
|
67
|
+
simplecov (0.14.1)
|
68
|
+
docile (~> 1.1.0)
|
69
|
+
json (>= 1.8, < 3)
|
70
|
+
simplecov-html (~> 0.10.0)
|
71
|
+
simplecov-html (0.10.1)
|
72
|
+
sqlite3 (1.3.13)
|
73
|
+
thread_safe (0.3.6)
|
74
|
+
tzinfo (1.2.3)
|
75
|
+
thread_safe (~> 0.1)
|
26
76
|
|
27
77
|
PLATFORMS
|
28
78
|
ruby
|
29
79
|
|
30
80
|
DEPENDENCIES
|
31
81
|
activerecord
|
32
|
-
|
33
|
-
|
34
|
-
|
82
|
+
activerecord-jdbcsqlite3-adapter
|
83
|
+
bundler
|
84
|
+
jdbc-sqlite3
|
85
|
+
jeweler
|
86
|
+
simplecov
|
35
87
|
sqlite3
|
88
|
+
|
89
|
+
BUNDLED WITH
|
90
|
+
1.15.1
|
data/LICENSE.txt
CHANGED
data/README.rdoc
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
= protective
|
2
2
|
|
3
|
+
{<img src="https://secure.travis-ci.org/codez/protective.png" />}[http://travis-ci.org/codez/protective]
|
4
|
+
|
3
5
|
In your ActiveRecord models, you used to protect the instances from being destroyed as follows:
|
4
6
|
|
5
7
|
before_destroy :protect_if_has_attachments
|
6
|
-
|
8
|
+
|
7
9
|
def protect_if_has_attachments
|
8
10
|
unless attachments.empty?
|
9
11
|
errors.add(:base, "Record has attachments and cannot be destroyed")
|
12
|
+
false
|
10
13
|
end
|
11
14
|
end
|
12
15
|
|
@@ -14,7 +17,7 @@ With +protective+, this is reduced to:
|
|
14
17
|
|
15
18
|
protect_if :attachments, "Record has attachments and cannot be destroyed"
|
16
19
|
|
17
|
-
Of course, you may pass the name of any defined method. If its result evaluates to
|
20
|
+
Of course, you may pass the name of any defined method. If its result evaluates to <tt>present?</tt>, the record is not going to be destroyed. No exception is thrown, but a message is added to the +errors+ object of your model. This may then be used further on.
|
18
21
|
|
19
22
|
To use protective, simply add it to your +Gemfile+:
|
20
23
|
|
@@ -23,6 +26,5 @@ To use protective, simply add it to your +Gemfile+:
|
|
23
26
|
|
24
27
|
== Copyright
|
25
28
|
|
26
|
-
Copyright (c) 2011 Pascal Zumkehr. See LICENSE.txt for
|
29
|
+
Copyright (c) 2011-2017 Pascal Zumkehr. See LICENSE.txt for
|
27
30
|
further details.
|
28
|
-
|
data/Rakefile
CHANGED
@@ -9,6 +9,8 @@ rescue Bundler::BundlerError => e
|
|
9
9
|
end
|
10
10
|
require 'rake'
|
11
11
|
|
12
|
+
task :default => :test
|
13
|
+
|
12
14
|
require 'jeweler'
|
13
15
|
Jeweler::Tasks.new do |gem|
|
14
16
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
@@ -21,7 +23,7 @@ Jeweler::Tasks.new do |gem|
|
|
21
23
|
gem.authors = ["Pascal Zumkehr"]
|
22
24
|
# Include your dependencies below. Runtime dependencies are required when using your gem,
|
23
25
|
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
24
|
-
gem.add_runtime_dependency 'activerecord'
|
26
|
+
# gem.add_runtime_dependency 'activerecord'
|
25
27
|
# gem.add_development_dependency 'rspec', '> 1.2.3'
|
26
28
|
end
|
27
29
|
Jeweler::RubygemsDotOrgTasks.new
|
@@ -33,16 +35,9 @@ Rake::TestTask.new(:test) do |test|
|
|
33
35
|
test.verbose = true
|
34
36
|
end
|
35
37
|
|
36
|
-
require 'rcov/rcovtask'
|
37
|
-
Rcov::RcovTask.new do |test|
|
38
|
-
test.libs << 'test'
|
39
|
-
test.pattern = 'test/**/*_test.rb'
|
40
|
-
test.verbose = true
|
41
|
-
end
|
42
|
-
|
43
38
|
task :default => :test
|
44
39
|
|
45
|
-
require '
|
40
|
+
require 'rdoc/task'
|
46
41
|
Rake::RDocTask.new do |rdoc|
|
47
42
|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
48
43
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/protective.rb
CHANGED
@@ -6,7 +6,7 @@ module Protective
|
|
6
6
|
def self.included(base)
|
7
7
|
base.send :extend, ClassMethods
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
module ClassMethods
|
11
11
|
# Protects a record from being destroyed if the passed method
|
12
12
|
# evaluates to #present? upon destruction. If a messag is given,
|
@@ -16,36 +16,38 @@ module Protective
|
|
16
16
|
class_attribute :protect_if_methods
|
17
17
|
self.protect_if_methods = {}
|
18
18
|
|
19
|
-
before_destroy :destruction_allowed?
|
19
|
+
before_destroy :destruction_allowed?
|
20
20
|
send :include, InstanceMethods
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
protect_if_methods[method] = message
|
24
24
|
end
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
module InstanceMethods
|
28
|
-
|
28
|
+
|
29
29
|
# Returns true if this record cannot be destroyed.
|
30
30
|
def protected?
|
31
31
|
protect_if_methods.keys.any? do |method|
|
32
32
|
!protect_method_allows_destruction(method)
|
33
33
|
end
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
# Returns true if this record may be destroyed or
|
37
37
|
# adds possible error messages to the #errors object otherwise.
|
38
38
|
def destruction_allowed?
|
39
|
-
protect_if_methods.all? do |method, message|
|
40
|
-
|
41
|
-
|
42
|
-
end
|
39
|
+
success = protect_if_methods.all? do |method, message|
|
40
|
+
allowed = protect_method_allows_destruction(method)
|
41
|
+
errors.add(:base, message) if !allowed && message
|
43
42
|
allowed
|
44
43
|
end
|
44
|
+
|
45
|
+
throw(:abort) if !success && ActiveRecord::VERSION::MAJOR >= 5
|
46
|
+
success
|
45
47
|
end
|
46
|
-
|
48
|
+
|
47
49
|
private
|
48
|
-
|
50
|
+
|
49
51
|
def protect_method_allows_destruction(method)
|
50
52
|
value = send(method)
|
51
53
|
if value.respond_to?(:empty?) # ar *_many association
|
@@ -58,4 +60,4 @@ module Protective
|
|
58
60
|
|
59
61
|
end
|
60
62
|
|
61
|
-
ActiveRecord::Base.send :include, Protective
|
63
|
+
ActiveRecord::Base.send :include, Protective
|
data/test/helper.rb
CHANGED
@@ -7,20 +7,22 @@ rescue Bundler::BundlerError => e
|
|
7
7
|
$stderr.puts "Run `bundle install` to install missing gems"
|
8
8
|
exit e.status_code
|
9
9
|
end
|
10
|
-
|
10
|
+
if RUBY_VERSION =~ /\A1\.9/ && !defined?(JRUBY_VERSION)
|
11
|
+
require 'simplecov'
|
12
|
+
SimpleCov.start
|
13
|
+
end
|
14
|
+
|
15
|
+
require 'minitest'
|
16
|
+
require 'minitest/autorun'
|
11
17
|
|
12
18
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
13
19
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
14
20
|
require 'protective'
|
15
21
|
|
22
|
+
DB_CONFIG = { :adapter => (defined?(JRUBY_VERSION) ? 'jdbcsqlite3' : 'sqlite3'),
|
23
|
+
:database => File.join('test', 'protective_plugin.sqlite3.db')}
|
16
24
|
|
17
25
|
def load_schema
|
18
|
-
|
19
|
-
|
20
|
-
ActiveRecord::Base.establish_connection(config['sqlite3'])
|
21
|
-
load(File.dirname(__FILE__) + "/schema.rb")
|
22
|
-
end
|
23
|
-
|
24
|
-
|
25
|
-
class Test::Unit::TestCase
|
26
|
+
ActiveRecord::Base.establish_connection(DB_CONFIG)
|
27
|
+
load(File.join(File.dirname(__FILE__), "schema.rb"))
|
26
28
|
end
|
data/test/protective_test.rb
CHANGED
@@ -1,37 +1,37 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
class ProtectiveTest < Test
|
3
|
+
class ProtectiveTest < Minitest::Test
|
4
4
|
load_schema
|
5
|
-
|
5
|
+
|
6
6
|
class Subject < ActiveRecord::Base
|
7
7
|
has_many :attachments
|
8
|
-
|
8
|
+
|
9
9
|
protect_if :attachments, "Still has attachments"
|
10
10
|
protect_if :marked
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
class Attachment < ActiveRecord::Base
|
14
14
|
belongs_to :subjects
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def test_setup
|
18
18
|
assert_equal [], Subject.all
|
19
19
|
assert_equal 2, Subject.protect_if_methods.size
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
def test_empty_subject_may_be_destroyed
|
23
23
|
s = Subject.create! :name => 'test'
|
24
24
|
assert !s.protected?
|
25
25
|
assert s.destroy
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
def test_marked_subject_may_not_be_destroyed
|
29
29
|
s = Subject.create! :name => 'test', :marked => true
|
30
30
|
assert s.protected?
|
31
31
|
assert !s.destroy
|
32
32
|
assert_equal 0, s.errors.count
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
def test_subject_may_not_be_destroyed_with_attachements
|
36
36
|
s = Subject.create! :name => 'test'
|
37
37
|
s.attachments.create! :name => 'att'
|
@@ -39,13 +39,12 @@ class ProtectiveTest < Test::Unit::TestCase
|
|
39
39
|
assert_equal 1, s.attachments.count
|
40
40
|
assert s.protected?
|
41
41
|
assert !s.destroy
|
42
|
-
assert_equal ["Still has attachments"], s.errors[:base]
|
43
|
-
assert !s.destruction_allowed?
|
42
|
+
assert_equal ["Still has attachments"], Array(s.errors[:base])
|
44
43
|
end
|
45
|
-
|
44
|
+
|
46
45
|
def teardown
|
47
46
|
Subject.delete_all
|
48
47
|
Attachment.delete_all
|
49
48
|
end
|
50
|
-
|
49
|
+
|
51
50
|
end
|
metadata
CHANGED
@@ -1,122 +1,126 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: protective
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: false
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 0
|
10
|
-
version: 0.1.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Pascal Zumkehr
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
none: false
|
24
|
-
requirements:
|
11
|
+
date: 2017-07-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activerecord
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
25
17
|
- - ">="
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
segments:
|
29
|
-
- 0
|
30
|
-
version: "0"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
31
20
|
type: :runtime
|
32
|
-
name: activerecord
|
33
21
|
prerelease: false
|
34
|
-
version_requirements:
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
hash: 23
|
42
|
-
segments:
|
43
|
-
- 1
|
44
|
-
- 0
|
45
|
-
- 0
|
46
|
-
version: 1.0.0
|
47
|
-
type: :development
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
48
28
|
name: bundler
|
49
|
-
|
50
|
-
|
51
|
-
-
|
52
|
-
|
53
|
-
|
54
|
-
requirements:
|
55
|
-
- - ~>
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
hash: 7
|
58
|
-
segments:
|
59
|
-
- 1
|
60
|
-
- 5
|
61
|
-
- 2
|
62
|
-
version: 1.5.2
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
63
34
|
type: :development
|
64
|
-
name: jeweler
|
65
35
|
prerelease: false
|
66
|
-
version_requirements:
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: jeweler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
71
45
|
- - ">="
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
segments:
|
75
|
-
- 0
|
76
|
-
version: "0"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
77
48
|
type: :development
|
78
|
-
name: rcov
|
79
49
|
prerelease: false
|
80
|
-
version_requirements:
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: simplecov
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
85
59
|
- - ">="
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
88
|
-
segments:
|
89
|
-
- 0
|
90
|
-
version: "0"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
91
62
|
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
92
70
|
name: sqlite3
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
93
77
|
prerelease: false
|
94
|
-
version_requirements:
|
95
|
-
|
96
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
99
80
|
- - ">="
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: jdbc-sqlite3
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
107
91
|
prerelease: false
|
108
|
-
version_requirements:
|
109
|
-
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: activerecord-jdbcsqlite3-adapter
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description: Protect records from being destroyed in a declarative way. Simply add
|
112
|
+
'protect_if :dont_delete, "Record is marked as not deletable"' to your ActiveRecord
|
113
|
+
model. Your record will no be destroyed and the given message is added to the errors
|
114
|
+
object.
|
110
115
|
email: spam@codez.ch
|
111
116
|
executables: []
|
112
|
-
|
113
117
|
extensions: []
|
114
|
-
|
115
|
-
extra_rdoc_files:
|
118
|
+
extra_rdoc_files:
|
116
119
|
- LICENSE.txt
|
117
120
|
- README.rdoc
|
118
|
-
files:
|
119
|
-
- .document
|
121
|
+
files:
|
122
|
+
- ".document"
|
123
|
+
- ".travis.yml"
|
120
124
|
- Gemfile
|
121
125
|
- Gemfile.lock
|
122
126
|
- LICENSE.txt
|
@@ -124,46 +128,31 @@ files:
|
|
124
128
|
- Rakefile
|
125
129
|
- VERSION
|
126
130
|
- lib/protective.rb
|
127
|
-
- rails/init.rb
|
128
|
-
- test/database.yml
|
129
131
|
- test/helper.rb
|
130
132
|
- test/protective_test.rb
|
131
133
|
- test/schema.rb
|
132
|
-
has_rdoc: true
|
133
134
|
homepage: http://github.com/codez/protective
|
134
|
-
licenses:
|
135
|
+
licenses:
|
135
136
|
- MIT
|
137
|
+
metadata: {}
|
136
138
|
post_install_message:
|
137
139
|
rdoc_options: []
|
138
|
-
|
139
|
-
require_paths:
|
140
|
+
require_paths:
|
140
141
|
- lib
|
141
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
-
|
143
|
-
requirements:
|
142
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
144
|
- - ">="
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
version: "0"
|
150
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
-
none: false
|
152
|
-
requirements:
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
153
149
|
- - ">="
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
|
156
|
-
segments:
|
157
|
-
- 0
|
158
|
-
version: "0"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
159
152
|
requirements: []
|
160
|
-
|
161
153
|
rubyforge_project:
|
162
|
-
rubygems_version:
|
154
|
+
rubygems_version: 2.4.8
|
163
155
|
signing_key:
|
164
|
-
specification_version:
|
156
|
+
specification_version: 4
|
165
157
|
summary: Protect records from being destroyed in a declarative way
|
166
|
-
test_files:
|
167
|
-
- test/helper.rb
|
168
|
-
- test/protective_test.rb
|
169
|
-
- test/schema.rb
|
158
|
+
test_files: []
|
data/rails/init.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'protective'
|
data/test/database.yml
DELETED