solidus_social 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +35 -0
  3. data/.gem_release.yml +5 -0
  4. data/.github/stale.yml +17 -0
  5. data/.gitignore +6 -8
  6. data/.rspec +3 -3
  7. data/.rubocop.yml +3 -149
  8. data/.rubocop_todo.yml +42 -0
  9. data/CHANGELOG.md +31 -9
  10. data/Gemfile +21 -20
  11. data/{LICENSE.md → LICENSE} +2 -2
  12. data/README.md +56 -14
  13. data/Rakefile +4 -19
  14. data/app/controllers/spree/admin/authentication_methods_controller.rb +2 -0
  15. data/app/controllers/spree/omniauth_callbacks_controller.rb +8 -6
  16. data/app/controllers/spree/user_authentications_controller.rb +3 -1
  17. data/app/decorators/controllers/solidus_social/spree/user_registrations_controller_decorator.rb +27 -0
  18. data/app/decorators/models/solidus_social/spree/user_decorator.rb +28 -0
  19. data/app/helpers/spree/omniauth_callbacks_helper.rb +2 -0
  20. data/app/models/spree/authentication_method.rb +3 -1
  21. data/app/models/spree/social_configuration.rb +2 -0
  22. data/app/models/spree/user_authentication.rb +3 -1
  23. data/app/overrides/add_authentications_to_account_summary.rb +2 -0
  24. data/app/overrides/admin_configuration_decorator.rb +3 -1
  25. data/app/overrides/user_registrations_decorator.rb +2 -0
  26. data/app/views/spree/admin/authentication_methods/_form.html.erb +4 -4
  27. data/app/views/spree/admin/authentication_methods/edit.html.erb +2 -2
  28. data/app/views/spree/admin/authentication_methods/index.html.erb +10 -10
  29. data/app/views/spree/admin/authentication_methods/new.html.erb +2 -2
  30. data/app/views/spree/shared/_social.html.erb +5 -5
  31. data/app/views/spree/shared/_user_form.html.erb +3 -3
  32. data/app/views/spree/users/_new-customer.html.erb +2 -2
  33. data/app/views/spree/users/_social.html.erb +5 -5
  34. data/bin/console +17 -0
  35. data/bin/rails +15 -4
  36. data/bin/rake +7 -0
  37. data/bin/sandbox +72 -0
  38. data/bin/setup +8 -0
  39. data/config/locales/en.yml +1 -0
  40. data/config/routes.rb +6 -4
  41. data/db/migrate/20120120163432_create_user_authentications.rb +2 -0
  42. data/db/migrate/20120123163222_create_authentication_methods.rb +2 -0
  43. data/lib/generators/solidus_social/install/install_generator.rb +7 -5
  44. data/lib/generators/solidus_social/install/templates/config/initializers/solidus_social.rb +3 -1
  45. data/lib/solidus_social.rb +22 -7
  46. data/lib/solidus_social/engine.rb +29 -54
  47. data/lib/solidus_social/facebook_omniauth_strategy_ext.rb +25 -0
  48. data/lib/solidus_social/factories.rb +4 -0
  49. data/lib/solidus_social/version.rb +3 -16
  50. data/solidus_social.gemspec +43 -46
  51. data/spec/controllers/spree/omniauth_callbacks_controller_spec.rb +14 -9
  52. data/spec/features/spree/admin/authentication_methods_configuration_spec.rb +13 -10
  53. data/spec/features/spree/sign_in_spec.rb +13 -10
  54. data/spec/lib/solidus_social/engine_spec.rb +9 -0
  55. data/spec/lib/{spree_social/engine_spec.rb → solidus_social_speec.rb} +3 -1
  56. data/spec/lib/spree/social_config_spec.rb +2 -0
  57. data/spec/models/spree/authentication_method_spec.rb +4 -2
  58. data/spec/models/spree/social_configuration_spec.rb +2 -0
  59. data/spec/models/spree/user_decorator_spec.rb +5 -3
  60. data/spec/spec_helper.rb +17 -29
  61. data/spec/support/omniauth.rb +4 -0
  62. metadata +56 -196
  63. data/.hound.yml +0 -26
  64. data/.travis.yml +0 -32
  65. data/app/assets/javascripts/spree/backend/solidus_social.js +0 -1
  66. data/app/assets/javascripts/spree/frontend/solidus_social.js +0 -1
  67. data/app/assets/stylesheets/spree/backend/solidus_social.css +0 -3
  68. data/app/controllers/spree/user_registrations_controller_decorator.rb +0 -15
  69. data/app/models/spree/user_decorator.rb +0 -16
  70. data/spec/support/capybara.rb +0 -11
  71. data/spec/support/database_cleaner.rb +0 -23
  72. data/spec/support/devise.rb +0 -3
  73. data/spec/support/factory_girl.rb +0 -7
  74. data/spec/support/spree.rb +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 140e2c41e3d39cdb72559e8eab2d16602332f7e4
