learn-co-curriculum / yield-and-blocks Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
The final paragraph in README.md states this:
"In the code-along above, we built our own implementation of the #each method. We used while to iterate through each element of the array and passed, or yielded, each successive element to an accompanying block. That block used a parameter placeholder, |i|, to set a variable, i, equal to whatever value is yielded into the block at each step of the iteration. That block also contained code to execute with each yielded element in turn."
Yet, the code examples use |name|. This confuses the reader and may prevent learners from understanding the lesson.
seems like even the solution branch's last commit refers to the inconsistency and it's been like this for two years now?
the concept is confusing and the mismatch doesn't help.
The IDE would not open the lesson. It says loading error.
Getting a 404 error in the Block Parameters and Yielding section of the link.
The link for the article "Mix&Go - Mastering-ruby-blocks-in-less-than-5-minutes" comes up as a 404 not found error. I would submit a PR, but not sure if this should just be removed or if there's opportunity for it to be replaced with something else.
title: About.com - Block Parameters and Yielding
"http://ruby.about.com/od/beginningruby/a/Block-Parameters-And-Yielding.htm"
Thanks for raising this issue! Future learners thank you for your diligence. In
order to help the curriculum team address the problem, please use this template
to submit your feedback. We'll work on addressing the issue as soon as we can.
Please fill out as much of the information below as you can (it's ok if you
don't fill out every section). The more context we have, the easier it will be
to fix your issue!
Note: you should only raise issues related to the contents of this lesson.
If you have questions about your code or need help troubleshooting, reach out to
an instructor/your peers.
Add a link to the assignment in Canvas here.
https://learning.flatironschool.com/courses/1879/assignments/125406?module_item_id=259059
Write a clear and concise description of what the bug is. Include the file and
line number(s) if possible.
All About Ruby (Links to an external site.) - Correct link
Ruby Blocks (Links to an external site.) - Correct link
Mix&Go (Links to an external site.) - Correct link
Mastering-ruby-blocks-in-less-than-5-minutes - link is broken
Write a clear and concise description of what you expected to happen.
Expecting to be redirected to the url
If applicable, attach screenshots to help explain your problem.
OS X
Add any other context about the problem here.
This lesson contains a code along lab. However, the code given to code along with during the lesson doesn't pass the tests. Initially, I assumed the error was mine—maybe I transposed two letters or made some other transcription error. But when I copied and pasted all of the code directly from the lesson to the IDE, it failed every test.
I took apart the code and modified it until it passed all of the tests—without altering the tests and still using yield—so I feel like I still met the larger objective. But I still wanted to point out that this is going to fail for other students.
Fork and text aren't working, but submit learn did work
Coda Hale's Blog - Writing a Method that Uses Code Blocks
http://blog.codahale.com/2005/11/24/a-ruby-howto-writing-a-method-that-uses-code-blocks/
this link no longer is valid
I know others have pointed this out, but it still seems that the "code along" exercise in this lesson does not correspond to the actual tests in the IDE. When they tell me it should pass, it doesn't because spec does not pass the correct block into my yield method.
There was a problem in the hello_spec.rb file. Initially the hello.rb file gives us this:
def hello
end
#call your method here
Yet when you pass this method an argument and iterate through the array correctly it still returns an error because the .spec file is testing for a hello_t
method not a hello
method, take a look.
Failures:
1) #hello takes in an argument of an array and puts out a greeting to each person in the array whose name begins with the letter T
Failure/Error: expect{hello_t(array){|name| puts "Hi, #{name}" if name.start_with?('T') }}.to output("Hi, Tim\nHi, Tom\n").to_stdout
NoMethodError:
undefined method `hello_t' for #<RSpec::ExampleGroups::Hello:0x007fc97c1822a0>
So what I did was I went into the hello.spec file and changed the test to look for a method named hello
like the lab was started and not hello_t
magiks.
Aside from that thanks for addressing the lack of yield
before we hit the My_each, collect, select labs. Although I think now you're giving away how to complete the My_Each lab in the Yield and Blocks lab.
Need "its," not "it's" :)
But how do #each, and the other iterators like #collect, actually pass, or yield, each successive element to it's accompanying block? Under the hood, these methods rely on the yield keyword.
The test suite gives the wrong block which makes the test output always be "Hi, Tim\nHi, Tom\nHi, Jim" even if you define the method and code the block according to the README.
Near the end of the README.md file, it says this:
"Here, we tell our method to return the original array simply by having that array be the last line of the method. Whatever is evaluated last in a method will be the return value for the whole method. If you run the test again, you should be passing."
The bold words are confusing, because if you run learn again, the individual test is passing but not the whole test.
The fact that the next part says 'ADVANCED' compounds the confusion. In all previous labs, this section was not required to complete all the learn tests. Yet in this one, it is.
I think this confuses the learner. It looks like the advanced section was added as a test later on, and README.md hasn't been changed to reflect that.
#39 addresses this issue.
Hello, the 3 links in Resources is not functional.
"Mix&Go - Mastering-ruby-blocks-in-less-than-5-minutes"
Thank you,
Emilia
the yield block in the test code does not contain the if condition (if array.starts_with?("T")||array.starts_with?("t")).
There are a few links at the bottom of this lesson and they are not pointing to the correct end points.
Link #1 Correction
All About Ruby - Ruby Blocks
https://allaboutruby.wordpress.com/20https://allaboutruby.wordpress.com/2006/01/20/ruby-blocks-101/06/01/20/ruby-blocks-101/
Link #2 It appears that about.com has been changed quite a bit and I couldn't find a good link to replace it.
The other two links appear to be ok.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.