much-slug 0.1.0 → 0.1.1

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.
@@ -1,23 +1,22 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "assert"
2
4
  require "much-slug"
3
5
 
4
6
  module MuchSlug
5
7
  class UnitTests < Assert::Context
6
8
  desc "MuchSlug"
7
- setup do
8
- @module = MuchSlug
9
- end
10
- subject{ @module }
9
+ subject{ MuchSlug }
11
10
 
12
11
  should have_imeths :default_attribute, :default_preprocessor
13
12
  should have_imeths :default_separator, :default_allow_underscores
14
13
  should have_imeths :update_slugs
15
14
 
16
15
  should "know its default settings" do
17
- assert_equal "slug", subject.default_attribute
18
- assert_equal :to_s, subject.default_preprocessor
19
- assert_equal "-", subject.default_separator
20
- assert_equal false, subject.default_allow_underscores
16
+ assert_that(subject.default_attribute).equals("slug")
17
+ assert_that(subject.default_preprocessor).equals(:to_s)
18
+ assert_that(subject.default_separator).equals("-")
19
+ assert_that(subject.default_allow_underscores).equals(false)
21
20
  end
22
21
  end
23
22
  end
@@ -1,104 +1,120 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "assert"
2
4
  require "much-slug/slug"
3
5
 
4
6
  module MuchSlug::Slug
5
7
  class UnitTests < Assert::Context
6
8
  desc "MuchSlug::Slug"
7
- setup do
8
- @no_op_pp = proc{ |slug| slug }
9
- @separator = "-"
10
- @args = {
11
- :preprocessor => @no_op_pp,
12
- :separator => @separator
13
- }
9
+ subject{ unit_module }
10
+
11
+ let(:unit_module){ MuchSlug::Slug }
14
12
 
15
- @module = MuchSlug::Slug
13
+ let(:no_op_pp){ proc{ |slug| slug } }
14
+ let(:separator){ "-" }
15
+ let(:kargs) do
16
+ {
17
+ preprocessor: no_op_pp,
18
+ separator: separator,
19
+ }
16
20
  end
17
- subject{ @module }
18
21
 
19
22
  should have_imeths :new
20
23
 
21
24
  should "always dup the given string" do
22
25
  string = Factory.string
23
- assert_not_same string, subject.new(string, **@args)
26
+ assert_that(subject.new(string, **kargs)).is_not(string)
24
27
  end
25
28
 
26
29
  should "not change strings that are made up of valid chars" do
27
30
  string = Factory.string
28
- assert_equal string, subject.new(string, **@args)
31
+ assert_that(subject.new(string, **kargs)).equals(string)
29
32
 
30
- string = "#{Factory.string}#{@separator}#{Factory.string.upcase}"
31
- assert_equal string, subject.new(string, @args)
33
+ string = "#{Factory.string}#{separator}#{Factory.string.upcase}"
34
+ assert_that(subject.new(string, **kargs)).equals(string)
32
35
  end
33
36
 
34
37
  should "turn invalid chars into a separator" do
35
- string = Factory.integer(3).times.map do
36
- "#{Factory.string(3)}#{Factory.non_word_chars.sample}#{Factory.string(3)}"
37
- end.join(Factory.non_word_chars.sample)
38
- assert_equal string.gsub(/[^\w]+/, @separator), subject.new(string, **@args)
38
+ string =
39
+ Array
40
+ .new(Factory.integer(3)){
41
+ "#{Factory.string(3)}#{Factory.non_word_chars.sample}"\
42
+ "#{Factory.string(3)}"
43
+ }
44
+ .join(Factory.non_word_chars.sample)
45
+ assert_that(subject.new(string, **kargs))
46
+ .equals(string.gsub(/[^\w]+/, separator))
39
47
  end
40
48
 
41
49
  should "allow passing a custom preprocessor proc" do