4
- data.tar.gz: 3f067cd1244a2beb69c29cef84fb24b678fd86c0
2
+ SHA256:
3
+ metadata.gz: 7f865f400fb253b1ee9b52a8b75e20bd3ff18f6f9a0444c579fa5dd864875c88
4
+ data.tar.gz: 3812d2d3438a99fa911bfbc3532859abdb1c5cd04f80f823503920c837e28e8f
5
5
  SHA512:
6
- metadata.gz: 642531bdd1876b9b45bf951f5a1d996885066243f79c16c118f2f3a65fc9a6ea419e6ca653433421e00d0403354ad9f9aa07436b374880cfb08f206fb46dec0d
7
- data.tar.gz: 6e5a6858b94fc566ba9685d381b302d8ad7a62940b35ba7deaacd6a7881c4ae4ce24558ac1801cc23a0e91f9d59d39d025a6f8fd50ebe30a3a420c7f0890274e
6
+ metadata.gz: 622ca61bd56193b5bd3a8abe1c17b7a7e2be7bdb8b903167ea212ea988ac8c4b2ae82001476440c57271c55e8c6013cdca0f87f6e2859c79fc29d1a0104eec59
7
+ data.tar.gz: 528320886591e648f18196a7b3811f173a5c2f70352d40d762c4a635ae86430bad30a215611aad1dd738a63d3e56325f0d907edf67f972a6280f18e90034a92b
@@ -0,0 +1,35 @@
1
+ version: 2.1
2
+
3
+ orbs:
4
+ # Always take the latest version of the orb, this allows us to
5
+ # run specs against Solidus supported versions only without the need
6
+ # to change this configuration every time a Solidus version is released
7
+ # or goes EOL.
8
+ solidusio_extensions: solidusio/extensions@volatile
9
+
10
+ jobs:
11
+ run-specs-with-postgres:
12
+ executor: solidusio_extensions/postgres
13
+ steps:
14
+ - solidusio_extensions/run-tests
15
+ run-specs-with-mysql:
16
+ executor: solidusio_extensions/mysql
17
+ steps:
18
+ - solidusio_extensions/run-tests
19
+
20
+ workflows:
21
+ "Run specs on supported Solidus versions":
22
+ jobs:
23
+ - run-specs-with-postgres
24
+ - run-specs-with-mysql
25
+ "Weekly run specs against master":
26
+ triggers:
27
+ - schedule:
28
+ cron: "0 0 * * 4" # every Thursday
29
+ filters:
30
+ branches:
31
+ only:
32
+ - master
33
+ jobs:
34
+ - run-specs-with-postgres
35
+ - run-specs-with-mysql
@@ -0,0 +1,5 @@
1
+ bump:
2
+ recurse: false
3
+ file: 'lib/solidus_social/version.rb'
4
+ message: Bump SolidusSocial to %{version}
5
+ tag: true
@@ -0,0 +1,17 @@
1
+ # Number of days of inactivity before an issue becomes stale
2
+ daysUntilStale: 60
3
+ # Number of days of inactivity before a stale issue is closed
4
+ daysUntilClose: 7
5
+ # Issues with these labels will never be considered stale
6
+ exemptLabels:
7
+ - pinned
8
+ - security
9
+ # Label to use when marking an issue as stale
10
+ staleLabel: wontfix
11
+ # Comment to post when marking an issue as stale. Set to `false` to disable
12
+ markComment: >
13
+ This issue has been automatically marked as stale because it has not had
14
+ recent activity. It will be closed if no further activity occurs. Thank you
15
+ for your contributions.
16
+ # Comment to post when closing a stale issue. Set to `false` to disable
17
+ closeComment: false
data/.gitignore CHANGED
@@ -1,18 +1,16 @@
1
+ *.gem
1
2
  \#*
