Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Oct 16 20:07
    matthewp commented #5384
  • Oct 16 20:06
    matthewp labeled #5384
  • Oct 16 20:06
    matthewp opened #5384
  • Oct 16 19:53
    matthewp opened #5383
  • Oct 16 16:23
    phillipskevin closed #4841
  • Oct 15 21:43

    phillipskevin on master

    Update dist for release (compare)

  • Oct 15 21:43

    phillipskevin on v6.1.1

    Update dist for release 6.1.1 (compare)

  • Oct 15 21:34

    phillipskevin on can-observable-mixin-1.0.2

    (compare)

  • Oct 15 21:34

    phillipskevin on master

    fix(package): update can-observ… Merge branch 'master' into gree… Merge pull request #5382 from c… (compare)

  • Oct 15 21:34
    phillipskevin closed #5382
  • Oct 15 21:34

    phillipskevin on can-make-map-1.2.2

    (compare)

  • Oct 15 21:34

    phillipskevin on master

    fix(package): update can-make-m… Merge pull request #5380 from c… (compare)

  • Oct 15 21:34
    phillipskevin closed #5380
  • Oct 15 20:30
    phillipskevin synchronize #5382
  • Oct 15 20:30

    phillipskevin on can-observable-mixin-1.0.2

    fix(package): update can-observ… fix(package): update can-simple… Merge pull request #5372 from c… and 2 more (compare)

  • Oct 15 20:30
    phillipskevin opened #5382
  • Oct 15 20:28

    phillipskevin on can-simple-map-4.3.3

    (compare)

  • Oct 15 20:28

    phillipskevin on master

    fix(package): update can-simple… Merge pull request #5378 from c… (compare)

  • Oct 15 20:28
    phillipskevin closed #5378
  • Oct 15 20:26

    phillipskevin on can-observable-mixin-1.0.1

    (compare)

Christopher Oliphant
@RALifeCoach
No problem, I know you guys are very busy.
Justin Meyer
@justinbmeyer
I'll meet you in the steal-tools room
steal room
Christopher Oliphant
@RALifeCoach
steal-tools or steal?
the question is posted in stealjs/steal
Adam L Barrett
@BigAB

Okay, here's what I want:
I want to be able to get all the methods on a DefineMap instance, that are not the methods provided by DefineMap (get,set,setup,serialize,...etc), I only want the methods defined in the propsDefinition object, or any propsDefinition object of it's from an already extended DefineMap class.

Is there a good way to get what I want?

My first thought is, see if there is any way to access the propsDefinition objects from the class/constructor function, sooo...
If you have an extended DefineMap constructor function:

const User = DefinedMap.extend({
  name: 'string',
  login(username, password) { ... }
})

Is there anyway to get the object passed to extend there from the User class?
If User was then extended:

const PrivilegedUser = User.extend({
  login(username, password) { ... },
  verifyRole(role) { ... }
})

Is there a way from the PrivilegedUser function to access both the object passed to as well as the one User.extend() passed to DefineMap.extend()?

From this example above, what I really want, is to end up with a list of method keys, in this case from PrivilegedUser I would want ['login', 'verifyRole']
Matthew Phillips
@matthewp
if(!DefineMap.prototype[methodName])
or
if(instance.__proto__[methodName])
Justin Meyer
@justinbmeyer
Please take our training session time survey: https://twitter.com/canjs/status/771026512057434112
Adam L Barrett
@BigAB
@matthewp No I want to get a list of the method names, I wont know them already
Justin Meyer
@justinbmeyer
@BigAB his suggestion was accounting for that
he implied a loop
you can do a for in loop of the instance.constructor.prototype
then check to make sure the property is .hasOwnProperty() on that object
Chris
@chrischrischris
Hi, Is there a way to determine if a control is currently bound to an element?
Justin Meyer
@justinbmeyer
I think a control adds to the element's data
if you're using jquery, $(element).data("control")
I think
controls
Chris
@chrischrischris
Perfect, thanks Justin!
Adam L Barrett
@BigAB
@matthewp @justinbmeyer Yeah, so that doesn’t quite get what I wanted, as there is still setup in there, and constructor, and I end up having to walk up and check the prototype chain to look for any more methods (from already extended constructors). So I take it we don’t hold onto those propertyDefinition objects anywhere then eh? That’s alright, I’ll look into a different approach.
Kevin Phillips
@phillipskevin
@BigAB when are you looking to do this? in your actual app? in a test?
Adam L Barrett
@BigAB
@phillipskevin Looking for a way in my can-react implementation, to copy (and bind) the methods defined on a DefineMap into the object to be passed as props to the connected component
https://github.com/BigAB/can-react/blob/master/src/can-react.js#L66
Currently I am copying (and binding) and property that is a function, but I figured that was excessive, as presumably, they would only be expecting to pass any methods the DefineMap had.. ..uh… defined.
To answer the “about to be asked” question, “Why not pass the whole DefineMap instance”, react throws a little warning if you try to pass anythign other than a plain object as props
Kevin Phillips
@phillipskevin
ok, thanks for explaining
I don’t have a better idea
if you figure out a different approach I’d be interested to hear it though
Adam L Barrett
@BigAB
I am considering putting the pressure on the other side, and only copying over methods defined in the React Components propTypes
This would force users to define their propTypes in the component, which though encouraged, is not enforced
Matthew Phillips
@matthewp
I think walking up the prototype chain is what you want to do
walk up the chain until you get to DefineMap and stop there
if your goal is to get a list of non-definemap functions that is
Adam L Barrett
@BigAB
@matthewp So you think i should just sort of blacklist setup which seems to always be there (as well as constructor)
Matthew Phillips
@matthewp
Yeah, sounds fine to me
if you know this is a DefineMap/Map, it's ok that you have hardcoded that
constructor applies to all objects
so no prob there either
this is metaprogramming so doesn't need to be easy/clean :)
Justin Meyer
@justinbmeyer
@BigAB what I'm saying should work
setup shouldn't be there. Maybe constructor ... that is the only one.
Christopher Oliphant
@RALifeCoach
Is it possible to create a viewModel as a class?
export default class XxxViewModel extends DefineMap {
    ??

    onButtonClick() {
        …
    }
}
Matthew Phillips
@matthewp
Probably not yet
Maybe if you call the static .setup() method
Christopher Oliphant
@RALifeCoach
It seems to work if I define the properties and methods in the constructor.