waylon-core 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +9 -5
- data/lib/waylon/base_component.rb +14 -0
- data/lib/waylon/config.rb +3 -0
- data/lib/waylon/user.rb +2 -2
- data/lib/waylon/version.rb +1 -1
- data/waylon-core.gemspec +0 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: '0381c0f70f922e5958355430bef0ec1c8fd5d966b77b032f866fa9ecdcd3dd18'
         | 
| 4 | 
            +
              data.tar.gz: 13b63cef7b5e7575b5d564d43cb599bd326e0b9ed499be5df1b08a1c191fc073
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: bf835c89b14aa09e591fd8ca11b7c27065d0ad8262c2248ca261d897f320c0c5128d15154454407c32d35021dead332bcfb0597507e337dd7ee9de186bea2f1f
         | 
| 7 | 
            +
              data.tar.gz: 2eb7a29a02dcc44c85ed8dd0c74999299dae4ed1bb2736d6d076e9c1885ea80b96ffdc71288f730fe68de5c2487e23183d6adf0239f23112bec2cf9cf2e006ed
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                waylon-core (0.1. | 
| 4 | 
            +
                waylon-core (0.1.1)
         | 
| 5 5 | 
             
                  addressable (~> 2.8)
         | 
| 6 6 | 
             
                  faraday (~> 1.8)
         | 
| 7 7 | 
             
                  i18n (~> 1.8)
         | 
| @@ -19,25 +19,29 @@ GEM | |
| 19 19 | 
             
                concurrent-ruby (1.1.9)
         | 
| 20 20 | 
             
                diff-lcs (1.4.4)
         | 
| 21 21 | 
             
                docile (1.4.0)
         | 
| 22 | 
            -
                faraday (1. | 
| 22 | 
            +
                faraday (1.9.3)
         | 
| 23 23 | 
             
                  faraday-em_http (~> 1.0)
         | 
| 24 24 | 
             
                  faraday-em_synchrony (~> 1.0)
         | 
| 25 25 | 
             
                  faraday-excon (~> 1.1)
         | 
| 26 | 
            -
                  faraday-httpclient (~> 1.0 | 
| 26 | 
            +
                  faraday-httpclient (~> 1.0)
         | 
| 27 | 
            +
                  faraday-multipart (~> 1.0)
         | 
| 27 28 | 
             
                  faraday-net_http (~> 1.0)
         | 
| 28 | 
            -
                  faraday-net_http_persistent (~> 1. | 
| 29 | 
            +
                  faraday-net_http_persistent (~> 1.0)
         | 
| 29 30 | 
             
                  faraday-patron (~> 1.0)
         | 
| 30 31 | 
             
                  faraday-rack (~> 1.0)
         | 
| 31 | 
            -
                   | 
| 32 | 
            +
                  faraday-retry (~> 1.0)
         | 
| 32 33 | 
             
                  ruby2_keywords (>= 0.0.4)
         | 
| 33 34 | 
             
                faraday-em_http (1.0.0)
         | 
| 34 35 | 
             
                faraday-em_synchrony (1.0.0)
         | 
| 35 36 | 
             
                faraday-excon (1.1.0)
         | 
| 36 37 | 
             
                faraday-httpclient (1.0.1)
         | 
| 38 | 
            +
                faraday-multipart (1.0.2)
         | 
| 39 | 
            +
                  multipart-post (>= 1.2, < 3)
         | 
| 37 40 | 
             
                faraday-net_http (1.0.1)
         | 
| 38 41 | 
             
                faraday-net_http_persistent (1.2.0)
         | 
| 39 42 | 
             
                faraday-patron (1.0.0)
         | 
| 40 43 | 
             
                faraday-rack (1.0.0)
         | 
| 44 | 
            +
                faraday-retry (1.0.3)
         | 
| 41 45 | 
             
                i18n (1.8.11)
         | 
| 42 46 | 
             
                  concurrent-ruby (~> 1.0)
         | 
| 43 47 | 
             
                json (2.6.1)
         | 
| @@ -23,6 +23,20 @@ module Waylon | |
| 23 23 |  | 
| 24 24 | 
             
                # Base Component utility methods
         | 
| 25 25 | 
             
                module ClassUtilityMethods
         | 
| 26 | 
            +
                  # Allows caching from class methods
         | 
| 27 | 
            +
                  # @param [String] key How to store/retrieved the cached value
         | 
| 28 | 
            +
                  # @param [Integer] expires How long to cache the value
         | 
| 29 | 
            +
                  def cache(key, expires: 600)
         | 
| 30 | 
            +
                    cache_key = config_key_for(key)
         | 
| 31 | 
            +
                    if !Waylon::Cache.key?(cache_key) && block_given?
         | 
| 32 | 
            +
                      result = yield
         | 
| 33 | 
            +
                      Waylon::Cache.store(cache_key, result, expires: expires)
         | 
| 34 | 
            +
                    elsif !Waylon::Cache.key?(cache_key)
         | 
| 35 | 
            +
                      return nil
         | 
| 36 | 
            +
                    end
         | 
| 37 | 
            +
                    Waylon::Cache.load(cache_key, expires: expires)
         | 
| 38 | 
            +
                  end
         | 
| 39 | 
            +
             | 
| 26 40 | 
             
                  # The namespace used for this component's storage
         | 
| 27 41 | 
             
                  # @param value [String,nil] Sets this namespace unless set (without setting, returns a sane default)
         | 
| 28 42 | 
             
                  # @return [String] The namespace for this component
         | 
    
        data/lib/waylon/config.rb
    CHANGED
    
    | @@ -86,6 +86,7 @@ module Waylon | |
| 86 86 | 
             
                # @param key [String] The key to use for storing the value
         | 
| 87 87 | 
             
                # @param [Object] value The value for the key
         | 
| 88 88 | 
             
                def []=(key, value)
         | 
| 89 | 
            +
                  @schema ||= {}
         | 
| 89 90 | 
             
                  if (@schema[key] && validate_config(@schema[key], value)) || key.start_with?("global.")
         | 
| 90 91 | 
             
                    @config ||= {}
         | 
| 91 92 | 
             
                    @config[key] = value
         | 
| @@ -101,6 +102,7 @@ module Waylon | |
| 101 102 | 
             
                # @return [String,nil] The requested value
         | 
| 102 103 | 
             
                def [](key)
         | 
| 103 104 | 
             
                  @config ||= {}
         | 
| 105 | 
            +
                  @schema ||= {}
         | 
| 104 106 | 
             
                  if @config.key?(key)
         | 
| 105 107 | 
             
                    @config[key].dup
         | 
| 106 108 | 
             
                  elsif @schema.key?(key) && @schema[key][:default]
         | 
| @@ -111,6 +113,7 @@ module Waylon | |
| 111 113 | 
             
                # Is the state of the config valid?
         | 
| 112 114 | 
             
                # @return [Boolean]
         | 
| 113 115 | 
             
                def valid?
         | 
| 116 | 
            +
                  @schema ||= {}
         | 
| 114 117 | 
             
                  missing = @schema.select { |_k, v| v[:required] }.reject { |k, _v| @config[k] }
         | 
| 115 118 | 
             
                  missing.each do |key, _value|
         | 
| 116 119 | 
             
                    ::Waylon::Logger.log("Missing config: #{key}", :debug)
         | 
    
        data/lib/waylon/user.rb
    CHANGED
    
    | @@ -14,8 +14,8 @@ module Waylon | |
| 14 14 | 
             
                # Class-level methods to be added to User subclasses
         | 
| 15 15 | 
             
                module ClassMethods
         | 
| 16 16 | 
             
                  # This should be overridden by subclasses to provide a mechanism for looking up Users
         | 
| 17 | 
            -
                  def  | 
| 18 | 
            -
                    raise NotImplementedError, " | 
| 17 | 
            +
                  def find_by_handle(_email)
         | 
| 18 | 
            +
                    raise NotImplementedError, "find_by_handle isn't implemented"
         | 
| 19 19 | 
             
                  end
         | 
| 20 20 |  | 
| 21 21 | 
             
                  # Provides a simple mechanism for referencing User subclass's Sense
         | 
    
        data/lib/waylon/version.rb
    CHANGED
    
    
    
        data/waylon-core.gemspec
    CHANGED
    
    | @@ -27,7 +27,6 @@ Gem::Specification.new do |spec| | |
| 27 27 | 
             
              spec.executables   = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
         | 
| 28 28 | 
             
              spec.require_paths = ["lib"]
         | 
| 29 29 |  | 
| 30 | 
            -
              # Uncomment to register a new dependency of your gem
         | 
| 31 30 | 
             
              spec.add_dependency "addressable", "~> 2.8"
         | 
| 32 31 | 
             
              spec.add_dependency "faraday", "~> 1.8"
         | 
| 33 32 | 
             
              spec.add_dependency "i18n", "~> 1.8"
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: waylon-core
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jonathan Gnagy
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2022-01-07 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: addressable
         |