Skip to content
This repository has been archived by the owner on Nov 7, 2023. It is now read-only.

Commit

Permalink
Merge pull request #3 from ushu/tooling-updates
Browse files Browse the repository at this point in the history
Tooling updates
  • Loading branch information
jdee authored Oct 17, 2017
2 parents 5da4c62 + 05a7592 commit 94be54d
Show file tree
Hide file tree
Showing 15 changed files with 324 additions and 81 deletions.
1 change: 1 addition & 0 deletions .rspec
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
--require spec_helper
--format documentation
--color
242 changes: 242 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,242 @@
Naming/HeredocDelimiterNaming:
Enabled: false

Style/MultipleComparison:
Enabled: false

Style/PercentLiteralDelimiters:
Enabled: false

# kind_of? is a good way to check a type
Style/ClassCheck:
EnforcedStyle: kind_of?

Style/FrozenStringLiteralComment:
Enabled: false

# This doesn't work with older versions of Ruby (pre 2.4.0)
Style/SafeNavigation:
Enabled: false

# This doesn't work with older versions of Ruby (pre 2.4.0)
Performance/RegexpMatch:
Enabled: false

# This suggests use of `tr` instead of `gsub`. While this might be more performant,
# these methods are not at all interchangable, and behave very differently. This can
# lead to people making the substitution without considering the differences.
Performance/StringReplacement:
Enabled: false

# .length == 0 is also good, we don't always want .zero?
Style/NumericPredicate:
Enabled: false

# this would cause errors with long lanes
Metrics/BlockLength:
Enabled: false

# this is a bit buggy
Metrics/ModuleLength:
Enabled: false

# certificate_1 is an okay variable name
Naming/VariableNumber:
Enabled: false

# This is used a lot across the fastlane code base for config files
Style/MethodMissing:
Enabled: false

#
# File.chmod(0777, f)
#
# is easier to read than
#
# File.chmod(0o777, f)
#
Style/NumericLiteralPrefix:
Enabled: false

#
# command = (!clean_expired.nil? || !clean_pattern.nil?) ? CLEANUP : LIST
#
# is easier to read than
#
# command = !clean_expired.nil? || !clean_pattern.nil? ? CLEANUP : LIST
#
Style/TernaryParentheses:
Enabled: false

# sometimes it is useful to have those empty methods
Style/EmptyMethod:
Enabled: false

# It's better to be more explicit about the type
Style/BracesAroundHashParameters:
Enabled: false

# specs sometimes have useless assignments, which is fine
Lint/UselessAssignment:
Exclude:
- '**/spec/**/*'

# We could potentially enable the 2 below:
Layout/IndentHash:
Enabled: false

Layout/AlignHash:
Enabled: false

# HoundCI doesn't like this rule
Layout/DotPosition:
Enabled: false

# We allow !! as it's an easy way to convert ot boolean
Style/DoubleNegation:
Enabled: false

# Prevent to replace [] into %i
Style/SymbolArray:
Enabled: false

# We still support Ruby 2.0.0
Layout/IndentHeredoc:
Enabled: false

# This cop would not work fine with rspec
Style/MixinGrouping:
Exclude:
- '**/spec/**/*'

# Sometimes we allow a rescue block that doesn't contain code
Lint/HandleExceptions:
Enabled: false

# Cop supports --auto-correct.
Lint/UnusedBlockArgument:
Enabled: false

Lint/AmbiguousBlockAssociation:
Enabled: false

# Needed for $verbose
Style/GlobalVars:
Enabled: false

# We want to allow class Fastlane::Class
Style/ClassAndModuleChildren:
Enabled: false

# $? Exit
Style/SpecialGlobalVars:
Enabled: false

Metrics/AbcSize:
Enabled: false

Metrics/MethodLength:
Enabled: false

Metrics/CyclomaticComplexity:
Enabled: false

# The %w might be confusing for new users
Style/WordArray:
MinSize: 19

# raise and fail are both okay
Style/SignalException:
Enabled: false

# Better too much 'return' than one missing
Style/RedundantReturn:
Enabled: false

# Having if in the same line might not always be good
Style/IfUnlessModifier:
Enabled: false

# and and or is okay
Style/AndOr:
Enabled: false

# Configuration parameters: CountComments.
Metrics/ClassLength:
Max: 320


# Configuration parameters: AllowURI, URISchemes.
Metrics/LineLength:
Max: 370

# Configuration parameters: CountKeywordArgs.
Metrics/ParameterLists:
Max: 17

Metrics/PerceivedComplexity:
Max: 18

# Sometimes it's easier to read without guards
Style/GuardClause:
Enabled: false

# We allow both " and '
Style/StringLiterals:
Enabled: false

# something = if something_else
# that's confusing
Style/ConditionalAssignment:
Enabled: false

# Better to have too much self than missing a self
Style/RedundantSelf:
Enabled: false

