dxlite 0.6.1 → 0.6.4
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
- checksums.yaml.gz.sig +0 -0
- data/lib/dxlite.rb +57 -6
- data.tar.gz.sig +0 -0
- metadata +6 -6
- metadata.gz.sig +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 250500a33175fd75751304e636127328659be1d479c69fc821eec449fc14c898
         | 
| 4 | 
            +
              data.tar.gz: a0ec8ec56a0830de7d4eefae7dd384fa56916383cabb1cbc9ce373c822f454d7
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7d74c9420396ec5de7c476d9a0a20eb3dc67ab43137cd2bbc3d3ed7be30cd278a976ac11640013b855c4b2a825a06e5cb2706e57eb8dee09149022415ffd8b00
         | 
| 7 | 
            +
              data.tar.gz: 4e9cc5c15f1afac57c0818a7a90d31c132332e8c698d02c4dda649af0c45f9fc7e79d1f8ff762cd523e16ef4fbb9fb3684e77e12a14089cd278691339c12e0b2
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/lib/dxlite.rb
    CHANGED
    
    | @@ -25,7 +25,7 @@ class DxLite | |
| 25 25 | 
             
              attr_accessor :summary, :filepath
         | 
| 26 26 | 
             
              attr_reader :records, :schema
         | 
| 27 27 |  | 
| 28 | 
            -
              def initialize(s=nil, autosave: false, debug: false)
         | 
| 28 | 
            +
              def initialize(s=nil, autosave: false, order: 'ascending', debug: false)
         | 
| 29 29 |  | 
| 30 30 | 
             
                @autosave, @debug = autosave, debug
         | 
| 31 31 |  | 
| @@ -51,7 +51,7 @@ class DxLite | |
| 51 51 |  | 
| 52 52 | 
             
                when :text
         | 
| 53 53 |  | 
| 54 | 
            -
                  new_summary(s)
         | 
| 54 | 
            +
                  new_summary(s, order)
         | 
| 55 55 |  | 
| 56 56 | 
             
                when :url
         | 
| 57 57 |  | 
| @@ -94,8 +94,16 @@ class DxLite | |
| 94 94 | 
             
                if key then
         | 
| 95 95 |  | 
| 96 96 | 
             
                  r = records.find {|x| x[:body][key.to_sym] == rawh[key.to_sym]}
         | 
| 97 | 
            +
             | 
| 97 98 | 
             
                  if r then
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                    # if the client is using create() instead of update() to update a
         | 
| 101 | 
            +
                    # record then update the record
         | 
| 102 | 
            +
                    #
         | 
| 103 | 
            +
                    r[:body].merge!(rawh)
         | 
| 98 104 | 
             
                    r[:last_modified] = Time.now.to_s
         | 
| 105 | 
            +
                    save() if @autosave
         | 
| 106 | 
            +
             | 
| 99 107 | 
             
                    return false
         | 
| 100 108 | 
             
                  end
         | 
| 101 109 |  | 
| @@ -133,6 +141,17 @@ class DxLite | |
| 133 141 | 
             
                @fields
         | 
| 134 142 | 
             
              end
         | 
| 135 143 |  | 
| 144 | 
            +
              def record(id)
         | 
| 145 | 
            +
             | 
| 146 | 
            +
                h = @records.find {|x| x[:id] == id }
         | 
| 147 | 
            +
                return unless h
         | 
| 148 | 
            +
                RecordX.new(h[:body], self, h[:id], h[:created], h[:last_modified])
         | 
| 149 | 
            +
             | 
| 150 | 
            +
              end
         | 
| 151 | 
            +
             | 
| 152 | 
            +
              alias find record
         | 
| 153 | 
            +
              alias find_by_id record
         | 
| 154 | 
            +
             | 
| 136 155 | 
             
              def inspect()
         | 
| 137 156 | 
             
                "#<DxLite:%s @debug=%s, @summary=%s, ...>" % [object_id, @debug,
         | 
| 138 157 | 
             
                                                              @summary.inspect]
         | 
| @@ -213,11 +232,40 @@ class DxLite | |
| 213 232 | 
             
                root_name = schema()[/^\w+/]
         | 