42
- string = "#{Factory.string}#{@separator}#{Factory.string.upcase}"
43
- exp = string.downcase
44
- args = @args.merge(:preprocessor => :downcase.to_proc)
45
- assert_equal exp, subject.new(string, **args)
50
+ string = "#{Factory.string}#{separator}#{Factory.string.upcase}"
51
+ custom_kargs = kargs.merge(preprocessor: :downcase.to_proc)
52
+ assert_that(subject.new(string, **custom_kargs)).equals(string.downcase)
46
53
 
47
54
  preprocessor = proc{ |s| s.gsub(/[A-Z]/, "a") }
48
- exp = preprocessor.call(string)
49
- args = @args.merge(:preprocessor => preprocessor)
50
- assert_equal exp, subject.new(string, **args)
55
+ custom_kargs = kargs.merge(preprocessor: preprocessor)
56
+ assert_that(subject.new(string, **custom_kargs))
57
+ .equals(preprocessor.call(string))
51
58
  end
52
59
 
53
60
  should "allow passing a custom separator" do
54
- separator = Factory.non_word_chars.sample
55
-
61
+ separator = Factory.non_word_chars.sample
56
62
  invalid_char = (Factory.non_word_chars - [separator]).sample
63
+
57
64
  string = "#{Factory.string}#{invalid_char}#{Factory.string}"
58
- exp = string.gsub(/[^\w]+/, separator)
59
- assert_equal exp, subject.new(string, **@args.merge(:separator => separator))
65
+ assert_that(subject.new(string, **kargs.merge(separator: separator)))
66
+ .equals(string.gsub(/[^\w]+/, separator))
60
67
 
61
68
  # it won"t change the separator in the strings
62
69
  string = "#{Factory.string}#{separator}#{Factory.string}"
63
- exp = string
64
- assert_equal string, subject.new(string, **@args.merge(:separator => separator))
70
+ assert_that(subject.new(string, **kargs.merge(separator: separator)))
71
+ .equals(string)
65
72
 
66
73
  # it will change the default separator now
67
- string = "#{Factory.string}#{@separator}#{Factory.string}"
68
- exp = string.gsub(@separator, separator)
69
- assert_equal exp, subject.new(string, **@args.merge(:separator => separator))
74
+ string = "#{Factory.string}#{separator}#{Factory.string}"
75
+ assert_that(subject.new(string, **kargs.merge(separator: separator)))
76
+ .equals(string.gsub(separator, separator))
70
77
  end
71
78
 
72
79
  should "change underscores into its separator if not allowed" do
73
- string = "#{Factory.string}#{@separator}#{Factory.string}"
74
- assert_equal string, subject.new(string, **@args)
80
+ string = "#{Factory.string}#{separator}#{Factory.string}"
81
+ assert_that(subject.new(string, **kargs)).equals(string)
75
82
 
76
- exp = string.gsub("_", @separator)
77
- assert_equal exp, subject.new(string, **@args.merge(:allow_underscores => false))
83
+ custom_kargs = kargs.merge(allow_underscores: false)
84
+ assert_that(subject.new(string, **custom_kargs))
85
+ .equals(string.gsub("_", separator))
78
86
 
79
- assert_equal string, subject.new(string, **@args.merge(:allow_underscores => true))
87
+ custom_kargs = kargs.merge(allow_underscores: true)
88
+ assert_that(subject.new(string, **custom_kargs)).equals(string)
80
89
  end
81
90
 
82
91
  should "not allow multiple separators in a row" do
83
- string = "#{Factory.string}#{@separator}#{@separator}#{Factory.string}"
84
- assert_equal string.gsub(/-{2,}/, @separator), subject.new(string, **@args)
92
+ string = "#{Factory.string}#{separator}#{separator}#{Factory.string}"
93
+ assert_that(subject.new(string, **kargs))
94
+ .equals(string.gsub(/-{2,}/, separator))
85
95
 
86
96
  # remove separators that were added from changing invalid chars
87
97
  invalid_chars =
88
- (Factory.integer(3) + 1).times.map{ Factory.non_word_chars.sample }.join
98
+ Array
99
+ .new(Factory.integer(3) + 1){
100
+ Factory.non_word_chars.sample
101
+ }
102
+ .join
89
103
  string = "#{Factory.string}#{invalid_chars}#{Factory.string}"