2
3
  *~
3
4
  .#*
4
5
  .DS_Store
5
6
  .idea
6
7
  .project
8
+ .sass-cache
9
+ coverage
10
+ Gemfile.lock
7
11
  tmp
8
12
  nbproject
13
+ pkg
9
14
  *.swp
10
15
  spec/dummy
11
- .rvmrc
12
- .bundle
13
- Gemfile.lock
14
- coverage
15
- .ruby-version
16
- .ruby-gemset
17
- .node-version
18
- .phantom-version
16
+ spec/examples.txt
data/.rspec CHANGED
@@ -1,3 +1,3 @@
1
- --colour
2
- -r spec_helper
3
- -f documentation
1
+ --color
2
+ --format documentation
3
+ --require spec_helper
@@ -1,150 +1,4 @@
1
- AllCops:
2
- Exclude:
3
- - spec/dummy/**/*
4
- - bin/*
5
- - Guardfile
6
- - vendor/**/*
1
+ require:
2
+ - solidus_dev_support/rubocop
7
3
 
8
- Style/MutableConstant:
9
- Enabled: false
10
-
11
- # Relaxed.Ruby.Style
12
-
13
- Style/Alias:
14
- Enabled: false
15
- StyleGuide: http://relaxed.ruby.style/#stylealias
16
-
17
- Style/BeginBlock:
18
- Enabled: false
19
- StyleGuide: http://relaxed.ruby.style/#stylebeginblock
20
-
21
- Style/BlockDelimiters:
22
- Enabled: false
23
- StyleGuide: http://relaxed.ruby.style/#styleblockdelimiters
24
-
25
- Style/Documentation:
26
- Enabled: false
27
- StyleGuide: http://relaxed.ruby.style/#styledocumentation
28
-
29
- Style/DotPosition:
30
- Enabled: false
31
- StyleGuide: http://relaxed.ruby.style/#styledotposition
32
-
33
- Style/DoubleNegation:
34
- Enabled: false
35
- StyleGuide: http://relaxed.ruby.style/#styledoublenegation
36
-
37
- Style/EndBlock:
38
- Enabled: false
39
- StyleGuide: http://relaxed.ruby.style/#styleendblock
40
-
41
- Style/FormatString:
42
- Enabled: false
43
- StyleGuide: http://relaxed.ruby.style/#styleformatstring
44
-
45
- Style/IfUnlessModifier:
46
- Enabled: false
47
- StyleGuide: http://relaxed.ruby.style/#styleifunlessmodifier
48
-
49
- Style/Lambda:
50
- Enabled: false
51
- StyleGuide: http://relaxed.ruby.style/#stylelambda
52
-
53
- Style/ModuleFunction:
54
- Enabled: false
55
- StyleGuide: http://relaxed.ruby.style/#stylemodulefunction
56
-
57
- Style/MultilineBlockChain:
58
- Enabled: false
59
- StyleGuide: http://relaxed.ruby.style/#stylemultilineblockchain
60
-
61
- Style/NegatedIf:
62
- Enabled: false
63
- StyleGuide: http://relaxed.ruby.style/#stylenegatedif
64
-
65
- Style/NegatedWhile:
66
- Enabled: false
67
- StyleGuide: http://relaxed.ruby.style/#stylenegatedwhile
68
-
69
- Style/ParallelAssignment:
70
- Enabled: false
71
- StyleGuide: http://relaxed.ruby.style/#styleparallelassignment
72
-
73
- Style/PercentLiteralDelimiters:
74
- Enabled: false
75
- StyleGuide: http://relaxed.ruby.style/#stylepercentliteraldelimiters
76
-
77
- Style/PerlBackrefs:
78
- Enabled: false
79
- StyleGuide: http://relaxed.ruby.style/#styleperlbackrefs
80
-
81
- Style/Semicolon:
82
- Enabled: false
83
- StyleGuide: http://relaxed.ruby.style/#stylesemicolon
84
-
85
- Style/SignalException:
86
- Enabled: false
87
- StyleGuide: http://relaxed.ruby.style/#stylesignalexception
88
-
89
- Style/SingleLineBlockParams:
90
- Enabled: false
91
- StyleGuide: http://relaxed.ruby.style/#stylesinglelineblockparams
92
-
93
- Style/SingleLineMethods:
94
- Enabled: false
95
- StyleGuide: http://relaxed.ruby.style/#stylesinglelinemethods
96
-
97
- Style/SpaceBeforeBlockBraces:
98
- Enabled: false
99
- StyleGuide: http://relaxed.ruby.style/#stylespacebeforeblockbraces
100
-
101
- Style/SpaceInsideParens:
102
- Enabled: false
103
- StyleGuide: http://relaxed.ruby.style/#stylespaceinsideparens
104
-
105
- Style/SpecialGlobalVars:
106
- Enabled: false
107
- StyleGuide: http://relaxed.ruby.style/#stylespecialglobalvars
108
-
109
- Style/StringLiterals:
110
- Enabled: false
111
- StyleGuide: http://relaxed.ruby.style/#stylestringliterals
112
-
113
- Style/WhileUntilModifier:
114
- Enabled: false
115
- StyleGuide: http://relaxed.ruby.style/#stylewhileuntilmodifier
116
-
117
- Lint/AmbiguousRegexpLiteral:
118
- Enabled: false
119
- StyleGuide: http://relaxed.ruby.style/#lintambiguousregexpliteral
120
-
121
- Lint/AssignmentInCondition:
122
- Enabled: false
123
- StyleGuide: http://relaxed.ruby.style/#lintassignmentincondition
124
-
125
- Metrics/AbcSize:
126
- Enabled: false
127
-
128
- Metrics/BlockNesting:
129
- Enabled: false
130
-
131
- Metrics/ClassLength:
132
- Enabled: false
133
-
134
- Metrics/ModuleLength:
135
- Enabled: false
136
-
137
- Metrics/CyclomaticComplexity:
138
- Enabled: false
139
-
140
- Metrics/LineLength:
141
- Enabled: false
142
-
143
- Metrics/MethodLength:
144
- Enabled: false
145
-
146
- Metrics/ParameterLists:
147
- Enabled: false
148
-
149
- Metrics/PerceivedComplexity:
150
- Enabled: false
4
+ inherit_from: .rubocop_todo.yml
@@ -0,0 +1,42 @@
1
+ Metrics/LineLength:
2
+ Enabled: true
3
+ Max: 160
4
+
5
+ Rails/FilePath:
6
+ Enabled: false
7
+
8
+ RSpec/AnyInstance:
9
+ Enabled: false
10
+
11
+ RSpec/ContextWording:
12
+ Enabled: false
13
+
14
+ RSpec/DescribeClass:
15
+ Enabled: false
16
+
17
+ RSpec/InstanceVariable:
18
+ Enabled: false
19
+
20
+ RSpec/MessageSpies:
21
+ Enabled: false
22
+
23
+ RSpec/MultipleExpectations:
24
+ Enabled: false
25
+
26
+ RSpec/NamedSubject:
27
+ Enabled: false
28
+
29
+ RSpec/NestedGroups:
30
+ Enabled: false
31
+
32
+ Style/NestedParenthesizedCalls:
33
+ Enabled: false
34
+
35
+ RSpec/VerifiedDoubles:
36
+ Enabled: false
37
+
38
+ Style/ClassAndModuleChildren:
39
+ Enabled: false
40
+
41
+ Style/GuardClause:
42
+ Enabled: false
@@ -1,13 +1,35 @@
1
1
  ## Unreleased
