Fixes #1873.
Showing the changes to lib/docs (3 of 3 files). Show all
Unified · Split
| @@ -3,14 +3,20 @@ module Docs · 2 unmodified lines | ||
| 3 | 3 | class CleanHtmlFilter < Filter |
| 4 | 4 | def call |
| 5 | 5 | if root_page? |
| 6 | − at_css('ul')['class'] = 'commands' | |
| 6 | + if root_page? | |
| 7 | + slug_types = {} | |
| 8 | + css('article[data-group]').each do |node| | |
| 9 | + slug_types[node.at_css('a')['href']] = node['data-group'] | |
| 10 | + end | |
| 11 | + # binding.pry | |
| 12 | + end | |
| 7 | 13 | else |
| 8 | 14 | title = at_css('h1') |
| 9 | 15 | title.after("<pre>#{title.content.strip}</pre>") |
| 10 | 16 | title.content = title.content.split(' ').first |
| 11 | 17 | end |
| 12 | 18 | |
| 13 | − css('nav', 'aside', 'form', '.anchor-link').remove | |
| 19 | + css('nav', 'aside', '.page-feedback', '.anchor-link').remove | |
| 14 | 20 | |
| 15 | 21 | css('> article', '.article-main', 'pre > code', '.container').each do |node| |
| 16 | 22 | node.before(node.children).remove |
| @@ -1,30 +1,510 @@ | ||
| 1 | 1 | module Docs |
| 2 | 2 | class Redis |
| 3 | 3 | class EntriesFilter < Docs::EntriesFilter |
| 4 | + | |
| 4 | 5 | def get_name |
| 5 | − slug.gsub('-', ' ') | |
| 6 | + slug.gsub('-', ' ').remove('/') | |
| 6 | 7 | end |
| 7 | 8 | |
| 8 | 9 | def get_type |
| 9 | − case at_css('aside > ul:last-child a').content.strip | |
| 10 | − when 'DEL' then 'Keys' | |
| 11 | − when 'APPEND' then 'Strings' | |
| 12 | − when 'HDEL' then 'Hashes' | |
| 13 | − when 'BLPOP' then 'Lists' | |
| 14 | − when 'SADD' then 'Sets' | |
| 15 | − when 'BZPOPMAX' then 'Sorted Sets' | |
| 16 | − when 'PSUBSCRIBE' then 'Pub/Sub' | |
| 17 | − when 'DISCARD' then 'Transactions' | |
| 18 | − when 'EVAL' then 'Scripting' | |
| 19 | − when 'AUTH' then 'Connection' | |
| 20 | − when 'BGREWRITEAOF' then 'Server' | |
| 21 | − when 'PFADD' then 'HyperLogLog' | |
| 22 | − when 'CLUSTER ADDSLOTS' then 'Cluster' | |
| 23 | − when 'GEOADD' then 'Geo' | |
| 24 | − when 'XACK' then 'Stream' | |
| 25 | − else 'Miscellaneous' | |
| 26 | − end | |
| 10 | + SLUG_NAMES[SLUG_TYPES[slug]] | |
| 27 | 11 | end |
| 12 | + | |
| 13 | + # obtain from https://redis.io/commands/ via lib/docs/filters/redis/clean_html.rb using `binding.pry` | |
| 14 | + SLUG_TYPES = { | |
| 15 | + "acl-cat/" => "server", | |
| 16 | + "acl-deluser/" => "server", | |
| 17 | + "acl-dryrun/" => "server", | |
| 18 | + "acl-genpass/" => "server", | |
| 19 | + "acl-getuser/" => "server", | |
| 20 | + "acl-list/" => "server", | |
| 21 | + "acl-load/" => "server", | |
| 22 | + "acl-log/" => "server", | |
| 23 | + "acl-save/" => "server", | |
| 24 | + "acl-setuser/" => "server", | |
| 25 | + "acl-users/" => "server", | |
| 26 | + "acl-whoami/" => "server", | |
| 27 | + "append/" => "string", | |
| 28 | + "asking/" => "cluster", | |
| 29 | + "auth/" => "connection", | |
| 30 | + "bf.add/" => "bf", | |
| 31 | + "bf.card/" => "bf", | |
| 32 | + "bf.exists/" => "bf", | |
| 33 | + "bf.info/" => "bf", | |
| 34 | + "bf.insert/" => "bf", | |
| 35 | + "bf.loadchunk/" => "bf", | |
| 36 | + "bf.madd/" => "bf", | |
| 37 | + "bf.mexists/" => "bf", | |
| 38 | + "bf.reserve/" => "bf", | |
| 39 | + "bf.scandump/" => "bf", | |
| 40 | + "bgrewriteaof/" => "server", | |
| 41 | + "bgsave/" => "server", | |
| 42 | + "bitcount/" => "bitmap", | |
| 43 | + "bitfield/" => "bitmap", | |
| 44 | + "bitfield_ro/" => "bitmap", | |
| 45 | + "bitop/" => "bitmap", | |
| 46 | + "bitpos/" => "bitmap", | |
| 47 | + "blmove/" => "list", | |
| 48 | + "blmpop/" => "list", | |
| 49 | + "blpop/" => "list", | |
| 50 | + "brpop/" => "list", | |
| 51 | + "brpoplpush/" => "list", | |
| 52 | + "bzmpop/" => "sorted-set", | |
| 53 | + "bzpopmax/" => "sorted-set", | |
| 54 | + "bzpopmin/" => "sorted-set", | |
| 55 | + "cf.add/" => "cf", | |
| 56 | + "cf.addnx/" => "cf", | |
| 57 | + "cf.count/" => "cf", | |
| 58 | + "cf.del/" => "cf", | |
| 59 | + "cf.exists/" => "cf", | |
| 60 | + "cf.info/" => "cf", | |
| 61 | + "cf.insert/" => "cf", | |
| 62 | + "cf.insertnx/" => "cf", | |
| 63 | + "cf.loadchunk/" => "cf", | |
| 64 | + "cf.mexists/" => "cf", | |
| 65 | + "cf.reserve/" => "cf", | |
| 66 | + "cf.scandump/" => "cf", | |
| 67 | + "client-caching/" => "connection", | |
| 68 | + "client-getname/" => "connection", | |
| 69 | + "client-getredir/" => "connection", | |
| 70 | + "client-id/" => "connection", | |
| 71 | + "client-info/" => "connection", | |
| 72 | + "client-kill/" => "connection", | |
| 73 | + "client-list/" => "connection", | |
| 74 | + "client-no-evict/" => "connection", | |
| 75 | + "client-pause/" => "connection", | |
| 76 | + "client-reply/" => "connection", | |
| 77 | + "client-setname/" => "connection", | |
| 78 | + "client-tracking/" => "connection", | |
| 79 | + "client-trackinginfo/" => "connection", | |
| 80 | + "client-unblock/" => "connection", | |
| 81 | + "client-unpause/" => "connection", | |
| 82 | + "cluster-addslots/" => "cluster", | |
| 83 | + "cluster-addslotsrange/" => "cluster", | |
| 84 | + "cluster-bumpepoch/" => "cluster", | |
| 85 | + "cluster-count-failure-reports/" => "cluster", | |
| 86 | + "cluster-countkeysinslot/" => "cluster", | |
| 87 | + "cluster-delslots/" => "cluster", | |
| 88 | + "cluster-delslotsrange/" => "cluster", | |
| 89 | + "cluster-failover/" => "cluster", | |
| 90 | + "cluster-flushslots/" => "cluster", | |
| 91 | + "cluster-forget/" => "cluster", | |
| 92 | + "cluster-getkeysinslot/" => "cluster", | |
| 93 | + "cluster-info/" => "cluster", | |
| 94 | + "cluster-keyslot/" => "cluster", | |
| 95 | + "cluster-links/" => "cluster", | |
| 96 | + "cluster-meet/" => "cluster", | |
| 97 | + "cluster-myid/" => "cluster", | |
| 98 | + "cluster-nodes/" => "cluster", | |
| 99 | + "cluster-replicas/" => "cluster", | |
| 100 | + "cluster-replicate/" => "cluster", | |
| 101 | + "cluster-reset/" => "cluster", | |
| 102 | + "cluster-saveconfig/" => "cluster", | |
| 103 | + "cluster-set-config-epoch/" => "cluster", | |
| 104 | + "cluster-setslot/" => "cluster", | |
| 105 | + "cluster-shards/" => "cluster", | |
| 106 | + "cluster-slaves/" => "cluster", | |
| 107 | + "cluster-slots/" => "cluster", | |
| 108 | + "cms.incrby/" => "cms", | |
| 109 | + "cms.info/" => "cms", | |
| 110 | + "cms.initbydim/" => "cms", | |
| 111 | + "cms.initbyprob/" => "cms", | |
| 112 | + "cms.merge/" => "cms", | |
| 113 | + "cms.query/" => "cms", | |
| 114 | + "command/" => "server", | |
| 115 | + "command-count/" => "server", | |
| 116 | + "command-docs/" => "server", | |
| 117 | + "command-getkeys/" => "server", | |
| 118 | + "command-getkeysandflags/" => "server", | |
| 119 | + "command-info/" => "server", | |
| 120 | + "command-list/" => "server", | |
| 121 | + "config-get/" => "server", | |
| 122 | + "config-resetstat/" => "server", | |
| 123 | + "config-rewrite/" => "server", | |
| 124 | + "config-set/" => "server", | |
| 125 | + "copy/" => "generic", | |
| 126 | + "dbsize/" => "server", | |
| 127 | + "decr/" => "string", | |
| 128 | + "decrby/" => "string", | |
| 129 | + "del/" => "generic", | |
| 130 | + "discard/" => "transactions", | |
| 131 | + "dump/" => "generic", | |
| 132 | + "echo/" => "connection", | |
| 133 | + "eval/" => "scripting", | |
| 134 | + "eval_ro/" => "scripting", | |
| 135 | + "evalsha/" => "scripting", | |
| 136 | + "evalsha_ro/" => "scripting", | |
| 137 | + "exec/" => "transactions", | |
| 138 | + "exists/" => "generic", | |
| 139 | + "expire/" => "generic", | |
| 140 | + "expireat/" => "generic", | |
| 141 | + "expiretime/" => "generic", | |
| 142 | + "failover/" => "server", | |
| 143 | + "fcall/" => "scripting", | |
| 144 | + "fcall_ro/" => "scripting", | |
| 145 | + "flushall/" => "server", | |
| 146 | + "flushdb/" => "server", | |
| 147 | + "ft._list/" => "search", | |
| 148 | + "ft.aggregate/" => "search", | |
| 149 | + "ft.aliasadd/" => "search", | |
| 150 | + "ft.aliasdel/" => "search", | |
| 151 | + "ft.aliasupdate/" => "search", | |
| 152 | + "ft.alter/" => "search", | |
| 153 | + "ft.config-get/" => "search", | |
| 154 | + "ft.config-set/" => "search", | |
| 155 | + "ft.create/" => "search", | |
| 156 | + "ft.cursor-del/" => "search", | |
| 157 | + "ft.cursor-read/" => "search", | |
| 158 | + "ft.dictadd/" => "search", | |
| 159 | + "ft.dictdel/" => "search", | |
| 160 | + "ft.dictdump/" => "search", | |
| 161 | + "ft.dropindex/" => "search", | |
| 162 | + "ft.explain/" => "search", | |
| 163 | + "ft.explaincli/" => "search", | |
| 164 | + "ft.info/" => "search", | |
| 165 | + "ft.profile/" => "search", | |
| 166 | + "ft.search/" => "search", | |
| 167 | + "ft.spellcheck/" => "search", | |
| 168 | + "ft.sugadd/" => "suggestion", | |
| 169 | + "ft.sugdel/" => "suggestion", | |
| 170 | + "ft.sugget/" => "suggestion", | |
| 171 | + "ft.suglen/" => "suggestion", | |
| 172 | + "ft.syndump/" => "search", | |
| 173 | + "ft.synupdate/" => "search", | |
| 174 | + "ft.tagvals/" => "search", | |
| 175 | + "function-delete/" => "scripting", | |
| 176 | + "function-dump/" => "scripting", | |
| 177 | + "function-flush/" => "scripting", | |
| 178 | + "function-kill/" => "scripting", | |
| 179 | + "function-list/" => "scripting", | |
| 180 | + "function-load/" => "scripting", | |
| 181 | + "function-restore/" => "scripting", | |
| 182 | + "function-stats/" => "scripting", | |
| 183 | + "geoadd/" => "geo", | |
| 184 | + "geodist/" => "geo", | |
| 185 | + "geohash/" => "geo", | |
| 186 | + "geopos/" => "geo", | |
| 187 | + "georadius/" => "geo", | |
| 188 | + "georadius_ro/" => "geo", | |
| 189 | + "georadiusbymember/" => "geo", | |
| 190 | + "georadiusbymember_ro/" => "geo", | |
| 191 | + "geosearch/" => "geo", | |
| 192 | + "geosearchstore/" => "geo", | |
| 193 | + "get/" => "string", | |
| 194 | + "getbit/" => "bitmap", | |
| 195 | + "getdel/" => "string", | |
| 196 | + "getex/" => "string", | |
| 197 | + "getrange/" => "string", | |
| 198 | + "getset/" => "string", | |
| 199 | + "graph.config-get/" => "graph", | |
| 200 | + "graph.config-set/" => "graph", | |
| 201 | + "graph.delete/" => "graph", | |
| 202 | + "graph.explain/" => "graph", | |
| 203 | + "graph.list/" => "graph", | |
| 204 | + "graph.profile/" => "graph", | |
| 205 | + "graph.query/" => "graph", | |
| 206 | + "graph.ro_query/" => "graph", | |
| 207 | + "graph.slowlog/" => "graph", | |
| 208 | + "hdel/" => "hash", | |
| 209 | + "hello/" => "connection", | |
| 210 | + "hexists/" => "hash", | |
| 211 | + "hget/" => "hash", | |
| 212 | + "hgetall/" => "hash", | |
| 213 | + "hincrby/" => "hash", | |
| 214 | + "hincrbyfloat/" => "hash", | |
| 215 | + "hkeys/" => "hash", | |
| 216 | + "hlen/" => "hash", | |
| 217 | + "hmget/" => "hash", | |
| 218 | + "hmset/" => "hash", | |
| 219 | + "hrandfield/" => "hash", | |
| 220 | + "hscan/" => "hash", | |
| 221 | + "hset/" => "hash", | |
| 222 | + "hsetnx/" => "hash", | |
| 223 | + "hstrlen/" => "hash", | |
| 224 | + "hvals/" => "hash", | |
| 225 | + "incr/" => "string", | |
| 226 | + "incrby/" => "string", | |
| 227 | + "incrbyfloat/" => "string", | |
| 228 | + "info/" => "server", | |
| 229 | + "json.arrappend/" => "json", | |
| 230 | + "json.arrindex/" => "json", | |
| 231 | + "json.arrinsert/" => "json", | |
| 232 | + "json.arrlen/" => "json", | |
| 233 | + "json.arrpop/" => "json", | |
| 234 | + "json.arrtrim/" => "json", | |
| 235 | + "json.clear/" => "json", | |
| 236 | + "json.debug/" => "json", | |
| 237 | + "json.debug-memory/" => "json", | |
| 238 | + "json.del/" => "json", | |
| 239 | + "json.forget/" => "json", | |
| 240 | + "json.get/" => "json", | |
| 241 | + "json.mget/" => "json", | |
| 242 | + "json.numincrby/" => "json", | |
| 243 | + "json.nummultby/" => "json", | |
| 244 | + "json.objkeys/" => "json", | |
| 245 | + "json.objlen/" => "json", | |
| 246 | + "json.resp/" => "json", | |
| 247 | + "json.set/" => "json", | |
| 248 | + "json.strappend/" => "json", | |
| 249 | + "json.strlen/" => "json", | |
| 250 | + "json.toggle/" => "json", | |
| 251 | + "json.type/" => "json", | |
| 252 | + "keys/" => "generic", | |
| 253 | + "lastsave/" => "server", | |
| 254 | + "latency-doctor/" => "server", | |
| 255 | + "latency-graph/" => "server", | |
| 256 | + "latency-histogram/" => "server", | |
| 257 | + "latency-history/" => "server", | |
| 258 | + "latency-latest/" => "server", | |
| 259 | + "latency-reset/" => "server", | |
| 260 | + "lcs/" => "string", | |
| 261 | + "lindex/" => "list", | |
| 262 | + "linsert/" => "list", | |
| 263 | + "llen/" => "list", | |
| 264 | + "lmove/" => "list", | |
| 265 | + "lmpop/" => "list", | |
| 266 | + "lolwut/" => "server", | |
| 267 | + "lpop/" => "list", | |
| 268 | + "lpos/" => "list", | |
| 269 | + "lpush/" => "list", | |
| 270 | + "lpushx/" => "list", | |
| 271 | + "lrange/" => "list", | |
| 272 | + "lrem/" => "list", | |
| 273 | + "lset/" => "list", | |
| 274 | + "ltrim/" => "list", | |
| 275 | + "memory-doctor/" => "server", | |
| 276 | + "memory-malloc-stats/" => "server", | |
| 277 | + "memory-purge/" => "server", | |
| 278 | + "memory-stats/" => "server", | |
| 279 | + "memory-usage/" => "server", | |
| 280 | + "mget/" => "string", | |
| 281 | + "migrate/" => "generic", | |
| 282 | + "module-list/" => "server", | |
| 283 | + "module-load/" => "server", | |
| 284 | + "module-loadex/" => "server", | |
| 285 | + "module-unload/" => "server", | |
| 286 | + "monitor/" => "server", | |
| 287 | + "move/" => "generic", | |
| 288 | + "mset/" => "string", | |
| 289 | + "msetnx/" => "string", | |
| 290 | + "multi/" => "transactions", | |
| 291 | + "object-encoding/" => "generic", | |
| 292 | + "object-freq/" => "generic", | |
| 293 | + "object-idletime/" => "generic", | |
| 294 | + "object-refcount/" => "generic", | |
| 295 | + "persist/" => "generic", | |
| 296 | + "pexpire/" => "generic", | |
| 297 | + "pexpireat/" => "generic", | |
| 298 | + "pexpiretime/" => "generic", | |
| 299 | + "pfadd/" => "hyperloglog", | |
| 300 | + "pfcount/" => "hyperloglog", | |
| 301 | + "pfdebug/" => "hyperloglog", | |
| 302 | + "pfmerge/" => "hyperloglog", | |
| 303 | + "pfselftest/" => "hyperloglog", | |
| 304 | + "ping/" => "connection", | |
| 305 | + "psetex/" => "string", | |
| 306 | + "psubscribe/" => "pubsub", | |
| 307 | + "psync/" => "server", | |
| 308 | + "pttl/" => "generic", | |
| 309 | + "publish/" => "pubsub", | |
| 310 | + "pubsub-channels/" => "pubsub", | |
| 311 | + "pubsub-numpat/" => "pubsub", | |
| 312 | + "pubsub-numsub/" => "pubsub", | |
| 313 | + "pubsub-shardchannels/" => "pubsub", | |
| 314 | + "pubsub-shardnumsub/" => "pubsub", | |
| 315 | + "punsubscribe/" => "pubsub", | |
| 316 | + "quit/" => "connection", | |
| 317 | + "randomkey/" => "generic", | |
| 318 | + "readonly/" => "cluster", | |
| 319 | + "readwrite/" => "cluster", | |
| 320 | + "rename/" => "generic", | |
| 321 | + "renamenx/" => "generic", | |
| 322 | + "replconf/" => "server", | |
| 323 | + "replicaof/" => "server", | |
| 324 | + "reset/" => "connection", | |
| 325 | + "restore/" => "generic", | |
| 326 | + "restore-asking/" => "server", | |
| 327 | + "role/" => "server", | |
| 328 | + "rpop/" => "list", | |
| 329 | + "rpoplpush/" => "list", | |
| 330 | + "rpush/" => "list", | |
| 331 | + "rpushx/" => "list", | |
| 332 | + "sadd/" => "set", | |
| 333 | + "save/" => "server", | |
| 334 | + "scan/" => "generic", | |
| 335 | + "scard/" => "set", | |
| 336 | + "script-debug/" => "scripting", | |
| 337 | + "script-exists/" => "scripting", | |
| 338 | + "script-flush/" => "scripting", | |
| 339 | + "script-kill/" => "scripting", | |
| 340 | + "script-load/" => "scripting", | |
| 341 | + "sdiff/" => "set", | |
| 342 | + "sdiffstore/" => "set", | |
| 343 | + "select/" => "connection", | |
| 344 | + "set/" => "string", | |
| 345 | + "setbit/" => "bitmap", | |
| 346 | + "setex/" => "string", | |
| 347 | + "setnx/" => "string", | |
| 348 | + "setrange/" => "string", | |
| 349 | + "shutdown/" => "server", | |
| 350 | + "sinter/" => "set", | |
| 351 | + "sintercard/" => "set", | |
| 352 | + "sinterstore/" => "set", | |
| 353 | + "sismember/" => "set", | |
| 354 | + "slaveof/" => "server", | |
| 355 | + "slowlog-get/" => "server", | |
| 356 | + "slowlog-len/" => "server", | |
| 357 | + "slowlog-reset/" => "server", | |
| 358 | + "smembers/" => "set", | |
| 359 | + "smismember/" => "set", | |
| 360 | + "smove/" => "set", | |
| 361 | + "sort/" => "generic", | |
| 362 | + "sort_ro/" => "generic", | |
| 363 | + "spop/" => "set", | |
| 364 | + "spublish/" => "pubsub", | |
| 365 | + "srandmember/" => "set", | |
| 366 | + "srem/" => "set", | |
| 367 | + "sscan/" => "set", | |
| 368 | + "ssubscribe/" => "pubsub", | |
| 369 | + "strlen/" => "string", | |
| 370 | + "subscribe/" => "pubsub", | |
| 371 | + "substr/" => "string", | |
| 372 | + "sunion/" => "set", | |
| 373 | + "sunionstore/" => "set", | |
| 374 | + "sunsubscribe/" => "pubsub", | |
| 375 | + "swapdb/" => "server", | |
| 376 | + "sync/" => "server", | |
| 377 | + "tdigest.add/" => "tdigest", | |
| 378 | + "tdigest.byrank/" => "tdigest", | |
| 379 | + "tdigest.byrevrank/" => "tdigest", | |
| 380 | + "tdigest.cdf/" => "tdigest", | |
| 381 | + "tdigest.create/" => "tdigest", | |
| 382 | + "tdigest.info/" => "tdigest", | |
| 383 | + "tdigest.max/" => "tdigest", | |
| 384 | + "tdigest.merge/" => "tdigest", | |
| 385 | + "tdigest.min/" => "tdigest", | |
| 386 | + "tdigest.quantile/" => "tdigest", | |
| 387 | + "tdigest.rank/" => "tdigest", | |
| 388 | + "tdigest.reset/" => "tdigest", | |
| 389 | + "tdigest.revrank/" => "tdigest", | |
| 390 | + "tdigest.trimmed_mean/" => "tdigest", | |
| 391 | + "time/" => "server", | |
| 392 | + "topk.add/" => "topk", | |
| 393 | + "topk.count/" => "topk", | |
| 394 | + "topk.incrby/" => "topk", | |
| 395 | + "topk.info/" => "topk", | |
| 396 | + "topk.list/" => "topk", | |
| 397 | + "topk.query/" => "topk", | |
| 398 | + "topk.reserve/" => "topk", | |
| 399 | + "touch/" => "generic", | |
| 400 | + "ts.add/" => "timeseries", | |
| 401 | + "ts.alter/" => "timeseries", | |
| 402 | + "ts.create/" => "timeseries", | |
| 403 | + "ts.createrule/" => "timeseries", | |
| 404 | + "ts.decrby/" => "timeseries", | |
| 405 | + "ts.del/" => "timeseries", | |
| 406 | + "ts.deleterule/" => "timeseries", | |
| 407 | + "ts.get/" => "timeseries", | |
| 408 | + "ts.incrby/" => "timeseries", | |
| 409 | + "ts.info/" => "timeseries", | |
| 410 | + "ts.madd/" => "timeseries", | |
| 411 | + "ts.mget/" => "timeseries", | |
| 412 | + "ts.mrange/" => "timeseries", | |
| 413 | + "ts.mrevrange/" => "timeseries", | |
| 414 | + "ts.queryindex/" => "timeseries", | |
| 415 | + "ts.range/" => "timeseries", | |
| 416 | + "ts.revrange/" => "timeseries", | |
| 417 | + "ttl/" => "generic", | |
| 418 | + "type/" => "generic", | |
| 419 | + "unlink/" => "generic", | |
| 420 | + "unsubscribe/" => "pubsub", | |
| 421 | + "unwatch/" => "transactions", | |
| 422 | + "wait/" => "generic", | |
| 423 | + "watch/" => "transactions", | |
| 424 | + "xack/" => "stream", | |
| 425 | + "xadd/" => "stream", | |
| 426 | + "xautoclaim/" => "stream", | |
| 427 | + "xclaim/" => "stream", | |
| 428 | + "xdel/" => "stream", | |
| 429 | + "xgroup-create/" => "stream", | |
| 430 | + "xgroup-createconsumer/" => "stream", | |
| 431 | + "xgroup-delconsumer/" => "stream", | |
| 432 | + "xgroup-destroy/" => "stream", | |
| 433 | + "xgroup-setid/" => "stream", | |
| 434 | + "xinfo-consumers/" => "stream", | |
| 435 | + "xinfo-groups/" => "stream", | |
| 436 | + "xinfo-stream/" => "stream", | |
| 437 | + "xlen/" => "stream", | |
| 438 | + "xpending/" => "stream", | |
| 439 | + "xrange/" => "stream", | |
| 440 | + "xread/" => "stream", | |
| 441 | + "xreadgroup/" => "stream", | |
| 442 | + "xrevrange/" => "stream", | |
| 443 | + "xsetid/" => "stream", | |
| 444 | + "xtrim/" => "stream", | |
| 445 | + "zadd/" => "sorted-set", | |
| 446 | + "zcard/" => "sorted-set", | |
| 447 | + "zcount/" => "sorted-set", | |
| 448 | + "zdiff/" => "sorted-set", | |
| 449 | + "zdiffstore/" => "sorted-set", | |
| 450 | + "zincrby/" => "sorted-set", | |
| 451 | + "zinter/" => "sorted-set", | |
| 452 | + "zintercard/" => "sorted-set", | |
| 453 | + "zinterstore/" => "sorted-set", | |
| 454 | + "zlexcount/" => "sorted-set", | |
| 455 | + "zmpop/" => "sorted-set", | |
| 456 | + "zmscore/" => "sorted-set", | |
| 457 | + "zpopmax/" => "sorted-set", | |
| 458 | + "zpopmin/" => "sorted-set", | |
| 459 | + "zrandmember/" => "sorted-set", | |
| 460 | + "zrange/" => "sorted-set", | |
| 461 | + "zrangebylex/" => "sorted-set", | |
| 462 | + "zrangebyscore/" => "sorted-set", | |
| 463 | + "zrangestore/" => "sorted-set", | |
| 464 | + "zrank/" => "sorted-set", | |
| 465 | + "zrem/" => "sorted-set", | |
| 466 | + "zremrangebylex/" => "sorted-set", | |
| 467 | + "zremrangebyrank/" => "sorted-set", | |
| 468 | + "zremrangebyscore/" => "sorted-set", | |
| 469 | + "zrevrange/" => "sorted-set", | |
| 470 | + "zrevrangebylex/" => "sorted-set", | |
| 471 | + "zrevrangebyscore/" => "sorted-set", | |
| 472 | + "zrevrank/" => "sorted-set", | |
| 473 | + "zscan/" => "sorted-set", | |
| 474 | + "zscore/" => "sorted-set", | |
| 475 | + "zunion/" => "sorted-set", | |
| 476 | + "zunionstore/" => "sorted-set" | |
| 477 | + } | |
| 478 | + | |
| 479 | + SLUG_NAMES = { | |
| 480 | + "bitmap" => "Core: Bitmap", | |
| 481 | + "cluster" => "Core: Cluster management", | |
| 482 | + "connection" => "Core: Connection management", | |
| 483 | + "generic" => "Core: Generic", | |
| 484 | + "geo" => "Core: Geospatial indices", | |
| 485 | + "hash" => "Core: Hash", | |
| 486 | + "hyperloglog" => "Core: HyperLogLog", | |
| 487 | + "list" => "Core: List", | |
| 488 | + "pubsub" => "Core: Pub/Sub", | |
| 489 | + "scripting" => "Core: Scripting and Functions", | |
| 490 | + "server" => "Core: Server managment", | |
| 491 | + "set" => "Core: Set", | |
| 492 | + "sorted-set:" => "Core: Sorted Set", | |
| 493 | + "stream" => "Core: Stream", | |
| 494 | + "string" => "Core: String", | |
| 495 | + "transactions" => "Core: Transactions", | |
| 496 | + "bf" => "Stack: Bloom Filter", | |
| 497 | + "cf" => "Stack: Cuckoo Filter", | |
| 498 | + "cms" => "Stack: Count-min Sketch", | |
| 499 | + "graph" => "Stack: Graph", | |
| 500 | + "json" => "Stack: JSON", | |
| 501 | + "search" => "Stack: Search", | |
| 502 | + "suggestion" => "Stack: Auto-Suggest", | |
| 503 | + "tdigest" => "Stack: T-Digest", | |
| 504 | + "timeseries" => "Stack: Time Series", | |
| 505 | + "topk" => "Stack: Top-K", | |
| 506 | + } | |
| 507 | + | |
| 28 | 508 | end |
| 29 | 509 | end |
| 30 | 510 | end |
| @@ -1,7 +1,7 @@ | ||
| 1 | 1 | module Docs |
| 2 | 2 | class Redis < UrlScraper |
| 3 | 3 | self.type = 'redis' |
| 4 | − self.release = '6.2.1' | |
| 4 | + self.release = '7.0.8' | |
| 5 | 5 | self.base_url = 'https://redis.io/commands' |
| 6 | 6 | self.links = { |
| 7 | 7 | home: 'https://redis.io/', |
| @@ -10,13 +10,13 @@ module Docs · 2 unmodified lines | ||
| 10 | 10 | |
| 11 | 11 | html_filters.push 'redis/entries', 'redis/clean_html', 'title' |
| 12 | 12 | |
| 13 | − options[:container] = ->(filter) { filter.root_page? ? '#commands' : '.text' } | |
| 13 | + options[:container] = ->(filter) { filter.root_page? ? '#commands-grid' : 'section' } | |
| 14 | 14 | options[:title] = false |
| 15 | 15 | options[:root_title] = 'Redis' |
| 16 | 16 | options[:follow_links] = ->(filter) { filter.root_page? } |
| 17 | 17 | |
| 18 | 18 | options[:attribution] = <<-HTML |
| 19 | − © 2009–2020 Salvatore Sanfilippo<br> | |
| 19 | + © 2009–2022 Salvatore Sanfilippo<br> | |
| 20 | 20 | Licensed under the Creative Commons Attribution-ShareAlike License 4.0. |
| 21 | 21 | HTML |
| 22 | 22 | |
| @@ -25,5 +25,13 @@ module Docs · 2 unmodified lines | ||
| 25 | 25 | body = body.lines[1..-1].join |
| 26 | 26 | body.scan(/Redis ([0-9.]+)/)[0][0] |
| 27 | 27 | end |
| 28 | + | |
| 29 | + private | |
| 30 | + | |
| 31 | + def parse(response) | |
| 32 | + response.body.gsub! '<form', '<pre' | |
| 33 | + response.body.gsub! '</form', '</pre' | |
| 34 | + super | |
| 35 | + end | |
| 28 | 36 | end |
| 29 | 37 | end |