Skip to content

Instantly share code, notes, and snippets.

Kaushik Gopal kaushikgopal

Block or report user

Report or block kaushikgopal

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@kaushikgopal
kaushikgopal / dependencies.gradle
Last active Apr 20, 2019
Dependencies Gradle - think of this is as the Android developer's Gemfile
View dependencies.gradle
/**
* Shared file between builds so that they can all use the same dependencies and
* maven repositories.
**/
ext.deps = [:]
def versions = [:]
versions.android_gradle_plugin = '3.3.2'
versions.min_sdk = 21
versions.target_sdk = 28
View morning.fish
function morning
# homebrew
brew update
brew upgrade
brew outdated
brew cleanup
# sdkman
echo "Y" | sdk update
View keybase.md

Keybase proof

I hereby claim:

  • I am kaushikgopal on github.
  • I am kaushikgopal (https://keybase.io/kaushikgopal) on keybase.
  • I have a public key ASDR8pa7M7GjmOJwED8ae0Cmr7Uyuk13EJDW0fs7kG8TlQo

To claim this, I am signing this object:

@kaushikgopal
kaushikgopal / .phoenix.2.js
Last active Oct 7, 2018
Kaushik Gopal's window management tool of choice - phoenix.js
View .phoenix.2.js
// download Phoenix from here https://github.com/kasper/phoenix
"use strict";
Phoenix.set({
openAtLogin: true
});
// -------------------------------------------
// Utility methods
@kaushikgopal
kaushikgopal / git_merge_up_push_up_version.rb
Created Oct 25, 2016
ruby script that makes merging up and pushing changes easy for versions ahead (if you follow semantic versioning)
View git_merge_up_push_up_version.rb
#!/usr/bin/env ruby
require 'rubygems'
require 'set'
require 'highline/import'
# this assumes you follow proper semantic app versioning
# listen to this http://fragmentedpodcast.com/episodes/054/ for an explanation
def confirm(message)
confirmation = ask message + " (y/n)"
@kaushikgopal
kaushikgopal / android_app_release.rb
Created Oct 7, 2016
a ruby release script for android apps
View android_app_release.rb
#!/usr/bin/env ruby
require 'highline/import'
require 'nokogiri'
# i suggest looking at this folder and seeing your app prefix ¯\_(ツ)_/¯
$gradle_properties = File.join(File.dirname(__FILE__), "..", "..", "gradle.properties")
$app_directory = "./<App Parent Directory>"
$app_name_prefix = "<Prefix for final apk e.g. uber-release->"
$splash_screen_location = "co.kaush.instashop/co.kaush.instashop.SplashActivity"
@kaushikgopal
kaushikgopal / DateSubject.java
Created Oct 3, 2016
DateSubject - custom Truth extension subject for comparing Dates
View DateSubject.java
import com.google.common.truth.FailureStrategy;
import com.google.common.truth.Subject;
import com.google.common.truth.SubjectFactory;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import static com.google.common.truth.Truth.assert_;
public class DateSubject
@kaushikgopal
kaushikgopal / Junit4EnclosedTestRunnerExample.java
Created Jul 24, 2016
Sample use of the Enclosed.class test runner
View Junit4EnclosedTestRunnerExample.java
@RunWith(Enclosed.class)
public class WorkflowStateMachineTest {
@RunWith(Parameterized.class)
public static class ParameterizedTests {
@Parameter public ISBatchType mTestBatchType; // first data value (0) is default
@kaushikgopal
kaushikgopal / RxSchedulerHook.java
Created Jul 8, 2016
Lazy man's RxJava Espresso Scheduler Hooks
View RxSchedulerHook.java
public class RxSchedulerHook {
private ISRxSchedulerHook() {
// no instances
}
/**
* this makes sure that when we run the tests all of RxJava
* operates on a single thread (Scheduler.immediate)
*/
@kaushikgopal
kaushikgopal / LogExOnlySubscriber.java
Last active Jun 7, 2018
RxJava log exception only subscriber
View LogExOnlySubscriber.java
public static class LogExOnlySubscriber<T> extends Subscriber<T> {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable ex) {
Timber.e(ex, "Your RX IZ FAILING YO!");
}
You can’t perform that action at this time.