oggy / looksee

Supercharged method introspection in IRB
MIT License
364 stars 14 forks source link

Looksee missing some methods of a sequel record object. #58

Closed zw963 closed 1 year ago

zw963 commented 2 years ago

Following is a reproduceable one file ruby script to reproduce this.


#!/usr/bin/env ruby

begin
  require "bundler/inline"
rescue LoadError => e
  $stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
  raise e
end

gemfile(true) do
  source "https://rubygems.org"
  gem 'sequel'
  gem 'sqlite3'
  gem 'looksee'
end

require 'fileutils'
require 'looksee'

if File.exist?('test.db')
  FileUtils.rm('test.db')
end

DB_URL = 'sqlite://test.db'
DB = Sequel.connect(DB_URL)
DB.extension :pagination

DB.create_table(:tests, :ignore_index_errors=>true) do
  primary_key :id
  String :name, :text=>true
end

class Test < Sequel::Model
end

Test.create(name: 'name1')
Test.create(name: 'name2')

test = Test.dataset.paginate(1, 1)

p Looksee[test, /page/]
puts '-'*100
puts test.methods.grep /page/

When run above code, looksee will output result like this:

image

as you can see, following method all defined on test.

current_page
current_page_record_range
current_page_record_count
page_count
page_size
last_page?
first_page?
page_range
next_page
prev_page
paged_each
each_page

But, Looksee only can see several of them.

Sequel::Dataset
  paged_each
Sequel::DatasetPagination
  each_page

this issue may caused by roda plugins system, anyway, here have a blog maybe help on this.

Thank you.

oggy commented 1 year ago

Good catch, thanks. This was absolutely a bug. Fixed in 5.0.0.