Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Initializers to class factory syntax IV #929

sashadev-sky opened this issue Aug 11, 2019 · 1 comment


Copy link

commented Aug 11, 2019

First Time?

This is a first-timers-only issue. This means we've worked to make it more legible to folks who either haven't contributed to our codebase before, or even folks who haven't contributed to open source before.

If that's you, we're interested in helping you take the first step and can answer questions and help you out as you do. Note that we're especially interested in contributions from people from groups underrepresented in free and open source software!

We know that the process of creating a pull request is the biggest barrier for new contributors. This issue is for you 💝

If you have contributed before, consider leaving this one for someone new, and looking through our general help wanted issues. Thanks!

🤔 What you will need to know.

Nothing. This issue is meant to welcome you to Open Source :) We are happy to walk you through the process.

The problem

What's supposed to happen:

From the official Leaflet docs:

Class Factories
You may have noticed that Leaflet objects are created without using the new keyword. This is achieved by complementing each class with a lowercase factory method:

new L.Map('map'); // becomes:'map');

What actually does happen:

We use built-in Leaflet classes such as L.LatLngBounds', L.LatLng, and L.Map`, but we don't take advantage of their suggested class factory syntax. Let's clean up the below file a bit to do that:


  1. remove all 3 new keywords from this line, change the initializer to L.latLngBounds, and change the other initializers to L.latLng

    var bounds = new L.LatLngBounds(new L.LatLng(84.67351257 , -172.96875) , new L.LatLng(-54.36775852 , 178.59375)) ;

  2. This one is 1/2 way done. All we need to do here is remove the new keyword

    var Mapknitterunique = new'mapknitter-unique' , {
    maxBounds: bounds ,
    maxBoundsViscosity: 0.75
    }).setView([43, -83] , 2);


Step by Step

  • Claim this issue with a comment here, below, and ask any clarifying questions you need
  • Fork the repository and set it up locally following the main repo README instructions
  • Create a new feature branch with a unique name descriptive to the issue
  • Try to fix the issue following the steps above, but even before you're done, you can:
    commit your changes to your branch and start a pull request (see contributing to Public Lab software) but mark it as "in progress" if you have questions or if you haven't finished
  • Reference this issue in your pull request body
  • Once you submit your pull request, an additional checklist will be provided for getting it merged

Please keep us updated

💬 - We encourage contributors to be respectful to the community and provide an update within a week of claiming a first-timers-only issue. We're happy to keep it assigned to you as long as you need if you update us with a request for more time or help, but if we don't see any activity a week after you claim it we may reassign it to give someone else a chance. Thank you in advance!

If this happens to you, don't sweat it! Grab another open issue.

💬 Get help

If you need any help - here are some options:


This comment has been minimized.

Copy link

commented Aug 15, 2019

Hi, @sashadev-sky

I would like to work on this, please.

Is the solution section all I need to do? If so, I'm kind surprised XD

@Manokero Manokero referenced this issue Aug 15, 2019
4 of 5 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
2 participants
You can’t perform that action at this time.