Module: Rospatent
- Defined in:
- lib/rospatent.rb,
lib/rospatent/cache.rb,
lib/rospatent/client.rb,
lib/rospatent/errors.rb,
lib/rospatent/logger.rb,
lib/rospatent/search.rb,
lib/rospatent/railtie.rb,
lib/rospatent/version.rb,
lib/rospatent/configuration.rb,
lib/rospatent/patent_parser.rb,
lib/rospatent/input_validator.rb,
lib/generators/rospatent/install/install_generator.rb
Overview
Main module for the Rospatent API client
Defined Under Namespace
Modules: Errors, Generators, InputValidator, PatentParser Classes: Cache, Client, Configuration, Logger, NullCache, NullLogger, Railtie, Search, SearchResult
Constant Summary collapse
- VERSION =
"1.5.0"
Class Attribute Summary collapse
-
.configuration ⇒ Rospatent::Configuration
Returns the current configuration.
Class Method Summary collapse
-
.clear_shared_resources ⇒ Object
Clear all shared resources.
-
.client(token = nil, logger: nil, cache: nil) ⇒ Rospatent::Client
Creates a new client instance.
-
.configure {|config| ... } ⇒ Object
Configure the gem.
-
.reset ⇒ Object
Reset the configuration to defaults.
-
.shared_cache(ttl: nil, max_size: nil) ⇒ Rospatent::Cache
Create a shared cache instance.
-
.shared_logger(level: nil, formatter: nil) ⇒ Rospatent::Logger
Create a shared logger instance.
-
.statistics ⇒ Hash
Get global statistics (if shared cache is being used).
-
.validate_configuration ⇒ Array<String>
Validate the current configuration.
Class Attribute Details
.configuration ⇒ Rospatent::Configuration
Returns the current configuration
23 24 25 |
# File 'lib/rospatent.rb', line 23 def configuration @configuration ||= Configuration.new end |
Class Method Details
.clear_shared_resources ⇒ Object
Clear all shared resources
74 75 76 77 78 |
# File 'lib/rospatent.rb', line 74 def clear_shared_resources @shared_cache&.clear @shared_cache = nil @shared_logger = nil end |
.client(token = nil, logger: nil, cache: nil) ⇒ Rospatent::Client
Creates a new client instance
40 41 42 |
# File 'lib/rospatent.rb', line 40 def client(token = nil, logger: nil, cache: nil, **) Client.new(token: token, logger: logger, cache: cache, **) end |
.configure {|config| ... } ⇒ Object
Configure the gem
30 31 32 |
# File 'lib/rospatent.rb', line 30 def configure yield(configuration) end |
.reset ⇒ Object
Reset the configuration to defaults
67 68 69 70 71 |
# File 'lib/rospatent.rb', line 67 def reset @configuration = Configuration.new @shared_cache = nil @shared_logger = nil end |
.shared_cache(ttl: nil, max_size: nil) ⇒ Rospatent::Cache
Create a shared cache instance
48 49 50 51 52 53 |
# File 'lib/rospatent.rb', line 48 def shared_cache(ttl: nil, max_size: nil) @shared_cache ||= Cache.new( ttl: ttl || configuration.cache_ttl, max_size: max_size || configuration.cache_max_size ) end |
.shared_logger(level: nil, formatter: nil) ⇒ Rospatent::Logger
Create a shared logger instance
59 60 61 62 63 64 |
# File 'lib/rospatent.rb', line 59 def shared_logger(level: nil, formatter: nil) @shared_logger ||= Logger.new( level: level || configuration.log_level, formatter: formatter || (configuration.environment == "production" ? :json : :text) ) end |
.statistics ⇒ Hash
Get global statistics (if shared cache is being used)
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/rospatent.rb', line 82 def statistics cache_stats = @shared_cache&.statistics || { size: 0, hits: 0, misses: 0 } { configuration: { environment: configuration.environment, cache_enabled: configuration.cache_enabled, api_url: configuration.effective_api_url }, cache: cache_stats, shared_resources: { cache_initialized: !@shared_cache.nil?, logger_initialized: !@shared_logger.nil? } } end |
.validate_configuration ⇒ Array<String>
Validate the current configuration
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/rospatent.rb', line 101 def validate_configuration errors = [] unless configuration.valid_environment? errors << "Invalid environment: #{configuration.environment}" end errors << "API token is required" if configuration.token.nil? || configuration.token.empty? errors << "Timeout must be positive" if configuration.timeout <= 0 errors << "Retry count cannot be negative" if configuration.retry_count.negative? errors end |