# e.g.
# def self.is_supported?(platform)
# we may never use `platform`
Lint/UnusedMethodArgument:
Enabled: false

# the let(:key) { ... }
Lint/ParenthesesAsGroupedExpression:
Exclude:
- '**/spec/**/*'

# This would reject is_ in front of methods
# We use `is_supported?` everywhere already
Naming/PredicateName:
Enabled: false

# We allow the $
Style/PerlBackrefs:
Enabled: false

# They have not to be snake_case
Naming/FileName:
Exclude:
- '**/Gemfile'
- '**/Rakefile'
- '**/*.gemspec'

# We're not there yet
Style/Documentation:
Enabled: false

# Added after upgrade to 0.38.0
Style/MutableConstant:
Enabled: false

# length > 0 is good
Style/ZeroLengthPredicate:
Enabled: false

# Adds complexity
Style/IfInsideElse:
Enabled: false

# Sometimes we just want to 'collect'
Style/CollectionMethods:
Enabled: false
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.3.1
2.4.2
3 changes: 1 addition & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
language: ruby
rvm:
- 2.0.0
before_install: gem install bundler -v 1.11.2
- 2.4.2
11 changes: 7 additions & 4 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
require "bundler/gem_tasks"
require "rspec/core/rake_task"
require 'bundler/gem_tasks'

RSpec::Core::RakeTask.new(:spec)
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new

task :default => :spec
require 'rubocop/rake_task'
RuboCop::RakeTask.new(:rubocop)

task default: [:spec, :rubocop]
14 changes: 9 additions & 5 deletions branch_io.gemspec
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# coding: utf-8

lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'branch_io/version'
Expand All @@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
spec.authors = ["Aurélien Noce"]
spec.email = ["[email protected]"]

spec.summary = %q{A Client for the Branch.io deep linking public API}
spec.description = %q{This wrapper allows you to create and update deep links on branch.io, using the public REST API.}
spec.summary = 'A Client for the Branch.io deep linking public API'
spec.description = 'This wrapper allows you to create and update deep links on branch.io, using the public REST API.'
spec.homepage = "https://github.com/ushu/branch_io"
spec.license = "MIT"

Expand All @@ -22,7 +22,11 @@ Gem::Specification.new do |spec|
spec.add_dependency "httparty", "~> 0.13"
spec.add_development_dependency "vcr", "~> 3.0"
spec.add_development_dependency "webmock", "~> 2.1"
spec.add_development_dependency "bundler", "~> 1.11"
spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "bundler"
spec.add_development_dependency "rake"
spec.add_development_dependency "rspec", "~> 3.0"
spec.add_development_dependency "rspec_junit_formatter"
spec.add_development_dependency "rspec-simplecov"
spec.add_development_dependency "rubocop", "~> 0.50.0"
spec.add_development_dependency "simplecov"
end
1 change: 0 additions & 1 deletion lib/branch_io.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,4 @@ def self.respond_to?(name)
end
super
end

end
13 changes: 5 additions & 8 deletions lib/branch_io/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
require_relative "client/links"

module BranchIO

class Client
class ErrorMissingBranchKey < StandardError; end

Expand All @@ -18,25 +17,25 @@ class ErrorMissingBranchKey < StandardError; end

# Basic Api client
attr_reader :branch_key, :branch_secret
def initialize(branch_key=ENV["BRANCH_KEY"], branch_secret=ENV["BRANCH_SECRET"])
def initialize(branch_key = ENV["BRANCH_KEY"], branch_secret = ENV["BRANCH_SECRET"])
@branch_key = branch_key
@branch_secret = branch_secret

unless branch_key
raise ErrorMissingBranchKey.new("No Branch Key found: please provided one such key to BranchIO::Client#initialize or by setting the BRANCH_KEY environment variable")
raise ErrorMissingBranchKey, "No Branch Key found: please provided one such key to BranchIO::Client#initialize or by setting the BRANCH_KEY environment variable"
end
end

def get(url)
self.class.get(url, headers: default_headers)
end

def post(url, data={})
def post(url, data = {})
body = data.to_json
self.class.post(url, body: body, headers: default_headers)
end

def put(url, data={})
def put(url, data = {})
body = data.to_json
self.class.put(url, body: body, headers: default_headers)
end
Expand All @@ -45,7 +44,7 @@ def put(url, data={})

def ensure_branch_secret_defined!
unless branch_secret
raise ErrorMissingBranchKey.new("No Branch Secret found: please provided one such key to BranchIO::Client#initialize or by setting the BRANCH_SECRET environment variable")
raise ErrorMissingBranchKey, "No Branch Secret found: please provided one such key to BranchIO::Client#initialize or by setting the BRANCH_SECRET environment variable"
end
end

Expand All @@ -55,7 +54,5 @@ def default_headers
"Accept" => "application/json"
}
end

end

end
Loading

0 comments on commit 94be54d

Please sign in to comment.