2
2
 
3
- * The `SolidusSocial::OAUTH_PROVIDERS` constant has been removed in favour
4
- of the `Spree::AuthenticationMethod.providers_options` class method. This is populated using
5
- the `Spree::SocialConfig#providers` Hash.
6
- * Use the install generator to import the solidus social initializer into your app.
7
- Please run `bundle exec rails g solidus_social:install` in order to upgrade.
3
+ ## v1.3.0
8
4
 
9
- ## Solidus Social 1.0.0
5
+ - Migrated factories from FactoryGirl to FactoryBot
6
+ - Add support for Solidus 2.4+
7
+ - Reduced compatible versions of `solidus_core` to 2.x
8
+ - Removed the deprecated `icon:` argument from admin buttons
9
+ - Fixed an issue when using Safari to authenticate
10
+ - `Spree::UserRegistrationsController` and `Spree.user_class` are now decorated by
11
+ prepending modules in the `SolidusSocial::Spree` namespace instead of using `class_eval`
12
+ - Development of the extension is not relying on `solidus_dev_support` and CircleCI
13
+ - Moved the Facebook strategy patch to it's own prepended module
10
14
 
11
- * Renamed SpreeSocial to SolidusSocial
12
- * Relaxed versions to support solidus 1.0+
13
- * Port of https://github.com/DynamoMTL/spree_social's solidus branch
15
+ ## v1.2.0
16
+
17
+ - Switched to using the install generator to import the solidus social
18
+ initializer into apps. **Please run `bin/rails generate solidus_social:install`
19
+ in order to upgrade.**
20
+ - Removed the `SolidusSocial::OAUTH_PROVIDERS` constant in favour of
21
+ the `Spree::AuthenticationMethod.providers_options` class
22
+ method. This is populated using the `Spree::SocialConfig#providers` Hash.
23
+ - Added support for Rails 5.1.
24
+ - Added Italian translations
25
+
26
+ ## v1.1.0
27
+
28
+ - Added support for Solidus 2/Rails 5
29
+ - Bugfixes
30
+
31
+ ## v1.0.0
32
+
33
+ - Renamed SpreeSocial to SolidusSocial
34
+ - Relaxed versions to support solidus 1.0+
35
+ - Port of https://github.com/DynamoMTL/spree_social's solidus branch
data/Gemfile CHANGED
@@ -1,29 +1,30 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
2
 
