Class: JsonSchematize::Configuration
- Inherits:
-
Object
- Object
- JsonSchematize::Configuration
- Includes:
- ClassComposer::Generator
- Defined in:
- lib/json_schematize/configuration.rb
Constant Summary collapse
- DEFAULT_ONE_MIN =
60 * 60
- DEFAULT_ONE_HOUR =
DEFAULT_ONE_MIN * 60
- DEFAULT_ONE_DAY =
DEFAULT_ONE_HOUR * 24
- DEFAULT_CACHE_OPTIONS =
{ cache_client: nil, cache_key: ->(val, _custom_key) { val.hash }, cache_namespace: nil, cache_stochastic_bust: 0.8, cache_ttl: DEFAULT_ONE_DAY, cache_update_on_change: true, }
Instance Method Summary collapse
- #cache_client ⇒ Object
- #cache_client=(client) ⇒ Object
- #cache_hash ⇒ Object
- #cache_key=(value) ⇒ Object
Instance Method Details
#cache_client ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/json_schematize/configuration.rb', line 60 def cache_client return @cache_client unless @cache_client.nil? begin Kernel.require 'active_support' rescue LoadError assign = _assign_msg_("cache_client", "ActiveSupport::Cache::MemoryStore.new", "A ActiveSupport::Cache::Store supported client") msg = "Default client missing. Attempted to use 'active_support/cache' but not loaded. \n#{assign}" raise JsonSchematize::ConfigError, msg end @cache_client = ActiveSupport::Cache::MemoryStore.new @cache_client end |
#cache_client=(client) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/json_schematize/configuration.rb', line 46 def cache_client=(client) min_required = [:read, :write, :delete_multi, :read_multi] min_required.each do |meth| next if client.methods.include?(meth) assign = _assign_msg_("cache_client", "_initialized_client_", "Preferably an ActiveSupport::Cache::Store supported client") msg = "Passed in client does not accept minimum values. #{min_required} are required methods \n#{assign}" raise JsonSchematize::ConfigError, msg end @cache_client = client end |
#cache_hash ⇒ Object
28 29 30 31 32 33 |
# File 'lib/json_schematize/configuration.rb', line 28 def cache_hash DEFAULT_CACHE_OPTIONS.map do |key, value| val = public_send(key) [key, val] end.to_h end |
#cache_key=(value) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/json_schematize/configuration.rb', line 35 def cache_key=(value) if value.is_a? Proc @key = value return @key end assign = _assign_msg_("cache_key", "->(val, cusom_key) { val.hash }", "Default proc to assign cache key") msg = "cache_key must be a proc. \n#{assign}" raise JsonSchematize::ConfigError, msg end |