| 214 233 | 
             
                record_name = schema()[/(?<=\/)[^\(]+/]
         | 
| 215 234 |  | 
| 235 | 
            +
                records = @records.map {|h| {record_name.to_sym => h} }
         | 
| 236 | 
            +
             | 
| 237 | 
            +
                a = if @summary[:order] == 'descending' then
         | 
| 238 | 
            +
             | 
| 239 | 
            +
                  records.sort_by do |x|
         | 
| 240 | 
            +
             | 
| 241 | 
            +
                    if @debug then
         | 
| 242 | 
            +
                      puts 'x: ' + x.inspect
         | 
| 243 | 
            +
                      puts 'created: ' + Date.parse(x[:post][:created]).inspect
         | 
| 244 | 
            +
                    end
         | 
| 245 | 
            +
             | 
| 246 | 
            +
                    created = DateTime.parse(x[:post][:created])
         | 
| 247 | 
            +
             | 
| 248 | 
            +
                    last_modified = if x[:post][:last_modified] then
         | 
| 249 | 
            +
                      DateTime.parse(x[:post][:last_modified])
         | 
| 250 | 
            +
                    else
         | 
| 251 | 
            +
                      nil
         | 
| 252 | 
            +
                    end
         | 
| 253 | 
            +
             | 
| 254 | 
            +
                    last_modified || created
         | 
| 255 | 
            +
             | 
| 256 | 
            +
                  end.reverse
         | 
| 257 | 
            +
             | 
| 258 | 
            +
                else
         | 
| 259 | 
            +
             | 
| 260 | 
            +
                  records
         | 
| 261 | 
            +
             | 
| 262 | 
            +
                end
         | 
| 263 | 
            +
             | 
| 216 264 | 
             
                h = {
         | 
| 217 265 | 
             
                  root_name.to_sym =>
         | 
| 218 266 | 
             
                  {
         | 
| 219 267 | 
             
                    summary: @summary,
         | 
| 220 | 
            -
                    records:  | 
| 268 | 
            +
                    records: a
         | 
| 221 269 | 
             
                  }
         | 
| 222 270 | 
             
                }
         | 
| 223 271 |  | 
| @@ -271,6 +319,7 @@ class DxLite | |
| 271 319 | 
             
                if r then
         | 
| 272 320 |  | 
| 273 321 | 
             
                  r[:body].merge!(obj)
         | 
| 322 | 
            +
                  r[:last_modified] = Time.now
         | 
| 274 323 | 
             
                  save() if @autosave
         | 
| 275 324 |  | 
| 276 325 | 
             
                end
         | 
| @@ -324,7 +373,7 @@ class DxLite | |
| 324 373 |  | 
| 325 374 | 
             
              end
         | 
| 326 375 |  | 
| 327 | 
            -
              def new_summary(schema)
         | 
| 376 | 
            +
              def new_summary(schema, order)
         | 
| 328 377 |  | 
| 329 378 | 
             
                @summary = {schema: schema}
         | 
| 330 379 |  | 
| @@ -333,7 +382,8 @@ class DxLite | |
| 333 382 |  | 
| 334 383 | 
             
                summary_attributes = {
         | 
| 335 384 | 
             
                  recordx_type: 'dynarex',
         | 
| 336 | 
            -
                  default_key: schema[/(?<=\()\w+/]
         | 
| 385 | 
            +
                  default_key: schema[/(?<=\()\w+/],
         | 
| 386 | 
            +
                  order: order
         | 
| 337 387 | 
             
                }
         | 
| 338 388 |  | 
| 339 389 | 
             
                puts 'before merge' if @debug
         | 
| @@ -369,7 +419,8 @@ class DxLite | |
| 369 419 |  | 
| 370 420 | 
             
                  h[:summary].each do |key, value|
         | 
| 371 421 |  | 
| 372 | 
            -
                    if %i(recordx_type format_mask schema default_key) | 
| 422 | 
            +
                    if %i(recordx_type format_mask schema default_key order)\
         | 
| 423 | 
            +
                                       .include? key then
         | 
| 373 424 | 
             
                      @summary[key] = value
         | 
| 374 425 | 
             
                    else
         | 
| 375 426 | 
             
                      @summary[key.to_s] = value
         | 
    
        data.tar.gz.sig
    CHANGED
    
    | Binary file | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: dxlite
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.6. | 
| 4 | 
            +
              version: 0.6.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - James Robertson
         | 
| @@ -35,7 +35,7 @@ cert_chain: | |
| 35 35 | 
             
              9pK+pqislEMFrWscGeMsc6YMS7ALxEujTuwTWyxmWAXnYft4ff2O1Zh2sPmdOlgf
         | 
| 36 36 | 
             
              camg7d8q+VZZzAtz0cFc4pip
         | 
| 37 37 | 
             
              -----END CERTIFICATE-----
         | 
| 38 | 
            -
            date: 2022-03- | 
| 38 | 
            +
            date: 2022-03-21 00:00:00.000000000 Z
         | 
| 39 39 | 
             
            dependencies:
         | 
| 40 40 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 41 41 | 
             
              name: recordx
         | 
| @@ -43,20 +43,20 @@ dependencies: | |
| 43 43 | 
             
                requirements:
         | 
| 44 44 | 
             
                - - "~>"
         | 
| 45 45 | 
             
                  - !ruby/object:Gem::Version
         | 
| 46 | 
            -
                    version: '0. | 
| 46 | 
            +
                    version: '0.6'
         | 
| 47 47 | 
             
                - - ">="
         | 
| 48 48 | 
             
                  - !ruby/object:Gem::Version
         | 
| 49 | 
            -
                    version: 0. | 
| 49 | 
            +
                    version: 0.6.0
         | 
| 50 50 | 
             
              type: :runtime
         | 
| 51 51 | 
             
              prerelease: false
         | 
| 52 52 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 53 53 | 
             
                requirements:
         | 
| 54 54 | 
             
                - - "~>"
         | 
| 55 55 | 
             
                  - !ruby/object:Gem::Version
         | 
| 56 | 
            -
                    version: '0. | 
| 56 | 
            +
                    version: '0.6'
         | 
| 57 57 | 
             
                - - ">="
         | 
| 58 58 | 
             
                  - !ruby/object:Gem::Version
         | 
| 59 | 
            -
                    version: 0. | 
| 59 | 
            +
                    version: 0.6.0
         | 
| 60 60 | 
             
            description: 
         | 
| 61 61 | 
             
            email: digital.robertson@gmail.com
         | 
| 62 62 | 
             
            executables: []
         | 
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |