Is there a list of conflicting plugins?
-
These 'clash' problems are usually from some unforeseen results when rewriting existing methods, that then screw up another script's functionality.
For example, I suspect that the Sketchyphysics 'problem' with EEby.. tools and others is perhaps down to it somehow rewriting the Sketchup Group.copy command, that should return the copied group's 'id' but returnsnil
instead - it's probably been recast to allow copying of groups with/without attributes etc [?] but it just hasn't got areturn new_group
as it completes.
It's probably an easy fix but until someone finds out that it's a problem then it'll go un-addressed...
Using global variable ($xxx) is also a recipe for clashes unless they are very oddly named etc since the load order of scripts will overwrite these with the last version... -
I suspect SketchyPhysics was not the problem, or if so not in an obvious manner. It either is or it is not redefining the method, and 'somehow' redefining it isn't a good enough explanation. I didn't find in SketchyPhysics where it was redefining Group.copy. Hopefully Chris will confirm.
-
I recently looked at 2 specialized plugins - pachube and phlatscript. Both of these use copious numbers of global variables and define methods in the global namespace.
-
@jim said:
I suspect SketchyPhysics was not the problem, or if so not in the way you believe. It either is or it is not redefining the method, and 'somehow' redefining it isn't a good enough explanation. I didn't in SketchyPhysics where it was redefining Group.copy. Hopefully Chris will confirm.
I agree that grepping through all of the current SP rubies there is no redefining of
group.copy
... but it was still apparently conflicting with it in some cases. It's weird... Might xrok1 have some old SP rubies that mess up ? I only have the current SP set - and of course I don't get the problem at all ! -
ahhh! i thought this debate may pop up so i saved a copy of the offending SP version. take a look!
-
Cerebral Meltdown SunPosition
http://www.cerebralmeltdown.com/projects/sunplugin/- Re-defines Float.round
- Adds to_deg and to_rad to Numeric (not needed API already has .degrees and .radian methods.)
- Adds to_fl to Float class - supposed to handle commas in floats?
Possible conflict with Curviloft:
http://forums.sketchucation.com/viewtopic.php?f=323&t=28586&p=256061#p256061
-
Has any one approached the developers?
-
SCF Toolbars installs
extensions.rb
file in the Plugins folder. It already exists in the Tools folder, and may cause errors.reference: http://forums.sketchucation.com/viewtopic.php?f=183&t=30092#p264035
-
sunposition.rb by cerebralmeltdown over-rides Ruby built-in methods Float#round, and can effect other scripts.
via http://forums.sketchucation.com/viewtopic.php?f=323&t=28586&start=240#p265784
-
@jim said:
Cerebral Meltdown SunPosition
- Adds to_fl to Float class - supposed to handle commas in floats?
It added the method to the String class. Because in some user locales the decimal separator is comma instead of period.
-
TrueTangent.rb is overriding Float::=~ which is the regular expression operator with a unique function that disables regular expression functionality altogether.
My suggestion to all those that override global built in classes to avoid it as other scripts may rely on the basic functionality being there and operable. just create a new child class of the built in class and use your own classes in your code if you need to change their functionalities.
-
That's TIG's script: http://forums.sketchucation.com/viewtopic.php?t=19457
-
That code's been around for ages without any complaints... The
=~
isn't a standard method for the Float Class [at least in my 'prgamatic' documentation]: it's a new one I made up to compare two floats as being approximately equal, and 'Regexp' isn't part of Float... is it ??
Any ideas from better Ruby gurus than me ????class Float def =~(num2,tol=10000) num1=(self*tol).to_i num2=(num2*tol).to_i return true if num1==num2 return nil end end #class Float
How do I 'isolate' it to avoid possible clashes [with an 'example' please] - if necessary...
-
@tig said:
That code's been around for ages without any complaints... The
=~
isn't a standard method for the Float Class [at least in my 'prgamatic' documentation]: it's a new one I made up to compare two floats as being approximately equal, and 'Regexp' isn't part of Float... is it ??
Any ideas from better Ruby gurus than me ????How do I 'isolate' it to avoid possible clashes [with an 'example' please] - if necessary...TIG,
The issue is not so much that you add a new method. It is rather the potential clash if another script writer has the exact same idea (and he may have it, because it seems simple and elegant). Then if several scripts define the method
=~
with different precisions or even different meanings, some scripts may potentially not work and this may be hard to find out what is the cause.The normal approach would be to introduce a regular method like "
float_compare(a, b)
". It is less elegant, but at least it is only visible in the script own scope.Fredo
Fredo
-
Thanks Fredo.
I'll make a fix...
[Edit: done.] -
Rick's offset.rb and wikii's FAK.rb (Follow and Keep) both define an
#offset
method for Array and Sketchup::Face classes. May the last one loaded win. -
Didier Bur's dline.rb adds (yet another) offsetPoints method to Array, but then never utilizes the method. Also resets a global $debug to false.
-
The old MatchBox plugin is known to have caused problems. Even the new (1.1) version still mess up the base classes:
http://forums.sketchucation.com/viewtopic.php?f=180&t=12893(I'd prefer if we didn't distribute this plugin at SCF...)
-
Train Simulator 1.2 exporter by Paul Gausden
mstsx.rbReported by Tomaz: http://forums.sketchucation.com/viewtopic.php?f=180&t=12423&hilit=matchbox&start=15#p103041
-
hmm... another benefit a plugin manager could have: check for conflicting plugins from a blacklist or known problem-plugins.
Advertisement