Notes posted by syborg
RSS feed
0 thanks
:defaults no longer work
I’m afraid that :defaults option doesn’t work anymore.
<%= javascript_include_tag :defaults %>
it loads “defaults.js”
Instead, to load all .js files now use
<%= javascript_include_tag "application" %>

0 thanks
Alternative way to show relative paths from absolute globbing
An alternative to show relative paths is using the well known String#sub! method
base_dir = File.expand_path("my_dir") << "/" # don't miss adding "/" files = Dir[File.join(base_dir, '**', '*.html.gz')] p files.map {|f| f.sub!(base_dir,"")}

0 thanks
Generalized Zip
My 5 cents.
I find trully useful this. Is a kind of generalized zip. You can combine 2 or more enumerables (arrays or others) of any size into a hash, array of arrays, .… The size of the result is the size of the bigest of the enumerables. For the shortests enumerables nil elements are used at the end.
# method compose def compose(*enumerables) res=[] enumerables.map(&:size).max.times do tupla=[] for enumerable in enumerables tupla << enumerable.shift end res << (block_given? ? yield(tupla) : tupla) end res end
some examples:
en1= [1, 2, 3, 4] en2= ['a', 'b', 'c', 'd', 'e'] en3= {:elem1 => "1", :elem2 => "2", :elem3 => "3"} p compose en1.dup, en2.dup, en3.dup p a1=compose(en2.dup, en1.dup) {|a,b| {a.to_sym => b}} p a1.inject({}) {|ac,item| ac.merge item} p a1.flatten p a2=compose(en2.dup, en1.dup).flatten p Hash[*a2] p a3=compose(en2.dup, en3.dup).flatten
Their outputs are:
#[[1, "a", [:elem1, "1"]], [2, "b", [:elem2, "2"]], [3, "c", [:elem3, "3"]], [4, "d", nil], [nil, "e", nil]] #[{:a=>1}, {:b=>2}, {:c=>3}, {:d=>4}, {:e=>nil}] #{:b=>2, :d=>4, :e=>nil, :c=>3, :a=>1} #[{:a=>1}, {:b=>2}, {:c=>3}, {:d=>4}, {:e=>nil}] #["a", 1, "b", 2, "c", 3, "d", 4, "e", nil] #{"a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>nil} #["a", :elem1, "1", "b", :elem2, "2", "c", :elem3, "3", "d", nil, "e", nil]