castle-rb 3.4.0 → 3.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +36 -24
  3. data/lib/castle.rb +5 -3
  4. data/lib/castle/client.rb +21 -18
  5. data/lib/castle/commands/authenticate.rb +8 -16
  6. data/lib/castle/commands/identify.rb +9 -21
  7. data/lib/castle/commands/impersonate.rb +9 -23
  8. data/lib/castle/commands/review.rb +5 -4
  9. data/lib/castle/commands/track.rb +8 -16
  10. data/lib/castle/configuration.rb +1 -2
  11. data/lib/castle/context/default.rb +40 -0
  12. data/lib/castle/context/merger.rb +14 -0
  13. data/lib/castle/context/sanitizer.rb +23 -0
  14. data/lib/castle/review.rb +1 -1
  15. data/lib/castle/utils/merger.rb +9 -9
  16. data/lib/castle/validators/not_supported.rb +16 -0
  17. data/lib/castle/validators/present.rb +16 -0
  18. data/lib/castle/version.rb +1 -1
  19. data/spec/lib/castle/client_spec.rb +3 -2
  20. data/spec/lib/castle/commands/authenticate_spec.rb +21 -21
  21. data/spec/lib/castle/commands/identify_spec.rb +17 -17
  22. data/spec/lib/castle/commands/impersonate_spec.rb +1 -1
  23. data/spec/lib/castle/commands/review_spec.rb +1 -1
  24. data/spec/lib/castle/commands/track_spec.rb +23 -23
  25. data/spec/lib/castle/configuration_spec.rb +13 -13
  26. data/spec/lib/castle/{default_context_spec.rb → context/default_spec.rb} +1 -1
  27. data/spec/lib/castle/{context_merger_spec.rb → context/merger_spec.rb} +4 -4
  28. data/spec/lib/castle/{context_sanitizer_spec.rb → context/sanitizer_spec.rb} +1 -1
  29. data/spec/lib/castle/extractors/client_id_spec.rb +1 -1
  30. data/spec/lib/castle/request_spec.rb +2 -2
  31. data/spec/lib/castle/response_spec.rb +4 -4
  32. data/spec/lib/castle/review_spec.rb +1 -1
  33. data/spec/lib/castle/utils_spec.rb +14 -14
  34. data/spec/lib/castle/validators/not_supported_spec.rb +26 -0
  35. data/spec/lib/castle/validators/present_spec.rb +33 -0
  36. data/spec/lib/castle_spec.rb +3 -3
  37. metadata +19 -13
  38. data/lib/castle/context_merger.rb +0 -12
  39. data/lib/castle/context_sanitizer.rb +0 -20
  40. data/lib/castle/default_context.rb +0 -28
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Castle
4
- class ContextMerger
5
- class << self
6
- def call(initial_context, request_context)
7
- main_context = Castle::Utils::Cloner.call(initial_context)
8
- Castle::Utils::Merger.call(main_context, request_context || {})
9
- end
10
- end
11
- end
12
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Castle
4
- # removes not proper active flag values
5
- class ContextSanitizer
6
- class << self
7
- def call(context)
8
- sanitized_active_mode(context) || {}
9
- end
10
-
11
- private
12
-
13
- def sanitized_active_mode(context)
14
- return context unless context && context.key?(:active)
15
- return context if [true, false].include?(context[:active])
16
- context.reject { |key| key == :active }
17
- end
18
- end
19
- end
20
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Castle
4
- class DefaultContext
5
- def initialize(request, cookies = nil)
6
- @client_id = Extractors::ClientId.new(request, cookies || request.cookies).call('__cid')
7
- @headers = Extractors::Headers.new(request).call
8
- @ip = Extractors::IP.new(request).call
9
- end
10
-
11
- def call
12
- context = {
13
- client_id: @client_id,
14
- active: true,
15
- origin: 'web',
16
- headers: @headers || {},
17
- ip: @ip,
18
- library: {
19
- name: 'castle-rb',
20
- version: Castle::VERSION
21
- }
22
- }
23
- context[:locale] = @headers['Accept-Language'] if @headers['Accept-Language']
24
- context[:user_agent] = @headers['User-Agent'] if @headers['User-Agent']
25
- context
26
- end
27
- end
28
- end