sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] AttributeInspector 1.1.1 – 2014-05-08

    Scheduled Pinned Locked Moved Plugins
    45 Posts 10 Posters 3.0k Views 10 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Dan RathbunD Offline
      Dan Rathbun
      last edited by

      BTW... you can currently use the triple equal method with Length class, so this will work:
      true === length_value || false === length_value

      I'm not here much anymore.

      1 Reply Last reply Reply Quote 0
      • Dan RathbunD Offline
        Dan Rathbun
        last edited by

        @aerilius said:

        Or shouln't ruby have a "Boolean" super class of which TrueClass and FalseClass are subclasses?
        type = (value.is_a?(TrueClass) || value.is_a?(FalseClass)) ? "Boolean" : value.class.to_s

        I always wondered why not ?

        One thing I have done in the past is create a boolean?() query method for Object (or something else like Comparable.
        Now this is frowned upon, and I never released it, just suggested, or had it in my test scripts.

        
        def boolean?()
          is_a?(TrueClass) || is_a?(FalseClass)
        end unless method(;boolean?)
        

        AND / OR, ... create a Boolean mixin module, and then mix it into only TrueClass and FalseClass. The mixin module may not actually need any additional functionality, at all ?

        Then the kind_of? (alias is_a?,) methods will return the appropriate true or false using a Boolean class argument, for any, and ALL objects.
        The === will also work for all objects, which makes case statements work:
        Boolean === value


        Whichever one (or both,) ya'll want, would need to be adopted as an API extension, by the community. (And we'd need to convince the Trimble team to add it.)

        I'm not here much anymore.

        1 Reply Last reply Reply Quote 0
        • tt_suT Offline
          tt_su
          last edited by

          The Length class is a bit of a special case. It's trying to be a sub-class of Float - but the Ruby API doesn't really let you do this. So there's some hackery in the background to make it work. I'll file an issue to see if we can avoid the argument error.

          1 Reply Last reply Reply Quote 0
          • Dan RathbunD Offline
            Dan Rathbun
            last edited by

            Thanks TT.

            Just returning false would be preferable, instead of raising an ArgumentError (when really TypeError occurs.)

            I'm not here much anymore.

            1 Reply Last reply Reply Quote 0
            • tt_suT Offline
              tt_su
              last edited by

              Yea, there's a few annoying inconsistency where the correct error isn't raised.

              1 Reply Last reply Reply Quote 0
              • 1
              • 2
              • 3
              • 3 / 3
              • First post
                Last post
              Buy SketchPlus
              Buy SUbD
              Buy WrapR
              Buy eBook
              Buy Modelur
              Buy Vertex Tools
              Buy SketchCuisine
              Buy FormFonts

              Advertisement