trace_location 0.9.3 → 0.9.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +41 -316
- data/examples/active_record_establish_connection/result.csv +265 -0
- data/examples/active_record_establish_connection/result.log +271 -0
- data/examples/active_record_establish_connection/result.md +2279 -0
- data/examples/active_record_validation_process/result.csv +11 -0
- data/examples/active_record_validation_process/result.log +17 -0
- data/examples/active_record_validation_process/result.md +69 -0
- data/examples/has_secure_password/result.csv +41 -0
- data/examples/has_secure_password/result.log +47 -0
- data/examples/has_secure_password/result.md +395 -0
- data/examples/lifecycle_of_rails_application/result.csv +2769 -0
- data/examples/lifecycle_of_rails_application/result.log +2775 -0
- data/examples/lifecycle_of_rails_application/result.md +21437 -0
- data/examples/rendering_process/result.csv +617 -0
- data/examples/rendering_process/result.log +623 -0
- data/examples/rendering_process/result.md +4414 -0
- data/lib/trace_location/collector.rb +6 -2
- data/lib/trace_location/config.rb +2 -2
- data/lib/trace_location/generator/csv.rb +12 -2
- data/lib/trace_location/generator/log.rb +6 -7
- data/lib/trace_location/generator/markdown.rb +5 -4
- data/lib/trace_location/version.rb +1 -1
- metadata +17 -3
- data/CHANGELOG.md +0 -19
@@ -0,0 +1,11 @@
|
|
1
|
+
id,event,path,lineno,caller_path,caller_lineno,owner_with_name,hierarchy
|
2
|
+
1,call,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb,65,(irb),4,ActiveRecord::Validations#valid?,0
|
3
|
+
2,call,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb,75,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb,66,ActiveRecord::Validations#default_validation_context,1
|
4
|
+
3,call,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/persistence.rb,231,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb,76,ActiveRecord::Persistence#new_record?,2
|
5
|
+
4,call,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb,490,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/persistence.rb,232,ActiveRecord::Transactions#sync_with_transaction_state,3
|
6
|
+
5,call,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb,494,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb,491,ActiveRecord::Transactions#update_attributes_from_transaction_state,4
|
7
|
+
6,return,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb,500,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb,491,ActiveRecord::Transactions#update_attributes_from_transaction_state,4
|
8
|
+
7,return,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb,492,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/persistence.rb,232,ActiveRecord::Transactions#sync_with_transaction_state,3
|
9
|
+
8,return,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/persistence.rb,234,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb,76,ActiveRecord::Persistence#new_record?,2
|
10
|
+
9,return,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb,77,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb,66,ActiveRecord::Validations#default_validation_context,1
|
11
|
+
10,return,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb,69,(irb),4,ActiveRecord::Validations#valid?,0
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Logged by TraceLocation gem at 2019-06-08 01:19:25 +0900
|
2
|
+
https://github.com/yhirano55/trace_location
|
3
|
+
|
4
|
+
[Tracing events] C: Call, R: Return
|
5
|
+
|
6
|
+
C vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb:65 [ActiveRecord::Validations#valid?]
|
7
|
+
C vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb:75 [ActiveRecord::Validations#default_validation_context]
|
8
|
+
C vendor/bundle/gems/activerecord-5.2.3/lib/active_record/persistence.rb:231 [ActiveRecord::Persistence#new_record?]
|
9
|
+
C vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb:490 [ActiveRecord::Transactions#sync_with_transaction_state]
|
10
|
+
C vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb:494 [ActiveRecord::Transactions#update_attributes_from_transaction_state]
|
11
|
+
R vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb:500 [ActiveRecord::Transactions#update_attributes_from_transaction_state]
|
12
|
+
R vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb:492 [ActiveRecord::Transactions#sync_with_transaction_state]
|
13
|
+
R vendor/bundle/gems/activerecord-5.2.3/lib/active_record/persistence.rb:234 [ActiveRecord::Persistence#new_record?]
|
14
|
+
R vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb:77 [ActiveRecord::Validations#default_validation_context]
|
15
|
+
R vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb:69 [ActiveRecord::Validations#valid?]
|
16
|
+
|
17
|
+
Result: true
|
@@ -0,0 +1,69 @@
|
|
1
|
+
Generated by [trace_location](https://github.com/yhirano55/trace_location) at 2019-06-08 01:19:34 +0900
|
2
|
+
|
3
|
+
<details open>
|
4
|
+
<summary>vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb:65</summary>
|
5
|
+
|
6
|
+
##### ActiveRecord::Validations#valid?
|
7
|
+
|
8
|
+
```ruby
|
9
|
+
def valid?(context = nil)
|
10
|
+
context ||= default_validation_context
|
11
|
+
output = super(context)
|
12
|
+
errors.empty? && output
|
13
|
+
end
|
14
|
+
# called from (irb):5
|
15
|
+
```
|
16
|
+
</details>
|
17
|
+
<details open>
|
18
|
+
<summary>vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb:75</summary>
|
19
|
+
|
20
|
+
##### ActiveRecord::Validations#default_validation_context
|
21
|
+
|
22
|
+
```ruby
|
23
|
+
def default_validation_context
|
24
|
+
new_record? ? :create : :update
|
25
|
+
end
|
26
|
+
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb:66
|
27
|
+
```
|
28
|
+
</details>
|
29
|
+
<details open>
|
30
|
+
<summary>vendor/bundle/gems/activerecord-5.2.3/lib/active_record/persistence.rb:231</summary>
|
31
|
+
|
32
|
+
##### ActiveRecord::Persistence#new_record?
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
def new_record?
|
36
|
+
sync_with_transaction_state
|
37
|
+
@new_record
|
38
|
+
end
|
39
|
+
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations.rb:76
|
40
|
+
```
|
41
|
+
</details>
|
42
|
+
<details open>
|
43
|
+
<summary>vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb:490</summary>
|
44
|
+
|
45
|
+
##### ActiveRecord::Transactions#sync_with_transaction_state
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
def sync_with_transaction_state
|
49
|
+
update_attributes_from_transaction_state(@transaction_state)
|
50
|
+
end
|
51
|
+
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/persistence.rb:232
|
52
|
+
```
|
53
|
+
</details>
|
54
|
+
<details open>
|
55
|
+
<summary>vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb:494</summary>
|
56
|
+
|
57
|
+
##### ActiveRecord::Transactions#update_attributes_from_transaction_state
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
def update_attributes_from_transaction_state(transaction_state)
|
61
|
+
if transaction_state && transaction_state.finalized?
|
62
|
+
restore_transaction_record_state(transaction_state.fully_rolledback?) if transaction_state.rolledback?
|
63
|
+
force_clear_transaction_record_state if transaction_state.fully_committed?
|
64
|
+
clear_transaction_record_state if transaction_state.fully_completed?
|
65
|
+
end
|
66
|
+
end
|
67
|
+
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/transactions.rb:491
|
68
|
+
```
|
69
|
+
</details>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
id,event,path,lineno,caller_path,caller_lineno,owner_with_name,hierarchy
|
2
|
+
1,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb,55,app/models/user.rb,3,ActiveModel::SecurePassword::ClassMethods.has_secure_password,0
|
3
|
+
2,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb,154,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb,75,ActiveModel::Validations::ClassMethods.validate,1
|
4
|
+
3,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb,175,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb,75,ActiveModel::Validations::ClassMethods.validate,1
|
5
|
+
4,call,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations/length.rb,19,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb,79,ActiveRecord::Validations::ClassMethods.validates_length_of,1
|
6
|
+
5,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/helper_methods.rb,7,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations/length.rb,20,ActiveModel::Validations::HelperMethods._merge_attributes,2
|
7
|
+
6,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/helper_methods.rb,12,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations/length.rb,20,ActiveModel::Validations::HelperMethods._merge_attributes,2
|
8
|
+
7,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,81,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations/length.rb,20,ActiveModel::Validations::ClassMethods.validates_with,2
|
9
|
+
8,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb,11,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,86,ActiveModel::Validations::LengthValidator#initialize,3
|
10
|
+
9,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,138,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb,21,ActiveModel::Validations::LengthValidator#initialize,4
|
11
|
+
10,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,108,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,141,ActiveModel::Validations::LengthValidator#initialize,5
|
12
|
+
11,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,110,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,141,ActiveModel::Validations::LengthValidator#initialize,5
|
13
|
+
12,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb,24,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,142,ActiveModel::Validations::LengthValidator#check_validity!,5
|
14
|
+
13,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb,38,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,142,ActiveModel::Validations::LengthValidator#check_validity!,5
|
15
|
+
14,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,143,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb,21,ActiveModel::Validations::LengthValidator#initialize,4
|
16
|
+
15,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb,22,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,86,ActiveModel::Validations::LengthValidator#initialize,3
|
17
|
+
16,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,90,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,89,User._validators,3
|
18
|
+
17,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb,154,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,96,ActiveModel::Validations::ClassMethods.validate,3
|
19
|
+
18,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb,175,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,96,ActiveModel::Validations::ClassMethods.validate,3
|
20
|
+
19,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,98,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations/length.rb,20,ActiveModel::Validations::ClassMethods.validates_with,2
|
21
|
+
20,return,vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations/length.rb,21,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb,79,ActiveRecord::Validations::ClassMethods.validates_length_of,1
|
22
|
+
21,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,75,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb,80,ActiveModel::Validations::HelperMethods.validates_confirmation_of,1
|
23
|
+
22,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/helper_methods.rb,7,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,76,ActiveModel::Validations::HelperMethods._merge_attributes,2
|
24
|
+
23,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/helper_methods.rb,12,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,76,ActiveModel::Validations::HelperMethods._merge_attributes,2
|
25
|
+
24,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,81,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,76,ActiveModel::Validations::ClassMethods.validates_with,2
|
26
|
+
25,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,6,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,86,ActiveModel::Validations::ConfirmationValidator#initialize,3
|
27
|
+
26,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,138,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,7,ActiveModel::Validations::ConfirmationValidator#initialize,4
|
28
|
+
27,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,108,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,141,ActiveModel::Validations::ConfirmationValidator#initialize,5
|
29
|
+
28,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,110,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,141,ActiveModel::Validations::ConfirmationValidator#initialize,5
|
30
|
+
29,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,165,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,142,ActiveModel::EachValidator#check_validity!,5
|
31
|
+
30,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,166,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,142,ActiveModel::EachValidator#check_validity!,5
|
32
|
+
31,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb,143,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,7,ActiveModel::Validations::ConfirmationValidator#initialize,4
|
33
|
+
32,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,21,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,8,ActiveModel::Validations::ConfirmationValidator#setup!,4
|
34
|
+
33,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,29,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,8,ActiveModel::Validations::ConfirmationValidator#setup!,4
|
35
|
+
34,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,9,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,86,ActiveModel::Validations::ConfirmationValidator#initialize,3
|
36
|
+
35,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,90,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,89,User._validators,3
|
37
|
+
36,call,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb,154,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,96,ActiveModel::Validations::ClassMethods.validate,3
|
38
|
+
37,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb,175,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,96,ActiveModel::Validations::ClassMethods.validate,3
|
39
|
+
38,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb,98,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,76,ActiveModel::Validations::ClassMethods.validates_with,2
|
40
|
+
39,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb,77,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb,80,ActiveModel::Validations::HelperMethods.validates_confirmation_of,1
|
41
|
+
40,return,vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb,82,app/models/user.rb,3,ActiveModel::SecurePassword::ClassMethods.has_secure_password,0
|
@@ -0,0 +1,47 @@
|
|
1
|
+
Logged by TraceLocation gem at 2019-06-08 01:28:53 +0900
|
2
|
+
https://github.com/yhirano55/trace_location
|
3
|
+
|
4
|
+
[Tracing events] C: Call, R: Return
|
5
|
+
|
6
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb:55 [ActiveModel::SecurePassword::ClassMethods.has_secure_password]
|
7
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb:154 [ActiveModel::Validations::ClassMethods.validate]
|
8
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb:175 [ActiveModel::Validations::ClassMethods.validate]
|
9
|
+
C vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations/length.rb:19 [ActiveRecord::Validations::ClassMethods.validates_length_of]
|
10
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/helper_methods.rb:7 [ActiveModel::Validations::HelperMethods._merge_attributes]
|
11
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/helper_methods.rb:12 [ActiveModel::Validations::HelperMethods._merge_attributes]
|
12
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:81 [ActiveModel::Validations::ClassMethods.validates_with]
|
13
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb:11 [ActiveModel::Validations::LengthValidator#initialize]
|
14
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:138 [ActiveModel::Validations::LengthValidator#initialize]
|
15
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:108 [ActiveModel::Validations::LengthValidator#initialize]
|
16
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:110 [ActiveModel::Validations::LengthValidator#initialize]
|
17
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb:24 [ActiveModel::Validations::LengthValidator#check_validity!]
|
18
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb:38 [ActiveModel::Validations::LengthValidator#check_validity!]
|
19
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:143 [ActiveModel::Validations::LengthValidator#initialize]
|
20
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb:22 [ActiveModel::Validations::LengthValidator#initialize]
|
21
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:90 [User._validators]
|
22
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb:154 [ActiveModel::Validations::ClassMethods.validate]
|
23
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb:175 [ActiveModel::Validations::ClassMethods.validate]
|
24
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:98 [ActiveModel::Validations::ClassMethods.validates_with]
|
25
|
+
R vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations/length.rb:21 [ActiveRecord::Validations::ClassMethods.validates_length_of]
|
26
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:75 [ActiveModel::Validations::HelperMethods.validates_confirmation_of]
|
27
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/helper_methods.rb:7 [ActiveModel::Validations::HelperMethods._merge_attributes]
|
28
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/helper_methods.rb:12 [ActiveModel::Validations::HelperMethods._merge_attributes]
|
29
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:81 [ActiveModel::Validations::ClassMethods.validates_with]
|
30
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:6 [ActiveModel::Validations::ConfirmationValidator#initialize]
|
31
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:138 [ActiveModel::Validations::ConfirmationValidator#initialize]
|
32
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:108 [ActiveModel::Validations::ConfirmationValidator#initialize]
|
33
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:110 [ActiveModel::Validations::ConfirmationValidator#initialize]
|
34
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:165 [ActiveModel::EachValidator#check_validity!]
|
35
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:166 [ActiveModel::EachValidator#check_validity!]
|
36
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:143 [ActiveModel::Validations::ConfirmationValidator#initialize]
|
37
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:21 [ActiveModel::Validations::ConfirmationValidator#setup!]
|
38
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:29 [ActiveModel::Validations::ConfirmationValidator#setup!]
|
39
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:9 [ActiveModel::Validations::ConfirmationValidator#initialize]
|
40
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:90 [User._validators]
|
41
|
+
C vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb:154 [ActiveModel::Validations::ClassMethods.validate]
|
42
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb:175 [ActiveModel::Validations::ClassMethods.validate]
|
43
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:98 [ActiveModel::Validations::ClassMethods.validates_with]
|
44
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:77 [ActiveModel::Validations::HelperMethods.validates_confirmation_of]
|
45
|
+
R vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb:82 [ActiveModel::SecurePassword::ClassMethods.has_secure_password]
|
46
|
+
|
47
|
+
Result: [ActiveModel::Validations::ConfirmationValidator]
|
@@ -0,0 +1,395 @@
|
|
1
|
+
Generated by [trace_location](https://github.com/yhirano55/trace_location) at 2019-06-08 01:28:44 +0900
|
2
|
+
|
3
|
+
<details open>
|
4
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb:55</summary>
|
5
|
+
|
6
|
+
##### ActiveModel::SecurePassword::ClassMethods.has_secure_password
|
7
|
+
|
8
|
+
```ruby
|
9
|
+
def has_secure_password(options = {})
|
10
|
+
# Load bcrypt gem only when has_secure_password is used.
|
11
|
+
# This is to avoid ActiveModel (and by extension the entire framework)
|
12
|
+
# being dependent on a binary library.
|
13
|
+
begin
|
14
|
+
require "bcrypt"
|
15
|
+
rescue LoadError
|
16
|
+
$stderr.puts "You don't have bcrypt installed in your application. Please add it to your Gemfile and run bundle install"
|
17
|
+
raise
|
18
|
+
end
|
19
|
+
|
20
|
+
include InstanceMethodsOnActivation
|
21
|
+
|
22
|
+
if options.fetch(:validations, true)
|
23
|
+
include ActiveModel::Validations
|
24
|
+
|
25
|
+
# This ensures the model has a password by checking whether the password_digest
|
26
|
+
# is present, so that this works with both new and existing records. However,
|
27
|
+
# when there is an error, the message is added to the password attribute instead
|
28
|
+
# so that the error message will make sense to the end-user.
|
29
|
+
validate do |record|
|
30
|
+
record.errors.add(:password, :blank) unless record.password_digest.present?
|
31
|
+
end
|
32
|
+
|
33
|
+
validates_length_of :password, maximum: ActiveModel::SecurePassword::MAX_PASSWORD_LENGTH_ALLOWED
|
34
|
+
validates_confirmation_of :password, allow_blank: true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
# called from app/models/user.rb:3
|
38
|
+
```
|
39
|
+
</details>
|
40
|
+
<details open>
|
41
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb:154</summary>
|
42
|
+
|
43
|
+
##### ActiveModel::Validations::ClassMethods.validate
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
def validate(*args, &block)
|
47
|
+
options = args.extract_options!
|
48
|
+
|
49
|
+
if args.all? { |arg| arg.is_a?(Symbol) }
|
50
|
+
options.each_key do |k|
|
51
|
+
unless VALID_OPTIONS_FOR_VALIDATE.include?(k)
|
52
|
+
raise ArgumentError.new("Unknown key: #{k.inspect}. Valid keys are: #{VALID_OPTIONS_FOR_VALIDATE.map(&:inspect).join(', ')}. Perhaps you meant to call `validates` instead of `validate`?")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
if options.key?(:on)
|
58
|
+
options = options.dup
|
59
|
+
options[:on] = Array(options[:on])
|
60
|
+
options[:if] = Array(options[:if])
|
61
|
+
options[:if].unshift ->(o) {
|
62
|
+
!(options[:on] & Array(o.validation_context)).empty?
|
63
|
+
}
|
64
|
+
end
|
65
|
+
|
66
|
+
set_callback(:validate, *args, options, &block)
|
67
|
+
end
|
68
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb:75
|
69
|
+
```
|
70
|
+
</details>
|
71
|
+
<details open>
|
72
|
+
<summary>vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations/length.rb:19</summary>
|
73
|
+
|
74
|
+
##### ActiveRecord::Validations::ClassMethods.validates_length_of
|
75
|
+
|
76
|
+
```ruby
|
77
|
+
def validates_length_of(*attr_names)
|
78
|
+
validates_with LengthValidator, _merge_attributes(attr_names)
|
79
|
+
end
|
80
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb:79
|
81
|
+
```
|
82
|
+
</details>
|
83
|
+
<details open>
|
84
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/helper_methods.rb:7</summary>
|
85
|
+
|
86
|
+
##### ActiveModel::Validations::HelperMethods._merge_attributes
|
87
|
+
|
88
|
+
```ruby
|
89
|
+
def _merge_attributes(attr_names)
|
90
|
+
options = attr_names.extract_options!.symbolize_keys
|
91
|
+
attr_names.flatten!
|
92
|
+
options[:attributes] = attr_names
|
93
|
+
options
|
94
|
+
end
|
95
|
+
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations/length.rb:20
|
96
|
+
```
|
97
|
+
</details>
|
98
|
+
<details open>
|
99
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:81</summary>
|
100
|
+
|
101
|
+
##### ActiveModel::Validations::ClassMethods.validates_with
|
102
|
+
|
103
|
+
```ruby
|
104
|
+
def validates_with(*args, &block)
|
105
|
+
options = args.extract_options!
|
106
|
+
options[:class] = self
|
107
|
+
|
108
|
+
args.each do |klass|
|
109
|
+
validator = klass.new(options, &block)
|
110
|
+
|
111
|
+
if validator.respond_to?(:attributes) && !validator.attributes.empty?
|
112
|
+
validator.attributes.each do |attribute|
|
113
|
+
_validators[attribute.to_sym] << validator
|
114
|
+
end
|
115
|
+
else
|
116
|
+
_validators[nil] << validator
|
117
|
+
end
|
118
|
+
|
119
|
+
validate(validator, options)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/validations/length.rb:20
|
123
|
+
```
|
124
|
+
</details>
|
125
|
+
<details open>
|
126
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb:11</summary>
|
127
|
+
|
128
|
+
##### ActiveModel::Validations::LengthValidator#initialize
|
129
|
+
|
130
|
+
```ruby
|
131
|
+
def initialize(options)
|
132
|
+
if range = (options.delete(:in) || options.delete(:within))
|
133
|
+
raise ArgumentError, ":in and :within must be a Range" unless range.is_a?(Range)
|
134
|
+
options[:minimum], options[:maximum] = range.min, range.max
|
135
|
+
end
|
136
|
+
|
137
|
+
if options[:allow_blank] == false && options[:minimum].nil? && options[:is].nil?
|
138
|
+
options[:minimum] = 1
|
139
|
+
end
|
140
|
+
|
141
|
+
super
|
142
|
+
end
|
143
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:86
|
144
|
+
```
|
145
|
+
</details>
|
146
|
+
<details open>
|
147
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:138</summary>
|
148
|
+
|
149
|
+
##### ActiveModel::Validations::LengthValidator#initialize
|
150
|
+
|
151
|
+
```ruby
|
152
|
+
def initialize(options)
|
153
|
+
if range = (options.delete(:in) || options.delete(:within))
|
154
|
+
raise ArgumentError, ":in and :within must be a Range" unless range.is_a?(Range)
|
155
|
+
options[:minimum], options[:maximum] = range.min, range.max
|
156
|
+
end
|
157
|
+
|
158
|
+
if options[:allow_blank] == false && options[:minimum].nil? && options[:is].nil?
|
159
|
+
options[:minimum] = 1
|
160
|
+
end
|
161
|
+
|
162
|
+
super
|
163
|
+
end
|
164
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb:21
|
165
|
+
```
|
166
|
+
</details>
|
167
|
+
<details open>
|
168
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:108</summary>
|
169
|
+
|
170
|
+
##### ActiveModel::Validations::LengthValidator#initialize
|
171
|
+
|
172
|
+
```ruby
|
173
|
+
def initialize(options)
|
174
|
+
if range = (options.delete(:in) || options.delete(:within))
|
175
|
+
raise ArgumentError, ":in and :within must be a Range" unless range.is_a?(Range)
|
176
|
+
options[:minimum], options[:maximum] = range.min, range.max
|
177
|
+
end
|
178
|
+
|
179
|
+
if options[:allow_blank] == false && options[:minimum].nil? && options[:is].nil?
|
180
|
+
options[:minimum] = 1
|
181
|
+
end
|
182
|
+
|
183
|
+
super
|
184
|
+
end
|
185
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:141
|
186
|
+
```
|
187
|
+
</details>
|
188
|
+
<details open>
|
189
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/length.rb:24</summary>
|
190
|
+
|
191
|
+
##### ActiveModel::Validations::LengthValidator#check_validity!
|
192
|
+
|
193
|
+
```ruby
|
194
|
+
def check_validity!
|
195
|
+
keys = CHECKS.keys & options.keys
|
196
|
+
|
197
|
+
if keys.empty?
|
198
|
+
raise ArgumentError, "Range unspecified. Specify the :in, :within, :maximum, :minimum, or :is option."
|
199
|
+
end
|
200
|
+
|
201
|
+
keys.each do |key|
|
202
|
+
value = options[key]
|
203
|
+
|
204
|
+
unless (value.is_a?(Integer) && value >= 0) || value == Float::INFINITY || value.is_a?(Symbol) || value.is_a?(Proc)
|
205
|
+
raise ArgumentError, ":#{key} must be a nonnegative Integer, Infinity, Symbol, or Proc"
|
206
|
+
end
|
207
|
+
end
|
208
|
+
end
|
209
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:142
|
210
|
+
```
|
211
|
+
</details>
|
212
|
+
<details open>
|
213
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb:154</summary>
|
214
|
+
|
215
|
+
##### ActiveModel::Validations::ClassMethods.validate
|
216
|
+
|
217
|
+
```ruby
|
218
|
+
def validate(*args, &block)
|
219
|
+
options = args.extract_options!
|
220
|
+
|
221
|
+
if args.all? { |arg| arg.is_a?(Symbol) }
|
222
|
+
options.each_key do |k|
|
223
|
+
unless VALID_OPTIONS_FOR_VALIDATE.include?(k)
|
224
|
+
raise ArgumentError.new("Unknown key: #{k.inspect}. Valid keys are: #{VALID_OPTIONS_FOR_VALIDATE.map(&:inspect).join(', ')}. Perhaps you meant to call `validates` instead of `validate`?")
|
225
|
+
end
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
if options.key?(:on)
|
230
|
+
options = options.dup
|
231
|
+
options[:on] = Array(options[:on])
|
232
|
+
options[:if] = Array(options[:if])
|
233
|
+
options[:if].unshift ->(o) {
|
234
|
+
!(options[:on] & Array(o.validation_context)).empty?
|
235
|
+
}
|
236
|
+
end
|
237
|
+
|
238
|
+
set_callback(:validate, *args, options, &block)
|
239
|
+
end
|
240
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:96
|
241
|
+
```
|
242
|
+
</details>
|
243
|
+
<details open>
|
244
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:75</summary>
|
245
|
+
|
246
|
+
##### ActiveModel::Validations::HelperMethods.validates_confirmation_of
|
247
|
+
|
248
|
+
```ruby
|
249
|
+
def validates_confirmation_of(*attr_names)
|
250
|
+
validates_with ConfirmationValidator, _merge_attributes(attr_names)
|
251
|
+
end
|
252
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/secure_password.rb:80
|
253
|
+
```
|
254
|
+
</details>
|
255
|
+
<details open>
|
256
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/helper_methods.rb:7</summary>
|
257
|
+
|
258
|
+
##### ActiveModel::Validations::HelperMethods._merge_attributes
|
259
|
+
|
260
|
+
```ruby
|
261
|
+
def _merge_attributes(attr_names)
|
262
|
+
options = attr_names.extract_options!.symbolize_keys
|
263
|
+
attr_names.flatten!
|
264
|
+
options[:attributes] = attr_names
|
265
|
+
options
|
266
|
+
end
|
267
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:76
|
268
|
+
```
|
269
|
+
</details>
|
270
|
+
<details open>
|
271
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:81</summary>
|
272
|
+
|
273
|
+
##### ActiveModel::Validations::ClassMethods.validates_with
|
274
|
+
|
275
|
+
```ruby
|
276
|
+
def validates_with(*args, &block)
|
277
|
+
options = args.extract_options!
|
278
|
+
options[:class] = self
|
279
|
+
|
280
|
+
args.each do |klass|
|
281
|
+
validator = klass.new(options, &block)
|
282
|
+
|
283
|
+
if validator.respond_to?(:attributes) && !validator.attributes.empty?
|
284
|
+
validator.attributes.each do |attribute|
|
285
|
+
_validators[attribute.to_sym] << validator
|
286
|
+
end
|
287
|
+
else
|
288
|
+
_validators[nil] << validator
|
289
|
+
end
|
290
|
+
|
291
|
+
validate(validator, options)
|
292
|
+
end
|
293
|
+
end
|
294
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:76
|
295
|
+
```
|
296
|
+
</details>
|
297
|
+
<details open>
|
298
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:6</summary>
|
299
|
+
|
300
|
+
##### ActiveModel::Validations::ConfirmationValidator#initialize
|
301
|
+
|
302
|
+
```ruby
|
303
|
+
def initialize(options)
|
304
|
+
super({ case_sensitive: true }.merge!(options))
|
305
|
+
setup!(options[:class])
|
306
|
+
end
|
307
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:86
|
308
|
+
```
|
309
|
+
</details>
|
310
|
+
<details open>
|
311
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:138</summary>
|
312
|
+
|
313
|
+
##### ActiveModel::Validations::ConfirmationValidator#initialize
|
314
|
+
|
315
|
+
```ruby
|
316
|
+
def initialize(options)
|
317
|
+
super({ case_sensitive: true }.merge!(options))
|
318
|
+
setup!(options[:class])
|
319
|
+
end
|
320
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:7
|
321
|
+
```
|
322
|
+
</details>
|
323
|
+
<details open>
|
324
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:108</summary>
|
325
|
+
|
326
|
+
##### ActiveModel::Validations::ConfirmationValidator#initialize
|
327
|
+
|
328
|
+
```ruby
|
329
|
+
def initialize(options)
|
330
|
+
super({ case_sensitive: true }.merge!(options))
|
331
|
+
setup!(options[:class])
|
332
|
+
end
|
333
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:141
|
334
|
+
```
|
335
|
+
</details>
|
336
|
+
<details open>
|
337
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:165</summary>
|
338
|
+
|
339
|
+
##### ActiveModel::EachValidator#check_validity!
|
340
|
+
|
341
|
+
```ruby
|
342
|
+
def check_validity!
|
343
|
+
end
|
344
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validator.rb:142
|
345
|
+
```
|
346
|
+
</details>
|
347
|
+
<details open>
|
348
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:21</summary>
|
349
|
+
|
350
|
+
##### ActiveModel::Validations::ConfirmationValidator#setup!
|
351
|
+
|
352
|
+
```ruby
|
353
|
+
def setup!(klass)
|
354
|
+
klass.send(:attr_reader, *attributes.map do |attribute|
|
355
|
+
:"#{attribute}_confirmation" unless klass.method_defined?(:"#{attribute}_confirmation")
|
356
|
+
end.compact)
|
357
|
+
|
358
|
+
klass.send(:attr_writer, *attributes.map do |attribute|
|
359
|
+
:"#{attribute}_confirmation" unless klass.method_defined?(:"#{attribute}_confirmation=")
|
360
|
+
end.compact)
|
361
|
+
end
|
362
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/confirmation.rb:8
|
363
|
+
```
|
364
|
+
</details>
|
365
|
+
<details open>
|
366
|
+
<summary>vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations.rb:154</summary>
|
367
|
+
|
368
|
+
##### ActiveModel::Validations::ClassMethods.validate
|
369
|
+
|
370
|
+
```ruby
|
371
|
+
def validate(*args, &block)
|
372
|
+
options = args.extract_options!
|
373
|
+
|
374
|
+
if args.all? { |arg| arg.is_a?(Symbol) }
|
375
|
+
options.each_key do |k|
|
376
|
+
unless VALID_OPTIONS_FOR_VALIDATE.include?(k)
|
377
|
+
raise ArgumentError.new("Unknown key: #{k.inspect}. Valid keys are: #{VALID_OPTIONS_FOR_VALIDATE.map(&:inspect).join(', ')}. Perhaps you meant to call `validates` instead of `validate`?")
|
378
|
+
end
|
379
|
+
end
|
380
|
+
end
|
381
|
+
|
382
|
+
if options.key?(:on)
|
383
|
+
options = options.dup
|
384
|
+
options[:on] = Array(options[:on])
|
385
|
+
options[:if] = Array(options[:if])
|
386
|
+
options[:if].unshift ->(o) {
|
387
|
+
!(options[:on] & Array(o.validation_context)).empty?
|
388
|
+
}
|
389
|
+
end
|
390
|
+
|
391
|
+
set_callback(:validate, *args, options, &block)
|
392
|
+
end
|
393
|
+
# called from vendor/bundle/gems/activemodel-5.2.3/lib/active_model/validations/with.rb:96
|
394
|
+
```
|
395
|
+
</details>
|