3
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}.git" }
3
+ source 'https://rubygems.org'
4
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
4
5
 
5
6
  branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
6
- gem "solidus", github: "solidusio/solidus", branch: branch
7
+ gem 'solidus', github: 'solidusio/solidus', branch: branch
7
8
 
8
- group :test do
9
- if branch == 'master' || branch >= "v2.0"
10
- gem "rails-controller-testing"
11
- end
12
- gem 'ffaker'
13
- end
14
-
15
- # hack for broken bundler dependency resolution
16
- if branch == 'master' || branch >= "v2.3"
17
- gem 'rails', '~> 5.1.0'
18
- elsif branch >= "v2.0"
19
- gem 'rails', '~> 5.0.0'
20
- end
9
+ # Needed to help Bundler figure out how to resolve dependencies,
10
+ # otherwise it takes forever to resolve them.
11
+ # See https://github.com/bundler/bundler/issues/6677
12
+ gem 'rails', '>0.a'
21
13
 
22
- gem 'pg'
23
- gem 'mysql2'
14
+ # Provides basic authentication functionality for testing parts of your engine
15
+ gem 'solidus_auth_devise'
24
16
 
25
- group :development, :test do
26
- gem "pry-rails"
17
+ case ENV['DB']
18
+ when 'mysql'
19
+ gem 'mysql2'
20
+ when 'postgresql'
21
+ gem 'pg'
22
+ else
23
+ gem 'sqlite3'
27
24
  end
