Ruby is also a bit of a contrived example. Ruby
looks a lot like you could come to it from Java and know most of it, but metaprogramming actually takes a long time and a lot of work to really figure out.
Similarly, Ruby has many different little variants -- Rails, Rake, various sorts of DSLs -- and that adds significantly to the time to learn it.
Really learning Ruby is learning several similar languages, which makes two years a much harder number to achieve.
C++ could easily have been like that if it had different constellations of features that were routinely used in different ways by the same programmers. Imagine if there were a whole "C++ tools" subculture that used templates extensively but differently, along with one or two other nontrivial features (say, multiple inheritance and exceptions) used in specific ways with specific non-compiler-mandated rules.
You'd have to learn, in effect, about another programming language's worth of material to program fluently within that subculture.
Ruby has several of those.