Ruby Multi Line Blocks Usage The Next CEO of Stack OverflowReturn render in Ruby on Railsruby code case when not so dryRuby blocks formatStylistic exception and bang usageRuby ActiveRecord importing libraryMath Calculus in rubyImplementation on AMQP in RubyRuby object declared as constantRuby Select uniq in one statementRuby on Rails quiz function

Which kind of appliances can one connect to electric sockets located in a airplane's toilet?

How do I transpose the 1st and -1th levels of an arbitrarily nested array?

"In the right combination" vs "with the right combination"?

Is 'diverse range' a pleonastic phrase?

Are there any unintended negative consequences to allowing PCs to gain multiple levels at once in a short milestone-XP game?

Can I equip Skullclamp on a creature I am sacrificing?

Should I tutor a student who I know has cheated on their homework?

Can you replace a racial trait cantrip when leveling up?

Do I need to enable Dev Hub in my PROD Org?

What flight has the highest ratio of time difference to flight time?

If/When UK leaves the EU, can a future goverment conduct a referendum to join the EU?

Elegant way to replace substring in a regex with optional groups in Python?

How did the Bene Gesserit know how to make a Kwisatz Haderach?

How does the Z80 determine which peripheral sent an interrupt?

Can we say or write : "No, it'sn't"?

Does it take more energy to get to Venus or to Mars?

How to count occurrences of text in a file?

Sending manuscript to multiple publishers

Unreliable Magic - Is it worth it?

Why didn't Khan get resurrected in the Genesis Explosion?

WOW air has ceased operation, can I get my tickets refunded?

If a black hole is created from light, can this black hole then move at speed of light?

How did people program for Consoles with multiple CPUs?

What was the first Unix version to run on a microcomputer?



Ruby Multi Line Blocks Usage



The Next CEO of Stack OverflowReturn render in Ruby on Railsruby code case when not so dryRuby blocks formatStylistic exception and bang usageRuby ActiveRecord importing libraryMath Calculus in rubyImplementation on AMQP in RubyRuby object declared as constantRuby Select uniq in one statementRuby on Rails quiz function










0












$begingroup$


According to the Ruby Style Guide and Airbnb Style Guide:




Prefer ... over do...end for single-line blocks. Avoid using ... for multi-line blocks (multiline chaining is always ugly).




Now, image the following functions which must return an array of hashes:



OPTION 1



def generate_fields_1
words = ["foo", "bar", "bla"]
numbers = [1, 2, 3]
fields = []

words.each do |word|
numbers.each do |number|
content = find_content(word, number)
next if content.nil?

fields <<
kind: word,
value: content

end
end

fields
end


OPTION 2



def generate_fields_2
words = ["foo", "bar", "bla"]
numbers = [1, 2, 3]

words.map do |word|
numbers.map do |number|
content = find_content(word, number)
next if content.nil?


kind: word,
value: content

end.compact
end.flatten
end


The result is an array of hashes of any length because it depends on the find_content function which might return a nil value.



[
kind: "", value: "BRL" ,
kind: "", value: "AUS" ,
kind: "", value: "PER" ,
]


Both functions return the same result but I see a tricky situation. The second option is better for me because I don't have the field variable and is cleaner than option 1. However, option 1 is straightforward without any shady behaviour such as end.compact or end.flatten.



What is the most appropriate function between both options? Is there any other alternative which respects the guidelines and returns the same result? Thanks in advance.









share







New contributor




tmmgarcia is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$
















    0












    $begingroup$


    According to the Ruby Style Guide and Airbnb Style Guide:




    Prefer ... over do...end for single-line blocks. Avoid using ... for multi-line blocks (multiline chaining is always ugly).




    Now, image the following functions which must return an array of hashes:



    OPTION 1



    def generate_fields_1
    words = ["foo", "bar", "bla"]
    numbers = [1, 2, 3]
    fields = []

    words.each do |word|
    numbers.each do |number|
    content = find_content(word, number)
    next if content.nil?

    fields <<
    kind: word,
    value: content

    end
    end

    fields
    end


    OPTION 2



    def generate_fields_2
    words = ["foo", "bar", "bla"]
    numbers = [1, 2, 3]

    words.map do |word|
    numbers.map do |number|
    content = find_content(word, number)
    next if content.nil?


    kind: word,
    value: content

    end.compact
    end.flatten
    end


    The result is an array of hashes of any length because it depends on the find_content function which might return a nil value.



    [
    kind: "", value: "BRL" ,
    kind: "", value: "AUS" ,
    kind: "", value: "PER" ,
    ]


    Both functions return the same result but I see a tricky situation. The second option is better for me because I don't have the field variable and is cleaner than option 1. However, option 1 is straightforward without any shady behaviour such as end.compact or end.flatten.



    What is the most appropriate function between both options? Is there any other alternative which respects the guidelines and returns the same result? Thanks in advance.









    share







    New contributor




    tmmgarcia is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.







    $endgroup$














      0












      0








      0





      $begingroup$


      According to the Ruby Style Guide and Airbnb Style Guide:




      Prefer ... over do...end for single-line blocks. Avoid using ... for multi-line blocks (multiline chaining is always ugly).




      Now, image the following functions which must return an array of hashes:



      OPTION 1



      def generate_fields_1
      words = ["foo", "bar", "bla"]
      numbers = [1, 2, 3]
      fields = []

      words.each do |word|
      numbers.each do |number|
      content = find_content(word, number)
      next if content.nil?

      fields <<
      kind: word,
      value: content

      end
      end

      fields
      end


      OPTION 2



      def generate_fields_2
      words = ["foo", "bar", "bla"]
      numbers = [1, 2, 3]

      words.map do |word|
      numbers.map do |number|
      content = find_content(word, number)
      next if content.nil?


      kind: word,
      value: content

      end.compact
      end.flatten
      end


      The result is an array of hashes of any length because it depends on the find_content function which might return a nil value.



      [
      kind: "", value: "BRL" ,
      kind: "", value: "AUS" ,
      kind: "", value: "PER" ,
      ]


      Both functions return the same result but I see a tricky situation. The second option is better for me because I don't have the field variable and is cleaner than option 1. However, option 1 is straightforward without any shady behaviour such as end.compact or end.flatten.



      What is the most appropriate function between both options? Is there any other alternative which respects the guidelines and returns the same result? Thanks in advance.









      share







      New contributor




      tmmgarcia is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.







      $endgroup$




      According to the Ruby Style Guide and Airbnb Style Guide:




      Prefer ... over do...end for single-line blocks. Avoid using ... for multi-line blocks (multiline chaining is always ugly).




      Now, image the following functions which must return an array of hashes:



      OPTION 1



      def generate_fields_1
      words = ["foo", "bar", "bla"]
      numbers = [1, 2, 3]
      fields = []

      words.each do |word|
      numbers.each do |number|
      content = find_content(word, number)
      next if content.nil?

      fields <<
      kind: word,
      value: content

      end
      end

      fields
      end


      OPTION 2



      def generate_fields_2
      words = ["foo", "bar", "bla"]
      numbers = [1, 2, 3]

      words.map do |word|
      numbers.map do |number|
      content = find_content(word, number)
      next if content.nil?


      kind: word,
      value: content

      end.compact
      end.flatten
      end


      The result is an array of hashes of any length because it depends on the find_content function which might return a nil value.



      [
      kind: "", value: "BRL" ,
      kind: "", value: "AUS" ,
      kind: "", value: "PER" ,
      ]


      Both functions return the same result but I see a tricky situation. The second option is better for me because I don't have the field variable and is cleaner than option 1. However, option 1 is straightforward without any shady behaviour such as end.compact or end.flatten.



      What is the most appropriate function between both options? Is there any other alternative which respects the guidelines and returns the same result? Thanks in advance.







      ruby ruby-on-rails





      share







      New contributor




      tmmgarcia is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share







      New contributor




      tmmgarcia is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share



      share






      New contributor




      tmmgarcia is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 4 mins ago









      tmmgarciatmmgarcia

      1




      1




      New contributor




      tmmgarcia is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      tmmgarcia is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      tmmgarcia is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          0






          active

          oldest

          votes












          Your Answer





          StackExchange.ifUsing("editor", function ()
          return StackExchange.using("mathjaxEditing", function ()
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
          );
          );
          , "mathjax-editing");

          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "196"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );






          tmmgarcia is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216516%2fruby-multi-line-blocks-usage%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          tmmgarcia is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded


















          tmmgarcia is a new contributor. Be nice, and check out our Code of Conduct.












          tmmgarcia is a new contributor. Be nice, and check out our Code of Conduct.











          tmmgarcia is a new contributor. Be nice, and check out our Code of Conduct.














          Thanks for contributing an answer to Code Review Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216516%2fruby-multi-line-blocks-usage%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          名間水力發電廠 目录 沿革 設施 鄰近設施 註釋 外部連結 导航菜单23°50′10″N 120°42′41″E / 23.83611°N 120.71139°E / 23.83611; 120.7113923°50′10″N 120°42′41″E / 23.83611°N 120.71139°E / 23.83611; 120.71139計畫概要原始内容臺灣第一座BOT 模式開發的水力發電廠-名間水力電廠名間水力發電廠 水利署首件BOT案原始内容《小檔案》名間電廠 首座BOT水力發電廠原始内容名間電廠BOT - 經濟部水利署中區水資源局

          Prove that NP is closed under karp reduction?Space(n) not closed under Karp reductions - what about NTime(n)?Class P is closed under rotation?Prove or disprove that $NL$ is closed under polynomial many-one reductions$mathbfNC_2$ is closed under log-space reductionOn Karp reductionwhen can I know if a class (complexity) is closed under reduction (cook/karp)Check if class $PSPACE$ is closed under polyonomially space reductionIs NPSPACE also closed under polynomial-time reduction and under log-space reduction?Prove PSPACE is closed under complement?Prove PSPACE is closed under union?

          Is my guitar’s action too high? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)Strings too stiff on a recently purchased acoustic guitar | Cort AD880CEIs the action of my guitar really high?Μy little finger is too weak to play guitarWith guitar, how long should I give my fingers to strengthen / callous?When playing a fret the guitar sounds mutedPlaying (Barre) chords up the guitar neckI think my guitar strings are wound too tight and I can't play barre chordsF barre chord on an SG guitarHow to find to the right strings of a barre chord by feel?High action on higher fret on my steel acoustic guitar