28
25
 
29
26
  gemspec
27
+
28
+ # Use a local Gemfile to include development dependencies that might not be
29
+ # relevant for the project or for other contributors, e.g.: `gem 'pry-debug'`.
30
+ eval_gemfile 'Gemfile-local' if File.exist? 'Gemfile-local'
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 John Dyer and other contributors
1
+ Copyright (c) 2014-2020 John Dyer and other contributors
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
@@ -9,7 +9,7 @@ are permitted provided that the following conditions are met:
9
9
  * Redistributions in binary form must reproduce the above copyright notice,
10
10
  this list of conditions and the following disclaimer in the documentation
11
11
  and/or other materials provided with the distribution.
12
- * Neither the name Spree nor the names of its contributors may be used to
12
+ * Neither the name Solidus nor the names of its contributors may be used to
13
13
  endorse or promote products derived from this software without specific
14
14
  prior written permission.
15
15
 
data/README.md CHANGED
@@ -1,25 +1,28 @@
1
- # Solidus Social
1
+ SolidusSocial
2
+ =============
2
3
 
3
- [![Build Status](https://travis-ci.org/solidusio-contrib/solidus_social.svg?branch=master)](https://travis-ci.org/solidusio-contrib/solidus_social)
4
+ [![CircleCI](https://circleci.com/gh/solidusio-contrib/solidus_social.svg?style=svg)](https://circleci.com/gh/solidusio-contrib/solidus_social)
4
5
  [![Code Climate](https://codeclimate.com/github/solidusio-contrib/solidus_social/badges/gpa.svg)](https://codeclimate.com/github/solidusio-contrib/solidus_social)
5
6
 
6
7
  Social login support for Solidus. Solidus Social handles authorization, account
7
8
  creation and association through third-party services. Currently Twitter,
8
9
  Facebook, Github, Google OAuth2, and Amazon are available out of the box.
9
10
 
10
- ## Installation
11
+ Installation
12
+ ------------
11
13
 
12
- Add this extension to your `Gemfile`:
14
+ Add solidus_social to your Gemfile:
13
15
 
14
16
  ```ruby
15
17
  gem 'solidus_social'
16
18
  ```
17
19
 
18
- Then run:
20
+ Bundle your dependencies and run the installation generator:
19
21
 
20
- ```sh
21
- $ bundle && bundle exec rails g solidus_social:install
22
- $ bundle exec rake db:migrate
22
+ ```shell
23
+ bundle
24
+ bundle exec rails g solidus_social:install
25
+ bundle exec rails db:migrate
23
26
  ```
24
27
 
25
28
  This will install a new initializer `config/initializers/solidus_social.rb` into
@@ -29,7 +32,8 @@ Optional: By default the login path will be '/users/auth/:provider'. If you
29
32
  want something else, configure it in `config/initializers/solidus_social.rb`.
30
33
 
31
34
 
32
- ## Using OAuth Sources
35
+ Using OAuth Sources
36
+ -------------------
33
37
 
34
38
  Login as an admin user and navigate to Configuration > Social Authentication Methods
35
39
 
@@ -37,7 +41,8 @@ Click "New Authentication Method" and choose one of your configured providers.
37
41
 
38
42
  **You MUST restart your application after configuring or updating an authentication method.**
39
43
 
40
- ## Registering Your Application
44
+ Registering Your Application
45
+ ----------------------------
41
46
 
42
47
  Facebook, Twitter, Github, Google OAuth2, and Amazon are supported out of the
43
48
  box but, you will need to register your application with each of the sites you
@@ -98,8 +103,14 @@ Make sure you specifity the right IP address.
98
103
  > The app console is available at [https://login.amazon.com/manageApps](https://login.amazon.com/manageApps)
99
104
 
100
105
  ### Google OAuth2
106
+ [Google / APIs / Credentials/ Create Credential](https://console.developers.google.com/)
101
107
 
102
- _TODO: Write instructions._
108
+ 1. In the APIs and Services dashboard, visit 'Credentials' on the side, then select 'Create Credentials' and 'Oauth client ID'.
109
+ 2. Name the Application, select "Web Application" as a type.
110
+ 3. Under "Authorized redirect URIs", add your site (example:
111
+ `http://localhost:3000/users/auth/google_oauth2/callback`)
112
+
113
+ > More info: [https://developers.google.com/identity/protocols/OAuth2](https://developers.google.com/identity/protocols/OAuth2)
103
114
 
104
115
  ### Other OAuth Providers
105
116
 
@@ -134,14 +145,45 @@ strategy][12] for them. (If there isn't, you can [write one][13].)
134
145
  different font icons or classic background images, without having to
135
146
  override views.
136
147
 
137
- ## Documentation
148
+ Documentation
149
+ -------------
138
150
 
139
151
  API documentation is available [on RubyDoc.info][15].
140
152
 
141
- ## Contributing
153
+ Contributing
154
+ ------------
142
155
 
143
156
  See corresponding [guidelines][11].
144
157
 
158
+ Testing
159
+ -------
160
+
161
+ First bundle your dependencies, then run `rake`. `rake` will default to building the dummy app if it does not exist, then it will run specs, and [Rubocop](https://github.com/bbatsov/rubocop) static code analysis. The dummy app can be regenerated by using `rake test_app`.
162
+
163
+ ```shell
164
+ bundle
165
+ bin/rake
166
+ ```
167
+
168
+ When testing your application's integration with this extension you may use its factories.
169
+ Simply add this require statement to your spec_helper:
170
+
171
+ ```ruby
172
+ require 'solidus_social/factories'
173
+ ```
174
+
175
+ Releasing
176
+ ---------
177
+
178
+ Your new extension version can be released using `gem-release` like this:
179
+
180
+ ```shell
181
+ bundle exec gem bump -v VERSION --tag --push --remote upstream && gem release
182
+ ```
183
+
184
+ License
185
+ -------
186
+
145
187
  Copyright (c) 2014 [John Dyer][7] and [contributors][8], released under the [New BSD License][9]
146
188
 
147
189
  [1]: https://github.com/spree/spree
@@ -152,7 +194,7 @@ Copyright (c) 2014 [John Dyer][7] and [contributors][8], released under the [New
152
194
  [6]: https://github.com/solidusio-contrib/solidus_social/issues
153
195
  [7]: https://github.com/LBRapid
154
196
  [8]: https://github.com/solidusio-contrib/solidus_social/graphs/contributors
155
- [9]: https://github.com/solidusio-contrib/solidus_social/blob/master/LICENSE.md
197
+ [9]: https://github.com/solidusio-contrib/solidus_social/blob/master/LICENSE
156
198
  [10]: https://login.amazon.com/manageApps
157
199
  [11]: https://github.com/solidusio-contrib/solidus_social/blob/master/CONTRIBUTING.md
158
200
  [12]: https://github.com/intridea/omniauth/wiki/List-of-Strategies