diff --git a/.ruby-style.yml b/.ruby-style.yml
new file mode 100644
index 0000000..b61a3e2
--- /dev/null
+++ b/.ruby-style.yml
@@ -0,0 +1,1063 @@
+AllCops:
+ Include:
+ - "**/*.gemspec"
+ - "**/*.podspec"
+ - "**/*.jbuilder"
+ - "**/*.rake"
+ - "**/*.opal"
+ - "**/Gemfile"
+ - "**/Rakefile"
+ - "**/Capfile"
+ - "**/Guardfile"
+ - "**/Podfile"
+ - "**/Thorfile"
+ - "**/Vagrantfile"
+ - "**/Berksfile"
+ - "**/Cheffile"
+ - "**/Vagabondfile"
+ Exclude:
+ - "vendor/**/*"
+ - "db/schema.rb"
+ RunRailsCops: false
+ DisplayCopNames: false
+ StyleGuideCopsOnly: false
+Style/AccessModifierIndentation:
+ Description: Check indentation of private/protected visibility modifiers.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected
+ Enabled: true
+ EnforcedStyle: indent
+ SupportedStyles:
+ - outdent
+ - indent
+Style/AlignHash:
+ Description: Align the elements of a hash literal if they span more than one line.
+ Enabled: true
+ EnforcedHashRocketStyle: key
+ EnforcedColonStyle: key
+ EnforcedLastArgumentHashStyle: always_inspect
+ SupportedLastArgumentHashStyles:
+ - always_inspect
+ - always_ignore
+ - ignore_implicit
+ - ignore_explicit
+Style/AlignParameters:
+ Description: Align the parameters of a method call if they span more than one line.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-double-indent
+ Enabled: true
+ EnforcedStyle: with_first_parameter
+ SupportedStyles:
+ - with_first_parameter
+ - with_fixed_indentation
+Style/AndOr:
+ Description: Use &&/|| instead of and/or.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-and-or-or
+ Enabled: true
+ EnforcedStyle: always
+ SupportedStyles:
+ - always
+ - conditionals
+Style/BarePercentLiterals:
+ Description: Checks if usage of %() or %Q() matches configuration.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-q-shorthand
+ Enabled: true
+ EnforcedStyle: bare_percent
+ SupportedStyles:
+ - percent_q
+ - bare_percent
+Style/BracesAroundHashParameters:
+ Description: Enforce braces style around hash parameters.
+ Enabled: true
+ EnforcedStyle: no_braces
+ SupportedStyles:
+ - braces
+ - no_braces
+ - context_dependent
+Style/CaseIndentation:
+ Description: Indentation of when in a case/when/[else/]end.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#indent-when-to-case
+ Enabled: true
+ IndentWhenRelativeTo: case
+ SupportedStyles:
+ - case
+ - end
+ IndentOneStep: false
+Style/ClassAndModuleChildren:
+ Description: Checks style of children classes and modules.
+ Enabled: false
+ EnforcedStyle: nested
+ SupportedStyles:
+ - nested
+ - compact
+Style/ClassCheck:
+ Description: Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.
+ Enabled: true
+ EnforcedStyle: is_a?
+ SupportedStyles:
+ - is_a?
+ - kind_of?
+Style/CollectionMethods:
+ Description: Preferred collection methods.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#map-find-select-reduce-size
+ Enabled: true
+ PreferredMethods:
+ collect: map
+ collect!: map!
+ find: detect
+ find_all: select
+ reduce: inject
+Style/CommentAnnotation:
+ Description: Checks formatting of special comments (TODO, FIXME, OPTIMIZE, HACK,
+ REVIEW).
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#annotate-keywords
+ Enabled: false
+ Keywords:
+ - TODO
+ - FIXME
+ - OPTIMIZE
+ - HACK
+ - REVIEW
+Style/DotPosition:
+ Description: Checks the position of the dot in multi-line method calls.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains
+ Enabled: true
+ EnforcedStyle: trailing
+ SupportedStyles:
+ - leading
+ - trailing
+Style/EmptyLineBetweenDefs:
+ Description: Use empty lines between defs.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#empty-lines-between-methods
+ Enabled: true
+ AllowAdjacentOneLineDefs: false
+Style/EmptyLinesAroundBlockBody:
+ Description: Keeps track of empty lines around block bodies.
+ Enabled: true
+ EnforcedStyle: no_empty_lines
+ SupportedStyles:
+ - empty_lines
+ - no_empty_lines
+Style/EmptyLinesAroundClassBody:
+ Description: Keeps track of empty lines around class bodies.
+ Enabled: true
+ EnforcedStyle: no_empty_lines
+ SupportedStyles:
+ - empty_lines
+ - no_empty_lines
+Style/EmptyLinesAroundModuleBody:
+ Description: Keeps track of empty lines around module bodies.
+ Enabled: true
+ EnforcedStyle: no_empty_lines
+ SupportedStyles:
+ - empty_lines
+ - no_empty_lines
+Style/Encoding:
+ Description: Use UTF-8 as the source file encoding.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#utf-8
+ Enabled: false
+ EnforcedStyle: always
+ SupportedStyles:
+ - when_needed
+ - always
+Style/FileName:
+ Description: Use snake_case for source file names.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#snake-case-files
+ Enabled: false
+ Exclude: []
+Style/FirstParameterIndentation:
+ Description: Checks the indentation of the first parameter in a method call.
+ Enabled: true
+ EnforcedStyle: special_for_inner_method_call_in_parentheses
+ SupportedStyles:
+ - consistent
+ - special_for_inner_method_call
+ - special_for_inner_method_call_in_parentheses
+Style/For:
+ Description: Checks use of for or each in multiline loops.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-for-loops
+ Enabled: true
+ EnforcedStyle: each
+ SupportedStyles:
+ - for
+ - each
+Style/FormatString:
+ Description: Enforce the use of Kernel#sprintf, Kernel#format or String#%.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#sprintf
+ Enabled: false
+ EnforcedStyle: format
+ SupportedStyles:
+ - format
+ - sprintf
+ - percent
+Style/GlobalVars:
+ Description: Do not introduce global variables.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#instance-vars
+ Enabled: false
+ AllowedVariables: []
+Style/GuardClause:
+ Description: Check for conditionals that can be replaced with guard clauses
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals
+ Enabled: false
+ MinBodyLength: 1
+Style/HashSyntax:
+ Description: 'Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax { :a =>
+ 1, :b => 2 }.'
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#hash-literals
+ Enabled: true
+ EnforcedStyle: ruby19
+ SupportedStyles:
+ - ruby19
+ - hash_rockets
+Style/IfUnlessModifier:
+ Description: Favor modifier if/unless usage when you have a single-line body.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier
+ Enabled: false
+ MaxLineLength: 80
+Style/IndentationWidth:
+ Description: Use 2 spaces for indentation.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-indentation
+ Enabled: true
+ Width: 2
+Style/IndentHash:
+ Description: Checks the indentation of the first key in a hash literal.
+ Enabled: true
+ EnforcedStyle: special_inside_parentheses
+ SupportedStyles:
+ - special_inside_parentheses
+ - consistent
+Style/LambdaCall:
+ Description: Use lambda.call(...) instead of lambda.(...).
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#proc-call
+ Enabled: false
+ EnforcedStyle: call
+ SupportedStyles:
+ - call
+ - braces
+Style/Next:
+ Description: Use `next` to skip iteration instead of a condition at the end.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals
+ Enabled: false
+ EnforcedStyle: skip_modifier_ifs
+ MinBodyLength: 3
+ SupportedStyles:
+ - skip_modifier_ifs
+ - always
+Style/NonNilCheck:
+ Description: Checks for redundant nil checks.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-non-nil-checks
+ Enabled: true
+ IncludeSemanticChanges: false
+Style/MethodDefParentheses:
+ Description: Checks if the method definitions have or don't have parentheses.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#method-parens
+ Enabled: true
+ EnforcedStyle: require_parentheses
+ SupportedStyles:
+ - require_parentheses
+ - require_no_parentheses
+Style/MethodName:
+ Description: Use the configured style when naming methods.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars
+ Enabled: true
+ EnforcedStyle: snake_case
+ SupportedStyles:
+ - snake_case
+ - camelCase
+Style/MultilineOperationIndentation:
+ Description: Checks indentation of binary operations that span more than one line.
+ Enabled: true
+ EnforcedStyle: aligned
+ SupportedStyles:
+ - aligned
+ - indented
+Style/NumericLiterals:
+ Description: Add underscores to large numeric literals to improve their readability.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics
+ Enabled: false
+ MinDigits: 5
+Style/ParenthesesAroundCondition:
+ Description: Don't use parentheses around the condition of an if/unless/while.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-parens-if
+ Enabled: true
+ AllowSafeAssignment: true
+Style/PercentLiteralDelimiters:
+ Description: Use `%`-literal delimiters consistently
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-literal-braces
+ Enabled: false
+ PreferredDelimiters:
+ "%": "()"
+ "%i": "()"
+ "%q": "()"
+ "%Q": "()"
+ "%r": "{}"
+ "%s": "()"
+ "%w": "()"
+ "%W": "()"
+ "%x": "()"
+Style/PercentQLiterals:
+ Description: Checks if uses of %Q/%q match the configured preference.
+ Enabled: true
+ EnforcedStyle: lower_case_q
+ SupportedStyles:
+ - lower_case_q
+ - upper_case_q
+Style/PredicateName:
+ Description: Check the names of predicate methods.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark
+ Enabled: true
+ NamePrefix:
+ - is_
+ - has_
+ - have_
+ NamePrefixBlacklist:
+ - is_
+Style/RaiseArgs:
+ Description: Checks the arguments passed to raise/fail.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#exception-class-messages
+ Enabled: false
+ EnforcedStyle: exploded
+ SupportedStyles:
+ - compact
+ - exploded
+Style/RedundantReturn:
+ Description: Don't use return where it's not required.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-explicit-return
+ Enabled: true
+ AllowMultipleReturnValues: false
+Style/RegexpLiteral:
+ Description: Use %r for regular expressions matching more than `MaxSlashes` '/'
+ characters. Use %r only for regular expressions matching more than `MaxSlashes`
+ '/' character.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-r
+ Enabled: false
+ MaxSlashes: 1
+Style/Semicolon:
+ Description: Don't use semicolons to terminate expressions.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-semicolon
+ Enabled: true
+ AllowAsExpressionSeparator: false
+Style/SignalException:
+ Description: Checks for proper usage of fail and raise.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#fail-method
+ Enabled: false
+ EnforcedStyle: semantic
+ SupportedStyles:
+ - only_raise
+ - only_fail
+ - semantic
+Style/SingleLineBlockParams:
+ Description: Enforces the names of some block params.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#reduce-blocks
+ Enabled: false
+ Methods:
+ - reduce:
+ - a
+ - e
+ - inject:
+ - a
+ - e
+Style/SingleLineMethods:
+ Description: Avoid single-line methods.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-single-line-methods
+ Enabled: false
+ AllowIfMethodIsEmpty: true
+Style/StringLiterals:
+ Description: Checks if uses of quotes match the configured preference.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-string-literals
+ Enabled: false
+ EnforcedStyle: double_quotes
+ SupportedStyles:
+ - single_quotes
+ - double_quotes
+Style/StringLiteralsInInterpolation:
+ Description: Checks if uses of quotes inside expressions in interpolated strings
+ match the configured preference.
+ Enabled: false
+ EnforcedStyle: single_quotes
+ SupportedStyles:
+ - single_quotes
+ - double_quotes
+Style/SpaceAroundBlockParameters:
+ Description: Checks the spacing inside and after block parameters pipes.
+ Enabled: true
+ EnforcedStyleInsidePipes: no_space
+ SupportedStyles:
+ - space
+ - no_space
+Style/SpaceAroundEqualsInParameterDefault:
+ Description: Checks that the equals signs in parameter default assignments have
+ or don't have surrounding space depending on configuration.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-around-equals
+ Enabled: true
+ EnforcedStyle: space
+ SupportedStyles:
+ - space
+ - no_space
+Style/SpaceBeforeBlockBraces:
+ Description: Checks that the left block brace has or doesn't have space before it.
+ Enabled: true
+ EnforcedStyle: space
+ SupportedStyles:
+ - space
+ - no_space
+Style/SpaceInsideBlockBraces:
+ Description: Checks that block braces have or don't have surrounding space. For
+ blocks taking parameters, checks that the left brace has or doesn't have trailing
+ space.
+ Enabled: true
+ EnforcedStyle: space
+ SupportedStyles:
+ - space
+ - no_space
+ EnforcedStyleForEmptyBraces: no_space
+ SpaceBeforeBlockParameters: true
+Style/SpaceInsideHashLiteralBraces:
+ Description: Use spaces inside hash literal braces - or don't.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
+ Enabled: true
+ EnforcedStyle: space
+ EnforcedStyleForEmptyBraces: no_space
+ SupportedStyles:
+ - space
+ - no_space
+Style/SymbolProc:
+ Description: Use symbols as procs instead of blocks when possible.
+ Enabled: true
+ IgnoredMethods:
+ - respond_to
+Style/TrailingBlankLines:
+ Description: Checks trailing blank lines and final newline.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#newline-eof
+ Enabled: true
+ EnforcedStyle: final_newline
+ SupportedStyles:
+ - final_newline
+ - final_blank_line
+Style/TrailingComma:
+ Description: Checks for trailing comma in parameter lists and literals.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas
+ Enabled: false
+ EnforcedStyleForMultiline: no_comma
+ SupportedStyles:
+ - comma
+ - no_comma
+Style/TrivialAccessors:
+ Description: Prefer attr_* methods to trivial readers/writers.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#attr_family
+ Enabled: false
+ ExactNameMatch: false
+ AllowPredicates: false
+ AllowDSLWriters: false
+ Whitelist:
+ - to_ary
+ - to_a
+ - to_c
+ - to_enum
+ - to_h
+ - to_hash
+ - to_i
+ - to_int
+ - to_io
+ - to_open
+ - to_path
+ - to_proc
+ - to_r
+ - to_regexp
+ - to_str
+ - to_s
+ - to_sym
+Style/VariableName:
+ Description: Use the configured style when naming variables.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars
+ Enabled: true
+ EnforcedStyle: snake_case
+ SupportedStyles:
+ - snake_case
+ - camelCase
+Style/WhileUntilModifier:
+ Description: Favor modifier while/until usage when you have a single-line body.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier
+ Enabled: false
+ MaxLineLength: 80
+Style/WordArray:
+ Description: Use %w or %W for arrays of words.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-w
+ Enabled: false
+ MinSize: 0
+ WordRegex: !ruby/regexp /\A[\p{Word}]+\z/
+Metrics/AbcSize:
+ Description: A calculated magnitude based on number of assignments, branches, and
+ conditions.
+ Enabled: true
+ Max: 15
+Metrics/BlockNesting:
+ Description: Avoid excessive block nesting
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count
+ Enabled: true
+ Max: 3
+Metrics/ClassLength:
+ Description: Avoid classes longer than 100 lines of code.
+ Enabled: false
+ CountComments: false
+ Max: 100
+Metrics/CyclomaticComplexity:
+ Description: A complexity metric that is strongly correlated to the number of test
+ cases needed to validate a method.
+ Enabled: true
+ Max: 6
+Metrics/LineLength:
+ Description: Limit lines to 80 characters.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#80-character-limits
+ Enabled: true
+ Max: 80
+ AllowURI: true
+ URISchemes:
+ - http
+ - https
+Metrics/MethodLength:
+ Description: Avoid methods longer than 10 lines of code.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#short-methods
+ Enabled: true
+ CountComments: false
+ Max: 25
+Metrics/ParameterLists:
+ Description: Avoid parameter lists longer than three or four parameters.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#too-many-params
+ Enabled: true
+ Max: 5
+ CountKeywordArgs: true
+Metrics/PerceivedComplexity:
+ Description: A complexity metric geared towards measuring complexity for a human
+ reader.
+ Enabled: true
+ Max: 7
+Lint/AssignmentInCondition:
+ Description: Don't use assignment in conditions.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition
+ Enabled: false
+ AllowSafeAssignment: true
+Lint/EndAlignment:
+ Description: Align ends correctly.
+ Enabled: true
+ AlignWith: keyword
+ SupportedStyles:
+ - keyword
+ - variable
+Lint/DefEndAlignment:
+ Description: Align ends corresponding to defs correctly.
+ Enabled: true
+ AlignWith: start_of_line
+ SupportedStyles:
+ - start_of_line
+ - def
+Rails/ActionFilter:
+ Description: Enforces consistent use of action filter methods.
+ Enabled: false
+ EnforcedStyle: action
+ SupportedStyles:
+ - action
+ - filter
+ Include:
+ - app/controllers/**/*.rb
+Rails/DefaultScope:
+ Description: Checks if the argument passed to default_scope is a block.
+ Enabled: true
+ Include:
+ - app/models/**/*.rb
+Rails/HasAndBelongsToMany:
+ Description: Prefer has_many :through to has_and_belongs_to_many.
+ Enabled: true
+ Include:
+ - app/models/**/*.rb
+Rails/Output:
+ Description: Checks for calls to puts, print, etc.
+ Enabled: true
+ Include:
+ - app/**/*.rb
+ - config/**/*.rb
+ - db/**/*.rb
+ - lib/**/*.rb
+Rails/ReadWriteAttribute:
+ Description: Checks for read_attribute(:attr) and write_attribute(:attr, val).
+ Enabled: true
+ Include:
+ - app/models/**/*.rb
+Rails/ScopeArgs:
+ Description: Checks the arguments of ActiveRecord scopes.
+ Enabled: true
+ Include:
+ - app/models/**/*.rb
+Rails/Validation:
+ Description: Use validates :attribute, hash of validations.
+ Enabled: true
+ Include:
+ - app/models/**/*.rb
+Style/InlineComment:
+ Description: Avoid inline comments.
+ Enabled: false
+Style/MethodCalledOnDoEndBlock:
+ Description: Avoid chaining a method call on a do...end block.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#single-line-blocks
+ Enabled: false
+Style/SymbolArray:
+ Description: Use %i or %I for arrays of symbols.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-i
+ Enabled: false
+Style/ExtraSpacing:
+ Description: Do not use unnecessary spacing.
+ Enabled: true
+Style/AccessorMethodName:
+ Description: Check the naming of accessor methods for get_/set_.
+ Enabled: false
+Style/Alias:
+ Description: Use alias_method instead of alias.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#alias-method
+ Enabled: false
+Style/AlignArray:
+ Description: Align the elements of an array literal if they span more than one line.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays
+ Enabled: true
+Style/ArrayJoin:
+ Description: Use Array#join instead of Array#*.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#array-join
+ Enabled: false
+Style/AsciiComments:
+ Description: Use only ascii symbols in comments.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#english-comments
+ Enabled: false
+Style/AsciiIdentifiers:
+ Description: Use only ascii symbols in identifiers.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#english-identifiers
+ Enabled: false
+Style/Attr:
+ Description: Checks for uses of Module#attr.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#attr
+ Enabled: false
+Style/BeginBlock:
+ Description: Avoid the use of BEGIN blocks.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-BEGIN-blocks
+ Enabled: true
+Style/BlockComments:
+ Description: Do not use block comments.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-block-comments
+ Enabled: true
+Style/BlockEndNewline:
+ Description: Put end statement of multiline block on its own line.
+ Enabled: true
+Style/Blocks:
+ Description: Avoid using {...} for multi-line blocks (multiline chaining is always
+ ugly). Prefer {...} over do...end for single-line blocks.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#single-line-blocks
+ Enabled: true
+Style/CaseEquality:
+ Description: Avoid explicit use of the case equality operator(===).
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-case-equality
+ Enabled: false
+Style/CharacterLiteral:
+ Description: Checks for uses of character literals.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-character-literals
+ Enabled: false
+Style/ClassAndModuleCamelCase:
+ Description: Use CamelCase for classes and modules.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#camelcase-classes
+ Enabled: true
+Style/ClassMethods:
+ Description: Use self when defining module/class methods.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#def-self-singletons
+ Enabled: true
+Style/ClassVars:
+ Description: Avoid the use of class variables.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-class-vars
+ Enabled: false
+Style/ColonMethodCall:
+ Description: 'Do not use :: for method call.'
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#double-colons
+ Enabled: false
+Style/CommentIndentation:
+ Description: Indentation of comments.
+ Enabled: true
+Style/ConstantName:
+ Description: Constants should use SCREAMING_SNAKE_CASE.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#screaming-snake-case
+ Enabled: true
+Style/DefWithParentheses:
+ Description: Use def with parentheses when there are arguments.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#method-parens
+ Enabled: true
+Style/DeprecatedHashMethods:
+ Description: Checks for use of deprecated Hash methods.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#hash-key
+ Enabled: true
+Style/Documentation:
+ Description: Document classes and non-namespace modules.
+ Enabled: true
+Style/DoubleNegation:
+ Description: Checks for uses of double negation (!!).
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-bang-bang
+ Enabled: false
+Style/EachWithObject:
+ Description: Prefer `each_with_object` over `inject` or `reduce`.
+ Enabled: false
+Style/ElseAlignment:
+ Description: Align elses and elsifs correctly.
+ Enabled: true
+Style/EmptyElse:
+ Description: Avoid empty else-clauses.
+ Enabled: true
+Style/EmptyLines:
+ Description: Don't use several empty lines in a row.
+ Enabled: true
+Style/EmptyLinesAroundAccessModifier:
+ Description: Keep blank lines around access modifiers.
+ Enabled: true
+Style/EmptyLinesAroundMethodBody:
+ Description: Keeps track of empty lines around method bodies.
+ Enabled: true
+Style/EmptyLiteral:
+ Description: Prefer literals to Array.new/Hash.new/String.new.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#literal-array-hash
+ Enabled: false
+Style/EndBlock:
+ Description: Avoid the use of END blocks.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-END-blocks
+ Enabled: true
+Style/EndOfLine:
+ Description: Use Unix-style line endings.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#crlf
+ Enabled: true
+Style/EvenOdd:
+ Description: Favor the use of Fixnum#even? && Fixnum#odd?
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#predicate-methods
+ Enabled: false
+Style/FlipFlop:
+ Description: Checks for flip flops
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-flip-flops
+ Enabled: false
+Style/IfWithSemicolon:
+ Description: Do not use if x; .... Use the ternary operator instead.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs
+ Enabled: false
+Style/IndentationConsistency:
+ Description: Keep indentation straight.
+ Enabled: true
+Style/IndentArray:
+ Description: Checks the indentation of the first element in an array literal.
+ Enabled: true
+Style/InfiniteLoop:
+ Description: Use Kernel#loop for infinite loops.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#infinite-loop
+ Enabled: true
+Style/Lambda:
+ Description: Use the new lambda literal syntax for single-line blocks.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#lambda-multi-line
+ Enabled: false
+Style/LeadingCommentSpace:
+ Description: Comments should start with a space.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#hash-space
+ Enabled: true
+Style/LineEndConcatenation:
+ Description: Use \ instead of + or << to concatenate two string literals at line
+ end.
+ Enabled: false
+Style/MethodCallParentheses:
+ Description: Do not use parentheses for method calls with no arguments.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-args-no-parens
+ Enabled: true
+Style/ModuleFunction:
+ Description: Checks for usage of `extend self` in modules.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#module-function
+ Enabled: false
+Style/MultilineBlockChain:
+ Description: Avoid multi-line chains of blocks.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#single-line-blocks
+ Enabled: true
+Style/MultilineBlockLayout:
+ Description: Ensures newlines after multiline block do statements.
+ Enabled: true
+Style/MultilineIfThen:
+ Description: Do not use then for multi-line if/unless.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-then
+ Enabled: true
+Style/MultilineTernaryOperator:
+ Description: 'Avoid multi-line ?: (the ternary operator); use if/unless instead.'
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-multiline-ternary
+ Enabled: true
+Style/NegatedIf:
+ Description: Favor unless over if for negative conditions (or control flow or).
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#unless-for-negatives
+ Enabled: false
+Style/NegatedWhile:
+ Description: Favor until over while for negative conditions.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#until-for-negatives
+ Enabled: false
+Style/NestedTernaryOperator:
+ Description: Use one expression per branch in a ternary operator.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-ternary
+ Enabled: true
+Style/NilComparison:
+ Description: Prefer x.nil? to x == nil.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#predicate-methods
+ Enabled: false
+Style/Not:
+ Description: Use ! instead of not.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#bang-not-not
+ Enabled: false
+Style/OneLineConditional:
+ Description: Favor the ternary operator(?:) over if/then/else/end constructs.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#ternary-operator
+ Enabled: false
+Style/OpMethod:
+ Description: When defining binary operators, name the argument other.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#other-arg
+ Enabled: false
+Style/PerlBackrefs:
+ Description: Avoid Perl-style regex back references.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers
+ Enabled: false
+Style/Proc:
+ Description: Use proc instead of Proc.new.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#proc
+ Enabled: false
+Style/RedundantBegin:
+ Description: Don't use begin blocks when they are not needed.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#begin-implicit
+ Enabled: true
+Style/RedundantException:
+ Description: Checks for an obsolete RuntimeException argument in raise/fail.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-explicit-runtimeerror
+ Enabled: true
+Style/RedundantSelf:
+ Description: Don't use self where it's not needed.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-self-unless-required
+ Enabled: true
+Style/RescueModifier:
+ Description: Avoid using rescue in its modifier form.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-rescue-modifiers
+ Enabled: true
+Style/SelfAssignment:
+ Description: Checks for places where self-assignment shorthand should have been
+ used.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#self-assignment
+ Enabled: false
+Style/SingleSpaceBeforeFirstArg:
+ Description: Checks that exactly one space is used between a method name and the
+ first argument for method calls without parentheses.
+ Enabled: true
+Style/SpaceAfterColon:
+ Description: Use spaces after colons.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
+ Enabled: true
+Style/SpaceAfterComma:
+ Description: Use spaces after commas.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
+ Enabled: true
+Style/SpaceAfterControlKeyword:
+ Description: Use spaces after if/elsif/unless/while/until/case/when.
+ Enabled: true
+Style/SpaceAfterMethodName:
+ Description: Do not put a space between a method name and the opening parenthesis
+ in a method definition.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#parens-no-spaces
+ Enabled: true
+Style/SpaceAfterNot:
+ Description: Tracks redundant space after the ! operator.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-space-bang
+ Enabled: true
+Style/SpaceAfterSemicolon:
+ Description: Use spaces after semicolons.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
+ Enabled: true
+Style/SpaceBeforeComma:
+ Description: No spaces before commas.
+ Enabled: true
+Style/SpaceBeforeComment:
+ Description: Checks for missing space between code and a comment on the same line.
+ Enabled: true
+Style/SpaceBeforeSemicolon:
+ Description: No spaces before semicolons.
+ Enabled: true
+Style/SpaceAroundOperators:
+ Description: Use spaces around operators.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
+ Enabled: true
+Style/SpaceBeforeModifierKeyword:
+ Description: Put a space before the modifier keyword.
+ Enabled: true
+Style/SpaceInsideBrackets:
+ Description: No spaces after [ or before ].
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-spaces-braces
+ Enabled: true
+Style/SpaceInsideParens:
+ Description: No spaces after ( or before ).
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-spaces-braces
+ Enabled: true
+Style/SpaceInsideRangeLiteral:
+ Description: No spaces inside range literals.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-space-inside-range-literals
+ Enabled: true
+Style/SpecialGlobalVars:
+ Description: Avoid Perl-style global variables.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms
+ Enabled: false
+Style/StructInheritance:
+ Description: Checks for inheritance from Struct.new.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-extend-struct-new
+ Enabled: true
+Style/Tab:
+ Description: No hard tabs.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-indentation
+ Enabled: true
+Style/TrailingWhitespace:
+ Description: Avoid trailing whitespace.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-trailing-whitespace
+ Enabled: true
+Style/UnlessElse:
+ Description: Do not use unless with else. Rewrite these with the positive case first.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-else-with-unless
+ Enabled: true
+Style/UnneededCapitalW:
+ Description: Checks for %W when interpolation is not needed.
+ Enabled: true
+Style/UnneededPercentQ:
+ Description: Checks for %q/%Q when single quotes or double quotes would do.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-q
+ Enabled: true
+Style/UnneededPercentX:
+ Description: Checks for %x when `` would do.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-x
+ Enabled: true
+Style/VariableInterpolation:
+ Description: Don't interpolate global, instance and class variables directly in
+ strings.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#curlies-interpolate
+ Enabled: false
+Style/WhenThen:
+ Description: Use when x then ... for one-line cases.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#one-line-cases
+ Enabled: false
+Style/WhileUntilDo:
+ Description: Checks for redundant do after while or until.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-multiline-while-do
+ Enabled: true
+Lint/AmbiguousOperator:
+ Description: Checks for ambiguous operators in the first argument of a method invocation
+ without parentheses.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#parens-as-args
+ Enabled: false
+Lint/AmbiguousRegexpLiteral:
+ Description: Checks for ambiguous regexp literals in the first argument of a method
+ invocation without parenthesis.
+ Enabled: false
+Lint/BlockAlignment:
+ Description: Align block ends correctly.
+ Enabled: true
+Lint/ConditionPosition:
+ Description: Checks for condition placed in a confusing position relative to the
+ keyword.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#same-line-condition
+ Enabled: false
+Lint/Debugger:
+ Description: Check for debugger calls.
+ Enabled: true
+Lint/DeprecatedClassMethods:
+ Description: Check for deprecated class method calls.
+ Enabled: false
+Lint/DuplicateMethods:
+ Description: Check for duplicate methods calls.
+ Enabled: true
+Lint/ElseLayout:
+ Description: Check for odd code arrangement in an else block.
+ Enabled: false
+Lint/EmptyEnsure:
+ Description: Checks for empty ensure block.
+ Enabled: true
+Lint/EmptyInterpolation:
+ Description: Checks for empty string interpolation.
+ Enabled: true
+Lint/EndInMethod:
+ Description: END blocks should not be placed inside method definitions.
+ Enabled: true
+Lint/EnsureReturn:
+ Description: Do not use return in an ensure block.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-return-ensure
+ Enabled: true
+Lint/Eval:
+ Description: The use of eval represents a serious security risk.
+ Enabled: true
+Lint/HandleExceptions:
+ Description: Don't suppress exception.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions
+ Enabled: false
+Lint/InvalidCharacterLiteral:
+ Description: Checks for invalid character literals with a non-escaped whitespace
+ character.
+ Enabled: false
+Lint/LiteralInCondition:
+ Description: Checks of literals used in conditions.
+ Enabled: false
+Lint/LiteralInInterpolation:
+ Description: Checks for literals used in interpolation.
+ Enabled: false
+Lint/Loop:
+ Description: Use Kernel#loop with break rather than begin/end/until or begin/end/while
+ for post-loop tests.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#loop-with-break
+ Enabled: false
+Lint/ParenthesesAsGroupedExpression:
+ Description: Checks for method calls with a space before the opening parenthesis.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#parens-no-spaces
+ Enabled: false
+Lint/RequireParentheses:
+ Description: Use parentheses in the method call to avoid confusion about precedence.
+ Enabled: false
+Lint/RescueException:
+ Description: Avoid rescuing the Exception class.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-blind-rescues
+ Enabled: true
+Lint/ShadowingOuterLocalVariable:
+ Description: Do not use the same name as outer local variable for block arguments
+ or block local variables.
+ Enabled: true
+Lint/SpaceBeforeFirstArg:
+ Description: Put a space between a method name and the first argument in a method
+ call without parentheses.
+ Enabled: true
+Lint/StringConversionInInterpolation:
+ Description: Checks for Object#to_s usage in string interpolation.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-to-s
+ Enabled: true
+Lint/UnderscorePrefixedVariableName:
+ Description: Do not use prefix `_` for a variable that is used.
+ Enabled: false
+Lint/UnusedBlockArgument:
+ Description: Checks for unused block arguments.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars
+ Enabled: true
+Lint/UnusedMethodArgument:
+ Description: Checks for unused method arguments.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars
+ Enabled: true
+Lint/UnreachableCode:
+ Description: Unreachable code.
+ Enabled: true
+Lint/UselessAccessModifier:
+ Description: Checks for useless access modifiers.
+ Enabled: true
+Lint/UselessAssignment:
+ Description: Checks for useless assignment to a local variable.
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars
+ Enabled: true
+Lint/UselessComparison:
+ Description: Checks for comparison of something with itself.
+ Enabled: true
+Lint/UselessElseWithoutRescue:
+ Description: Checks for useless `else` in `begin..end` without `rescue`.
+ Enabled: true
+Lint/UselessSetterCall:
+ Description: Checks for useless setter call to a local variable.
+ Enabled: true
+Lint/Void:
+ Description: Possible use of operator/literal/variable in void context.
+ Enabled: false
+Rails/Delegate:
+ Description: Prefer delegate method for delegations.
+ Enabled: false
\ No newline at end of file
diff --git a/Gemfile b/Gemfile
index a773947..a46d1dd 100644
--- a/Gemfile
+++ b/Gemfile
@@ -3,12 +3,6 @@ ruby '2.2.1'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.1'
-# Use SCSS for stylesheets
-gem 'sass-rails', '~> 5.0'
-# Use Uglifier as compressor for JavaScript assets
-gem 'uglifier', '>= 1.3.0'
-
-gem 'haml'
gem 'paperclip', :git => "https://github.com/thoughtbot/paperclip.git"
gem 'aws-sdk', '< 2.0'
@@ -25,35 +19,48 @@ gem 'sdoc', '~> 0.4.0', group: :doc
gem "devise"
# allows for user sessions in JSON APIs
-gem 'simple_token_authentication', '~> 1.0' # see semver.org
+gem 'simple_token_authentication', '~> 1.0'
-# allows for hellza sexiness
+# ASSETS
+# Use SCSS for stylesheets
+gem 'sass-rails', '~> 5.0'
+# Use Uglifier as compressor for JavaScript assets
+gem 'uglifier', '>= 1.3.0'
# FIXME -- remove
gem 'jquery-rails'
+gem 'haml'
+# TODO: Configure Bower
+# gem 'bower-rails'
-gem 'rack-cache'
-# Use Unicorn as the app server
-# gem 'unicorn'
+# PRODUCTION AND PERF TOOLS:
+# Page Caching
+gem 'rack-cache'
+# Use Puma as the app server
+# TODO: Test before enabling! (See Heroku docs)
+# gem 'puma'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
-group :development, :test do
- # Cucumber, testing and coverage
+group :test do
+ # Cucumber and rspec tools
gem 'cucumber-rails', :require => false
gem 'rspec-rails', '>= 3.1'
- gem 'simplecov'
gem "factory_girl_rails"
gem 'faker'
gem "shoulda-matchers"
+
+ # CODE COVERAGE
+ gem 'simplecov'
gem 'coveralls', require: false
+ gem "codeclimate-test-reporter", require: nil
+
gem "database_cleaner"
end
# Development Only Gems. Speed up loading in Travis.
group :development do
- # Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
# Use sqlite3 as the database for Active Record
@@ -63,12 +70,31 @@ group :development do
gem 'spring'
# Access an IRB console on exception pages or by using <%= console %> in views
- gem 'web-console', '~> 2.0'
+ # gem 'web-console', '~> 2.0'
+ # Custtom Error Pages in Dev Only
+ gem "better_errors"
+ gem "binding_of_caller"
+
+ # Disable logging Assets in the Server log
+ gem 'quiet_assets'
+
+ # Code Linting
+ gem 'rubocop', require: false
+
+ # Better Debugging From Rails Console (See Readme)
+ gem 'awesome_print'
+
+ # Code Quality Locally
+ gem 'metric_fu'
+
# Security Analysis
gem 'brakeman'
# DB Query Analysis / Optimizations
gem "bullet"
+end
+group :staging do
+ # Heh, we need a real staging enviornment...
end
group :production do
diff --git a/Gemfile.lock b/Gemfile.lock
index d52e1be..9ee2fff 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,6 +1,6 @@
GIT
remote: https://github.com/thoughtbot/paperclip.git
- revision: cdbc05eb508ad18a1fff746d2c4fa58c177ee837
+ revision: 55ce56026fe38ab88e59eb5709c6350e18dd33cd
specs:
paperclip (4.2.1)
activemodel (>= 3.0.0)
@@ -11,6 +11,7 @@ GIT
GEM
remote: https://rubygems.org/
specs:
+ abstract_type (0.0.7)
actionmailer (4.2.1)
actionpack (= 4.2.1)
actionview (= 4.2.1)
@@ -46,13 +47,26 @@ GEM
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
+ adamantium (0.2.0)
+ ice_nine (~> 0.11.0)
+ memoizable (~> 0.4.0)
+ addressable (2.3.8)
arel (6.0.0)
+ arrayfields (4.9.2)
+ ast (2.0.0)
+ astrolabe (1.3.0)
+ parser (>= 2.2.0.pre.3, < 3.0)
+ awesome_print (1.6.1)
aws-sdk (1.64.0)
aws-sdk-v1 (= 1.64.0)
aws-sdk-v1 (1.64.0)
json (~> 1.4)
nokogiri (>= 1.4.4)
bcrypt (3.1.10)
+ better_errors (2.1.1)
+ coderay (>= 1.0.0)
+ erubis (>= 2.6.6)
+ rack (>= 0.9.0)
binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1)
brakeman (3.0.2)
@@ -66,33 +80,54 @@ GEM
sass (~> 3.0)
terminal-table (~> 1.4)
builder (3.2.2)
- bullet (4.14.4)
+ bullet (4.14.5)
activesupport (>= 3.0.0)
- uniform_notifier (>= 1.6.0)
+ uniform_notifier (~> 1.9.0)
byebug (4.0.5)
columnize (= 0.9.0)
+ cane (2.6.2)
+ parallel
capybara (2.4.4)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (~> 2.0)
+ chronic (0.10.2)
+ churn (0.0.35)
+ chronic (>= 0.2.3)
+ hirb
+ json_pure
+ main
+ rest-client (>= 1.6.0)
+ ruby_parser (~> 3.0)
+ sexp_processor (~> 4.1)
climate_control (0.0.3)
activesupport (>= 3.0)
cocaine (0.5.7)
climate_control (>= 0.0.3, < 1.0)
+ code_analyzer (0.4.5)
+ sexp_processor
+ code_metrics (0.1.3)
+ codeclimate-test-reporter (0.4.7)
+ simplecov (>= 0.7.1, < 1.0.0)
+ coderay (1.1.0)
coffee-rails (4.1.0)
coffee-script (>= 2.2.0)
railties (>= 4.0.0, < 5.0)
- coffee-script (2.3.0)
+ coffee-script (2.4.1)
coffee-script-source
execjs
- coffee-script-source (1.9.1)
+ coffee-script-source (1.9.1.1)
+ colored (1.2)
columnize (0.9.0)
- coveralls (0.8.0)
- multi_json (~> 1.10)
+ concord (0.1.5)
+ adamantium (~> 0.2.0)
+ equalizer (~> 0.0.9)
+ coveralls (0.8.1)
+ json (~> 1.8)
rest-client (>= 1.6.8, < 2)
- simplecov (~> 0.9.1)
+ simplecov (~> 0.10.0)
term-ansicolor (~> 1.3)
thor (~> 0.19.1)
cucumber (1.3.19)
@@ -118,10 +153,11 @@ GEM
warden (~> 1.2.3)
diff-lcs (1.2.5)
docile (1.1.5)
- domain_name (0.5.23)
+ domain_name (0.5.24)
unf (>= 0.0.5, < 1.0.0)
+ equalizer (0.0.11)
erubis (2.7.0)
- execjs (2.4.0)
+ execjs (2.5.2)
factory_girl (4.5.0)
activesupport (>= 3.0.0)
factory_girl_rails (4.5.0)
@@ -130,36 +166,77 @@ GEM
faker (1.4.3)
i18n (~> 0.5)
fastercsv (1.5.5)
+ fattr (2.2.2)
+ flay (2.6.1)
+ ruby_parser (~> 3.0)
+ sexp_processor (~> 4.0)
+ flog (4.3.2)
+ ruby_parser (~> 3.1, > 3.1.0)
+ sexp_processor (~> 4.4)
gherkin (2.12.2)
multi_json (~> 1.3)
- globalid (0.3.3)
+ globalid (0.3.5)
activesupport (>= 4.1.0)
haml (4.0.6)
tilt
highline (1.6.21)
- hike (1.2.3)
+ hirb (0.7.3)
http-cookie (1.0.2)
domain_name (~> 0.5)
i18n (0.7.0)
+ ice_nine (0.11.1)
jquery-rails (4.0.3)
rails-dom-testing (~> 1.0)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
json (1.8.2)
+ json_pure (1.8.2)
+ launchy (2.4.3)
+ addressable (~> 2.3)
loofah (2.0.1)
nokogiri (>= 1.5.9)
mail (2.6.3)
mime-types (>= 1.16, < 3)
- mime-types (2.4.3)
+ main (6.1.0)
+ arrayfields (>= 4.7.4)
+ chronic (>= 0.6.2)
+ fattr (>= 2.2.0)
+ map (>= 5.1.0)
+ map (6.5.5)
+ memoizable (0.4.2)
+ thread_safe (~> 0.3, >= 0.3.1)
+ metric_fu (4.11.4)
+ cane (~> 2.5, >= 2.5.2)
+ churn (~> 0.0.35)
+ code_metrics (~> 0.1)
+ coderay
+ flay (~> 2.1, >= 2.0.1)
+ flog (~> 4.1, >= 4.1.1)
+ launchy (~> 2.0)
+ metric_fu-Saikuro (~> 1.1, >= 1.1.3)
+ multi_json
+ rails_best_practices (~> 1.14, >= 1.14.3)
+ redcard
+ reek (~> 1.3, >= 1.3.4)
+ roodi (~> 3.1)
+ metric_fu-Saikuro (1.1.3)
+ mime-types (2.5)
mini_portile (0.6.2)
- minitest (5.5.1)
+ minitest (5.6.1)
multi_json (1.11.0)
multi_test (0.1.2)
netrc (0.10.3)
nokogiri (1.6.6.2)
mini_portile (~> 0.6.0)
orm_adapter (0.5.0)
+ parallel (1.4.1)
+ parser (2.2.0.4)
+ ast (>= 1.1, < 3.0)
pg (0.18.1)
+ powerpack (0.1.0)
+ procto (0.0.2)
+ quiet_assets (1.1.0)
+ railties (>= 3.1, < 5.0)
rack (1.6.0)
rack-cache (1.2)
rack (>= 0.4)
@@ -187,6 +264,15 @@ GEM
rails_12factor (0.0.3)
rails_serve_static_assets
rails_stdout_logging
+ rails_best_practices (1.15.7)
+ activesupport
+ code_analyzer (>= 0.4.3)
+ colored
+ erubis
+ i18n
+ json
+ require_all
+ ruby-progressbar
rails_serve_static_assets (0.0.4)
rails_stdout_logging (0.0.3)
railties (4.2.1)
@@ -194,14 +280,23 @@ GEM
activesupport (= 4.2.1)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
+ rainbow (2.0.0)
rake (10.4.2)
rdoc (4.2.0)
+ redcard (1.1.0)
+ reek (1.6.6)
+ parser (~> 2.2.0.pre.7)
+ rainbow (>= 1.99, < 3.0)
+ unparser (~> 0.2.2)
+ require_all (1.3.2)
responders (2.1.0)
railties (>= 4.2.0, < 5)
rest-client (1.8.0)
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 3.0)
netrc (~> 0.7)
+ roodi (3.3.1)
+ ruby_parser (~> 3.2, >= 3.2.2)
rspec-core (3.2.3)
rspec-support (~> 3.2.0)
rspec-expectations (3.2.1)
@@ -219,10 +314,17 @@ GEM
rspec-mocks (~> 3.2.0)
rspec-support (~> 3.2.0)
rspec-support (3.2.2)
- ruby2ruby (2.1.3)
+ rubocop (0.30.0)
+ astrolabe (~> 1.3)
+ parser (>= 2.2.0.1, < 3.0)
+ powerpack (~> 0.1)
+ rainbow (>= 1.99.1, < 3.0)
+ ruby-progressbar (~> 1.4)
+ ruby-progressbar (1.7.5)
+ ruby2ruby (2.1.4)
ruby_parser (~> 3.1)
sexp_processor (~> 4.0)
- ruby_parser (3.6.5)
+ ruby_parser (3.6.6)
sexp_processor (~> 4.1)
sass (3.4.13)
sass-rails (5.0.3)
@@ -234,24 +336,21 @@ GEM
sdoc (0.4.1)
json (~> 1.7, >= 1.7.7)
rdoc (~> 4.0)
- sexp_processor (4.5.0)
+ sexp_processor (4.5.1)
shoulda-matchers (2.8.0)
activesupport (>= 3.0.0)
- simple_token_authentication (1.8.0)
+ simple_token_authentication (1.9.0)
actionmailer (>= 3.2.6, < 5)
actionpack (>= 3.2.6, < 5)
devise (~> 3.2)
- simplecov (0.9.2)
+ simplecov (0.10.0)
docile (~> 1.1.0)
- multi_json (~> 1.0)
- simplecov-html (~> 0.9.0)
- simplecov-html (0.9.0)
- spring (1.3.3)
- sprockets (2.12.3)
- hike (~> 1.2)
- multi_json (~> 1.0)
+ json (~> 1.8)
+ simplecov-html (~> 0.10.0)
+ simplecov-html (0.10.0)
+ spring (1.3.4)
+ sprockets (3.0.3)
rack (~> 1.0)
- tilt (~> 1.1, != 1.3.0)
sprockets-rails (2.2.4)
actionpack (>= 3.0)
activesupport (>= 3.0)
@@ -263,7 +362,7 @@ GEM
thor (0.19.1)
thread_safe (0.3.5)
tilt (1.4.1)
- tins (1.3.5)
+ tins (1.5.1)
turbolinks (2.5.3)
coffee-rails
tzinfo (1.2.2)
@@ -273,15 +372,18 @@ GEM
json (>= 1.8.0)
unf (0.1.4)
unf_ext
- unf_ext (0.0.6)
- uniform_notifier (1.8.0)
+ unf_ext (0.0.7.1)
+ uniform_notifier (1.9.0)
+ unparser (0.2.2)
+ abstract_type (~> 0.0.7)
+ adamantium (~> 0.2.0)
+ concord (~> 0.1.5)
+ diff-lcs (~> 1.2.5)
+ equalizer (~> 0.0.9)
+ parser (~> 2.2.0.2)
+ procto (~> 0.0.2)
warden (1.2.3)
rack (>= 1.0)
- web-console (2.1.2)
- activemodel (>= 4.0)
- binding_of_caller (>= 0.7.2)
- railties (>= 4.0)
- sprockets-rails (>= 2.0, < 4.0)
xpath (2.0.0)
nokogiri (~> 1.3)
@@ -289,10 +391,14 @@ PLATFORMS
ruby
DEPENDENCIES
+ awesome_print
aws-sdk (< 2.0)
+ better_errors
+ binding_of_caller
brakeman
bullet
byebug
+ codeclimate-test-reporter
coveralls
cucumber-rails
database_cleaner
@@ -301,12 +407,15 @@ DEPENDENCIES
faker
haml
jquery-rails
+ metric_fu
paperclip!
pg
+ quiet_assets
rack-cache
rails (= 4.2.1)
rails_12factor
rspec-rails (>= 3.1)
+ rubocop
sass-rails (~> 5.0)
sdoc (~> 0.4.0)
shoulda-matchers
@@ -316,4 +425,3 @@ DEPENDENCIES
sqlite3
turbolinks
uglifier (>= 1.3.0)
- web-console (~> 2.0)
diff --git a/README.md b/README.md
index 9a208f5..f521406 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,38 @@
# [snap-cloud][hk-app]
A CS169 Project to create a new cloud sharing system for [Snap!][sbe].
-* [![Code Climate](https://codeclimate.com/github/snap-cloud/snap-cloud/badges/gpa.svg)](https://codeclimate.com/github/snap-cloud/snap-cloud)
+[![Code Climate](https://codeclimate.com/github/snap-cloud/snap-cloud/badges/gpa.svg)](https://codeclimate.com/github/snap-cloud/snap-cloud) [![Build Status](https://travis-ci.org/snap-cloud/snap-cloud.svg?branch=master)](https://travis-ci.org/snap-cloud/snap-cloud) [![Coverage Status](https://coveralls.io/repos/snap-cloud/snap-cloud/badge.svg?branch=master)](https://coveralls.io/r/snap-cloud/snap-cloud?branch=master) [![Test Coverage](https://codeclimate.com/github/snap-cloud/snap-cloud/badges/coverage.svg)](https://codeclimate.com/github/snap-cloud/snap-cloud) [![Inline docs](http://inch-ci.org/github/snap-cloud/snap-cloud.svg?branch=master)](http://inch-ci.org/github/snap-cloud/snap-cloud) [![Dependency Status](https://gemnasium.com/snap-cloud/snap-cloud.svg)](https://gemnasium.com/snap-cloud/snap-cloud)
-* [![Build Status](https://travis-ci.org/snap-cloud/snap-cloud.svg?branch=master)](https://travis-ci.org/snap-cloud/snap-cloud)
+For CS169: Please see the [wiki][wiki] for documentation about each iteration.
-* [![Coverage Status](https://coveralls.io/repos/snap-cloud/snap-cloud/badge.svg?branch=master)](https://coveralls.io/r/snap-cloud/snap-cloud?branch=master)
-
-Please see the [wiki][wiki] for documentation about each iteration.
+# What is Snap!?
+This section is `TODO`
+- Snap! GH Repo
+- Snap! homepage
+- scratch site
## Setting Up
-This project uses Rails 4.2 and Ruby 2.2.0.
+This (currently) project uses Rails 4.2.1 and Ruby 2.2.1, and aims to be always
+up to date!
-The Heroku destination for the app is `http://ucbsnap.herokuapp.com`
+The Heroku destination for the app is `https://ucbsnap.herokuapp.com`
1. **CLONE WITH `-r`** `git clone -r git@github.com:snap-cloud/snap-cloud.git`
1. You should have `rvm` or similar installed.
2. `bundle install --without production`
3. `git remote add heroku git@heroku.com:ucbsnap.git`
-[hk-app]: http://ucbsnap.herokuapp.com
+[hk-app]: https://ucbsnap.herokuapp.com
[sbe]: http://snap.berkeley.edu
-[wiki]: https://github.com/snap-cloud/snap-cloud/wiki/Iteration-0-Deliverables
\ No newline at end of file
+[wiki]: https://github.com/snap-cloud/snap-cloud/wiki/Iteration-0-Deliverables
+
+## Development Notes
+
+* GitHub Flow [link needed...]
+
+* The awesome print gem
+```
+$ rails console
+> require 'awesome_print'
+ap SomeObject
+```
\ No newline at end of file
diff --git a/Rakefile b/Rakefile
index ba6b733..45e6a39 100644
--- a/Rakefile
+++ b/Rakefile
@@ -3,4 +3,9 @@
require File.expand_path('../config/application', __FILE__)
+require 'metric_fu'
+require 'rubocop/rake_task'
+
+RuboCop::RakeTask.new
+
Rails.application.load_tasks
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 45e0f25..7659da0 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -10,19 +10,26 @@ class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
- # Custom Error Methos
+ # Custom Error Methods
+ # These are app level errors that we can use to configure how to handle them
+ # They should be created when there is not an already applicable Rails error
+ # TODO: We need to determine for the best split up 401 and 404 errors.
module SnapException
class AccessDenied < StandardError; end
end
# Clean Error Handler Methods
# Use these in place of handling errors individually.
- def access_denied # Equivalent 401
- raise SnapException::AccessDenied.new('You don\'t have permission to view this.')
+ def access_denied(msg = nil) # Equivalent 401
+ default = 'You don\'t have permission to view this.'
+ msg ||= default
+ raise SnapException::AccessDenied.new(msg)
end
- def item_not_found # Equivalent 404
- raise ActiveRecord::RecordNotFound.new('Not Found')
+ def item_not_found(msg = nil) # Equivalent 404
+ default = "This item couldn't be found."
+ msg ||= default
+ raise ActiveRecord::RecordNotFound.new(msg)
end
rescue_from ActiveRecord::RecordNotFound, :with => :record_not_found
@@ -39,6 +46,9 @@ def configure_permitted_parameters
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:username, :email, :password, :password_confirmation, :current_password) }
end
+ # This method allows stubbing in rspec testing.
+ # FIXME -- name should be migrated to get_current_user
+ # TODO: can't we just stub current_user method?
def getCurrentUser
current_user
end