sluggi 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1d47ac0cb584d36352b4ac43a1e2f7fc7cde0b85
4
- data.tar.gz: a62c76432d186ab0024492c686fc45cb505f6768
3
+ metadata.gz: ecaade4de3ad956da896972e7506e70bbdad8fb1
4
+ data.tar.gz: c65446d72980b88825ea24cb7e698359bfa1bb59
5
5
  SHA512:
6
- metadata.gz: 7584d82c191aa1c70e35c8ff16c1d0bc39c286340f9a01fb299e9e542b0fe6099bc89c9d55f3bc1147a45bfdf205b9d58d346b58ede60ef2e26e8c418a096ee0
7
- data.tar.gz: f9740626f5c05f675848f399fecd486f296e957420fb52cb726346e47428915e3a185a71dd84261d7e8b834431ac394c3eb755ef802c9a1a1e40ccd4ce3e8a01
6
+ metadata.gz: 354149487f88bf268e4bb13edddd4a68dffbe025fb5fa4bc0cacb1780f0be4d69ff056007ef7d8605831b2e5207a23d9be3b067ce0f8222bad54bcba5d4e481b
7
+ data.tar.gz: 057eb42b298de8d0216766b717c38a22b0d80ac1f01cb58f2ac49ee29409b054660c7194c7a7e7b21b8a1b763c50d1542135fafcfcfe5122fc57845a743e7dd1
data/.travis.yml CHANGED
@@ -1,5 +1,8 @@
1
1
  language: ruby
2
+ cache: bundler
3
+ sudo: false
2
4
  rvm:
3
- - 2.1.4
5
+ - 2.2
6
+ - 2.1
4
7
  - 2.0.0
5
8
  - 1.9.3
@@ -9,7 +9,7 @@ module Sluggi
9
9
  as: :sluggable,
10
10
  dependent: :destroy
11
11
 
12
- after_save :create_slug
12
+ after_save :create_slug, if: :slug_value_changed?
13
13
  end
14
14
 
15
15
  module ClassMethods
@@ -3,7 +3,7 @@ module Sluggi
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  included do
6
- validates :slug, uniqueness: true
6
+ validates :slug, uniqueness: true, if: :slug_value_changed?
7
7
  end
8
8
  end
9
9
  end
@@ -1,3 +1,3 @@
1
1
  module Sluggi
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
data/sluggi.gemspec CHANGED
@@ -1,7 +1,4 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'sluggi/version'
1
+ require './lib/sluggi/version'
5
2
 
6
3
  Gem::Specification.new do |spec|
7
4
  spec.name = "sluggi"
@@ -14,16 +11,15 @@ Gem::Specification.new do |spec|
14
11
  spec.license = "MIT"
15
12
 
16
13
  spec.files = `git ls-files`.split($/)
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
14
  spec.test_files = spec.files.grep(%r{^(test)/})
19
15
  spec.require_paths = ["lib"]
20
16
 
21
17
  spec.required_ruby_version = ">= 1.9.3"
22
18
 
23
19
  spec.add_dependency "activerecord", "~> 4.0"
20
+ spec.add_dependency "railties", "~> 4.0"
24
21
 
25
- spec.add_development_dependency "bundler", "~> 1.5"
26
- spec.add_development_dependency "rake", "~> 10.1"
22
+ spec.add_development_dependency "rake", "~> 10.4"
27
23
  spec.add_development_dependency "sqlite3", "~> 1.3"
28
- spec.add_development_dependency "rails", "~> 4.0"
24
+ spec.add_development_dependency "mocha", "~> 1.0"
29
25
  end
data/test/test_helper.rb CHANGED
@@ -6,16 +6,17 @@ require 'active_support'
6
6
  require 'active_record'
7
7
  require 'sqlite3'
8
8
  require 'sluggi'
9
+ require 'mocha/setup'
9
10
 
10
11
  ActiveRecord::Base.logger = Logger.new(STDERR) if ENV["VERBOSE"]
11
-
12
+
12
13
  ActiveRecord::Base.establish_connection(
13
14
  adapter: "sqlite3",
14
15
  database: ":memory:"
15
16
  )
16
17
 
17
18
  unless ActiveRecord::Base.connection.tables.include?('cats')
18
- ActiveRecord::Schema.define do
19
+ ActiveRecord::Schema.define do
19
20
  create_table :cats do |t|
20
21
  t.datetime :created_at
21
22
  t.string :factoid
@@ -41,4 +42,7 @@ end
41
42
 
42
43
  I18n.enforce_available_locales = true
43
44
 
45
+ # suppress deprecation warning
46
+ ActiveSupport.test_order = :random
47
+
44
48
  # Thanks to this List of Cats: http://en.wikipedia.org/wiki/List_of_cats
@@ -15,10 +15,18 @@ class ValidateUniquenessTest < MiniTest::Spec
15
15
  end
16
16
 
17
17
  it "validates slug is unique" do
18
- Cat.create(slug: 'mrs-chippy')
19
- cat = Cat.new(name: 'Mrs. Chippy')
18
+ Cat.create(slug: "mrs-chippy")
19
+ cat = Cat.new(name: "Mrs. Chippy")
20
20
  refute cat.valid?
21
+ assert_equal "has already been taken", cat.errors[:slug].first
21
22
  assert_nil cat.to_param
22
23
  end
23
24
 
25
+ it "does not validate uniqueness when slug is unchanged" do
26
+ cat = Cat.create(slug: "garfield")
27
+ cat.factoid = "factoid"
28
+ refute cat.slug_value_changed?
29
+ ActiveRecord::Validations::UniquenessValidator.any_instance.expects(:validate_each).never
30
+ assert cat.valid?
31
+ end
24
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sluggi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tee Parham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-08 00:00:00.000000000 Z
11
+ date: 2015-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -25,33 +25,33 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: bundler
28
+ name: railties
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.5'
34
- type: :development
33
+ version: '4.0'
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.5'
40
+ version: '4.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.1'
47
+ version: '10.4'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '10.1'
54
+ version: '10.4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sqlite3
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -67,19 +67,19 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.3'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rails
70
+ name: mocha
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '4.0'
75
+ version: '1.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '4.0'
82
+ version: '1.0'
83
83
  description: A Rails slug generator inspired by friendly_id
84
84
  email:
85
85
  - tee@neighborland.com
@@ -134,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
134
  version: '0'
135
135
  requirements: []
136
136
  rubyforge_project:
137
- rubygems_version: 2.4.4
137
+ rubygems_version: 2.4.8
138
138
  signing_key:
139
139
  specification_version: 4
140
140
  summary: Rails Slug Generator
@@ -148,4 +148,3 @@ test_files:
148
148
  - test/validate_presence_test.rb
149
149
  - test/validate_uniqueness_test.rb
150
150
  - test/validates_exclusion_of_test.rb
151
- has_rdoc: