Code Monkey home page Code Monkey logo

Comments (3)

rmm5t avatar rmm5t commented on September 27, 2024

Sorry, I cannot reproduce your issue. I tried with both Ruby 2.4.9 and Ruby 2.6.6. Is there something else that might be causing your issue?

$ bin/console 
>> RUBY_VERSION
=> "2.6.6"
>> BusinessTime::VERSION
=> "0.10.0"
>> Time.now.during_business_hours?
=> true
$ bin/console 
>> RUBY_VERSION
=> "2.4.9"
>> BusinessTime::VERSION
=> "0.10.0"
>> Time.now.during_business_hours?
=> true

from business_time.

rmm5t avatar rmm5t commented on September 27, 2024

Closing this out until more information is provided.

from business_time.

ducharmemp avatar ducharmemp commented on September 27, 2024

@rmm5t I think I have a replication available along with the root cause, and I've replicated a test failure in our CI environment and my local machine.

RUBY_VERSION=2.7.4
Testing business time versions 0.9.3, 0.11.0

Test date: Sun, 14 Oct 2018 00:00:00 EDT -04:00 (although a Saturday would work as well)

In Ruby 2, sortedset is part of the standard library, while in Ruby 3, sortedset was removed with a key difference.

In the gem, rbtree is always required https://github.com/knu/sorted_set/blob/master/lib/sorted_set.rb#L7

In the original standard library implementation, rbtree tries to load, but falls back to a normal hash if rbtree is unavailable (it's unavailable on my system if I try to run require "rbtree").

If a normal hash is used, the default value is false https://github.com/ruby/ruby/blob/master/lib/set.rb#L246 but as far as I can tell, there's no such restriction in rbtree. Below is an IRB console session that I captured on both 0.9.3 and 0.11.0

# 0.9.3
BusinessTime::Config.weekdays.instance_variable_get("@hash")
=> {1=>true, 2=>true, 3=>true, 4=>true, 5=>true}
BusinessTime::Config.weekdays.include?(0)
=> false

# 0.11.0
BusinessTime::Config.weekdays.instance_variable_get("@hash")
=> #<RBTree: {1=>true, 2=>true, 3=>true, 4=>true, 5=>true}, default=nil, cmp_proc=nil>
BusinessTime::Config.weekdays.include?(0)
=> nil

ETA: bug report on sorted_set available here: knu/sorted_set#2

Ah I see there was also a PR in this repo that was closed, apologies for the ping! #208

from business_time.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.