90
- assert_equal string.gsub(/[^\w]+/, @separator), subject.new(string, **@args)
104
+ assert_that(subject.new(string, **kargs))
105
+ .equals(string.gsub(/[^\w]+/, separator))
91
106
  end
92
107
 
93
108
  should "remove leading and trailing separators" do
94
- string = "-#{Factory.string}#{@separator}#{Factory.string}-"
95
- assert_equal string[1..-2], subject.new(string, **@args)
109
+ string = "-#{Factory.string}#{separator}#{Factory.string}-"
110
+ assert_that(subject.new(string, **kargs)).equals(string[1..-2])
96
111
 
97
112
  # remove separators that were added from changing invalid chars
98
113
  invalid_char = Factory.non_word_chars.sample
99
114
  string =
100
- "#{invalid_char}#{Factory.string}#{@separator}#{Factory.string}#{invalid_char}"
101
- assert_equal string[1..-2], subject.new(string, **@args)
115
+ "#{invalid_char}#{Factory.string}#{separator}"\
116
+ "#{Factory.string}#{invalid_char}"
117
+ assert_that(subject.new(string, **kargs)).equals(string[1..-2])
102
118
  end
103
119
  end
104
120
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: much-slug
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kelly Redding
@@ -9,50 +9,64 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-02-06 00:00:00.000000000 Z
12
+ date: 2021-01-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: much-plugin
15
+ name: ardb
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 0.2.1
21
- type: :runtime
20
+ version: 0.29.2
21
+ type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 0.2.1
27
+ version: 0.29.2
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: assert
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 2.18.1
34
+ version: 2.19.3
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 2.18.1
41
+ version: 2.19.3
42
42
  - !ruby/object:Gem::Dependency
43
- name: ardb
43
+ name: much-style-guide
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: 0.28.3
48
+ version: 0.6.0
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: 0.28.3
55
+ version: 0.6.0
56
+ - !ruby/object:Gem::Dependency
57
+ name: much-mixin
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 0.2.4
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 0.2.4
56
70
  description: Friendly, human-readable identifiers for database records.
57
71
  email:
58
72
  - kelly@kellyredding.com
@@ -62,6 +76,10 @@ extensions: []
62
76
  extra_rdoc_files: []
63
77
  files:
64
78
  - ".gitignore"
79
+ - ".l.yml"
80
+ - ".rubocop.yml"
81
+ - ".ruby-version"
82
+ - ".t.yml"
65
83
  - Gemfile
66
84
  - LICENSE
67
85
  - README.md
@@ -70,7 +88,7 @@ files:
70
88
  - lib/much-slug/has_slug_registry.rb
71
89
  - lib/much-slug/slug.rb
72
90
  - lib/much-slug/version.rb
73
- - log/.gitkeep
91
+ - log/.keep
74
92
  - much-slug.gemspec
75
93
  - test/helper.rb
76
94
  - test/support/factory.rb
@@ -78,7 +96,6 @@ files:
78
96
  - test/unit/has_slug_registry_tests.rb
79
97
  - test/unit/much-slug_tests.rb
80
98
  - test/unit/slug_tests.rb
81
- - tmp/.gitkeep
82
99
  homepage: https://github.com/redding/much-slug
83
100
  licenses:
84
101
  - MIT
@@ -91,14 +108,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
108
  requirements:
92
109
  - - "~>"
93
110
  - !ruby/object:Gem::Version
94
- version: '2.4'
111
+ version: '2.5'
95
112
  required_rubygems_version: !ruby/object:Gem::Requirement
96
113
  requirements:
97
114
  - - ">="
98
115
  - !ruby/object:Gem::Version
99
116
  version: '0'
100
117
  requirements: []
101
- rubygems_version: 3.0.4
118
+ rubyforge_project:
119
+ rubygems_version: 2.7.6.2
102
120
  signing_key:
103
121
  specification_version: 4
104
122
  summary: Friendly, human-readable identifiers for database records.