capitalize_attributes 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: 3a89cd7c8d70e2337f2f025ad4f0f0807e9c4ed884fbf7a02ad9912ae1f4097d
4
- data.tar.gz: 2cec25cab661fcacd636133252da6720f54fa726337364b9df1bd99b71d52e87
3
+ metadata.gz: 90fb96bd3a8b701014b0a9b74e7de51aecf29c3fe81f18df11e72d7ae81c1b80
4
+ data.tar.gz: 496b4a89d010d565ca83602aabfd471606964ae20c5a88019d2a6de5218397b7
5
5
  SHA512:
6
- metadata.gz: de90462c0e36b85e600e68982e2ec5cbe602cc3544ac6c805c6c22d102e151ddb67774d0076584fef9cbb11bb30b6c533d32c59fe06100317ed4bb51158bce11
7
- data.tar.gz: 7cd8809904377811111bbd1ae500c5a7a60ca90672a79ea451b5b99a57a8cd74e792d2b7e2a79c009823e869919b5fc4d389064c6f78bf807b18607554b84704
6
+ metadata.gz: 13c94f232cc8505a38092c822ea203f4ea84b4cb94fe63de71fc7e66c8716b9a24263e3d3383b3245258d14413c4217bbbd73e47c5b42bcb1ceebac2f4072ab5
7
+ data.tar.gz: 1539a3ec5092b024248261ba319fbc9f63ca02b0d7978670f0a978e80ab1ceca274b3a3f8ef8e74c88d3e1665ff3cf37f162c8c23649a0d92c543826210be889
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [[0.1.1]] - 2020-10-21
10
+ ### Added
11
+ - Added testing notes to the README file
12
+
9
13
  ## [[0.1.0]] - 2020-10-21
10
14
  ### Added
11
15
  - Initial capitalization logic and spec
@@ -1,24 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- capitalize_attributes (0.1.0)
4
+ capitalize_attributes (0.1.1)
5
5
  activemodel (>= 5.0, < 7.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (5.2.3)
11
- activesupport (= 5.2.3)
12
- activesupport (5.2.3)
10
+ activemodel (6.0.3.2)
11
+ activesupport (= 6.0.3.2)
12
+ activesupport (6.0.3.2)
13
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
14
14
  i18n (>= 0.7, < 2)
15
15
  minitest (~> 5.1)
16
16
  tzinfo (~> 1.1)
17
- concurrent-ruby (1.1.5)
17
+ zeitwerk (~> 2.2, >= 2.2.2)
18
+ concurrent-ruby (1.1.7)
18
19
  diff-lcs (1.3)
19
- i18n (1.6.0)
20
+ i18n (1.8.5)
20
21
  concurrent-ruby (~> 1.0)
21
- minitest (5.11.3)
22
+ minitest (5.14.1)
22
23
  rake (12.3.3)
23
24
  rspec (3.8.0)
24
25
  rspec-core (~> 3.8.0)
@@ -34,8 +35,9 @@ GEM
34
35
  rspec-support (~> 3.8.0)
35
36
  rspec-support (3.8.2)
36
37
  thread_safe (0.3.6)
37
- tzinfo (1.2.5)
38
+ tzinfo (1.2.7)
38
39
  thread_safe (~> 0.1)
40
+ zeitwerk (2.4.0)
39
41
 
40
42
  PLATFORMS
41
43
  ruby
data/README.md CHANGED
@@ -37,14 +37,74 @@ end
37
37
 
38
38
  => record = MyModel.new(first_name: "whisper", last_name: "SHOUT", city: "McCall")
39
39
  => record.validate
40
+
40
41
  => record.first_name
41
42
  #> "Whisper"
43
+
42
44
  => record.last_name
43
45
  #> "Shout"
46
+
44
47
  => record.city
45
48
  #> "McCall"
46
49
  ```
47
50
 
51
+ ## Testing
52
+
53
+ Capitalize Attributes comes with custom RSpec matchers. To make the matchers available in all your specs,
54
+ include the following in your `rails_helper` file:
55
+ ```ruby
56
+ require "capitalize_attributes/matchers"
57
+
58
+ RSpec.configure do |config|
59
+ config.include CapitalizeAttributes::Matchers
60
+ end
61
+ ```
62
+
63
+ Within your spec file, use the matchers like this:
64
+ ```ruby
65
+ RSpec.describe MyModel do
66
+ it { is_expected.to capitalize_attribute(:first_name) }
67
+ it { is_expected.to capitalize_attribute(:last_name) }
68
+ it { is_expected.not_to capitalize_attribute(:password) }
69
+ end
70
+ ```
71
+
72
+ ### Testing in conjunction with the `strip_attributes` gem
73
+
74
+ The matchers provided with the `strip_attributes` gem are incompatible with this gem. To solve compatibility
75
+ problems, you can monkey-patch the matchers by placing the following inside your RSpec support folder:
76
+ ```ruby
77
+ # spec/support/matchers/strip_attributes.rb
78
+
79
+ # Monkey patch to get StripAttributes working with Titleizable module
80
+ module StripAttributes
81
+ module Matchers
82
+ class StripAttributeMatcher
83
+ def matches?(subject)
84
+ @attributes.all? do |attribute|
85
+ @attribute = attribute
86
+ subject.send("#{@attribute}=", " string ")
87
+ subject.valid?
88
+ subject.send(@attribute).downcase == "string" and collapse_spaces?(subject)
89
+ end
90
+ end
91
+
92
+ private
93
+
94
+ def collapse_spaces?(subject)
95
+ return true if !@options[:collapse_spaces]
96
+
97
+ subject.send("#{@attribute}=", " string string ")
98
+ subject.valid?
99
+ subject.send(@attribute).downcase == "string string"
100
+ end
101
+ end
102
+ end
103
+ end
104
+ ```
105
+ This patch works with `strip_attributes` version 1.11.0. The only changes from the code in that gem
106
+ are the additions of `.downcase` in lines 10 and 21.
107
+
48
108
  ## Development
49
109
 
50
110
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -1,3 +1,3 @@
1
1
  module CapitalizeAttributes
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capitalize_attributes
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
  - Mark Oveson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-21 00:00:00.000000000 Z
11
+ date: 2020-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel