This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # For loop | |
| # suggested: replace with each | |
| for i in x | |
| end | |
| # each_with_object mutates array | |
| # suggested: replace with map | |
| each_with_object([]) |list, i| | |
| list << i | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class RenameTableToLongerName < ActiveRecord::Migration | |
| def change | |
| remove_index :table, name: 'index_table_on_something_id' | |
| remove_index :table, name: 'index_table_on_something_id' | |
| rename_table :table, :incredibly_long_table_name_overflowing_index_length | |
| add_index :incredibly_long_table_name_overflowing_index_length, :something_id, name: 'index_iltnoil_on_something_id' | |
| add_index :incredibly_long_table_name_overflowing_index_length, :something_id, name: 'index_iltnoil_on_something_id' | |
| end | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| jacob@Ninja:$ bin/benchmark_rails | |
| Rehearsal ------------------------------------ | |
| "Codeminer encountered 2 errors parsing 1711 files" | |
| 6.520000 0.040000 6.560000 ( 6.564404) | |
| "RubyParser encountered 26 errors parsing 1711 files" | |
| 17.110000 0.240000 17.350000 ( 17.340777) | |
| -------------------------- total: 23.910000sec | |
| user system total real |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 2.1.1 :001 > def test(foo:) | |
| 2.1.1 :002?> puts foo | |
| 2.1.1 :003?> end | |
| => :test | |
| 2.1.1 :004 > test() | |
| ArgumentError: missing keyword: foo |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (defn unsafe-deserialization? [node] | |
| (and (call-with-receiver-node? node) | |
| (eq-receiver? node "YAML") | |
| (some #(eq-method-name? node %) | |
| ["load" "load_documents" "load_stream" "parse_documents" "parse_stream"]))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| repo = Bugwatch::Repo.discover('bugwatch', Dir.pwd) | |
| # => #<Bugwatch::Repo:0x00000101c98ae0 @name="bugwatch", @url="/Users/jacobr/code/bugwatch"> | |
| commit = repo.commits.first | |
| # => #<Bugwatch::Commit:0x00000101ca0100 @attributes={:sha=>"d7ecd8b082906df27be6d973a196f32621d5ad1f", :message=>"add the rest of the headers", :diffs=>#<Enumerator: #<Enumerator::Generator:0x00000101ca0218>:each>, :stats=>#<Enumerator: #<Enumerator::Generator:0x00000101ca0290>:each>, :tree=>#<Bugwatch::Tree:0x00000101ca01c8 @grit=#<Grit::Tree "658dc44b7abec270b90121798e111202ac040dd9">>, :author_name=>"Jacob Richardson", :author_email=>"jacobr@groupon.com", :authored_date=>2013-07-23 12:22:49 -0600, :committer_name=>"Jacob Richardson", :committer_email=>"jacobr@groupon.com", :committed_date=>2013-07-23 12:22:49 -0600}> | |
| commit.author_name | |
| # => "Jacob Richardson" | |
| commit.authored_date | |
| # => 2013-07-23 12:22:49 -0600 | |
| commit.files | |
| # => ["Gemfile", "Rakefile", "bugwatch.gemspec", "features/exceptions/commit_finder.feature", "features/step_defin |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Example of chunking an operation that would use too much memory | |
| # Grit is a git repository library | |
| all_commits = -> grit_repo { | |
| Enumerator.new do |y| | |
| total_commit_count = grit_repo.commit_count | |
| # we can safely handle 500 commits in memory | |
| amount = 500 | |
| offset = 0 | |
| ((total_commit_count / amount) + 1).times do |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| urls = ['http://www.google.com', 'http://www.github.com', 'http://www.twitter.com'] | |
| concurrent_url_grabber = Enumerator.new do |y| | |
| urls.map do |url| | |
| Thread.new do | |
| result = http_request(url) | |
| # Need a mutex here for multithreaded VMs | |
| y << result | |
| end | |
| end.each(&:join) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class CommitScore | |
| ScoreValue = Struct.new(:email, :score) | |
| def initialize(commit_values) | |
| @commit_values = commit_values | |
| end | |
| def score | |
| grouped_commits_by_email.map {|(email, commits) score_value(email, commits) } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def fib(n) | |
| if (n < 2) | |
| n | |
| else | |
| fib(n-1) + fib(n-2) | |
| end | |
| end | |
| JRuby 1.7.2 |