solidus_contact_us 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a242e8014ca7d8fca06058d017e5ef5922bf98555ca594b9468863a106939b81
4
+ data.tar.gz: 518dfdcb292424988754853f9a2fbdbbc0eca895764de4349b20cc17ed03a087
5
+ SHA512:
6
+ metadata.gz: 67f94f6f33c20c4d2bb1ee4001248bb8de3123ddd9245798b91c281661d24a06c4051fb31aa178a5f2c1751bc86b76445bf05891e7a6a1a6ecdb47f4b077ed66
7
+ data.tar.gz: b63ff780bf575bf06999a9b21c5d69a3c974e6128f61af6b1beacdb32466f1297d1bcac08ebe9b68d7f6f1c4d5f6cfe177b76b176a62679f9585e3e262ac12a3
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2019 [name of plugin creator]
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ * Neither the name Spree nor the names of its contributors may be used to
13
+ endorse or promote products derived from this software without specific
14
+ prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,61 @@
1
+ SolidusContactUs
2
+ ================
3
+
4
+ [![Build Status](https://travis-ci.org/jtapia/solidus_contact_us.svg?branch=master)](https://travis-ci.org/jtapia/solidus_contact_us)
5
+
6
+ This extension provides a basic contact form for Solidus.
7
+
8
+ Installation
9
+ ------------
10
+
11
+ Add solidus_contact_us to your Gemfile:
12
+
13
+ ```ruby
14
+ gem 'solidus_contact_us', github: 'jtapia/solidus_contact_us'
15
+ ```
16
+
17
+ Bundle your dependencies and run the installation generator:
18
+
19
+ ```shell
20
+ bundle
21
+ bundle exec rails g solidus_contact_us:install
22
+ ```
23
+
24
+ If you want to change the configuration, you can add the following to an initializer:
25
+
26
+ ```ruby
27
+ SolidusContactUs::Config.tap do |config|
28
+ config.mailer_from = 'store@example.com' # String, *optional, default: ''
29
+ config.require_name = true # Boolean, default: false
30
+ config.require_subject = true # Boolean, default: false
31
+ config.contact_tracking_message = '' # String, default: nil
32
+ config.link_on_header = false # Boolean, default: true
33
+ config.link_on_footer = false # Boolean, default: true
34
+ end
35
+ ```
36
+
37
+ Preview
38
+ -------
39
+
40
+ ![](https://user-images.githubusercontent.com/957520/60550867-01091500-9cef-11e9-8c9f-4b78e81f4b24.png)
41
+ ![](https://user-images.githubusercontent.com/957520/60550869-01091500-9cef-11e9-8c2f-9ee247c2d86a.png)
42
+
43
+
44
+ Testing
45
+ -------
46
+
47
+ 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`.
48
+
49
+ ```shell
50
+ bundle
51
+ bundle exec rake
52
+ ```
53
+
54
+ When testing your applications integration with this extension you may use it's factories.
55
+ Simply add this require statement to your spec_helper:
56
+
57
+ ```ruby
58
+ require 'solidus_contact_us/factories'
59
+ ```
60
+
61
+ Copyright (c) 2019 [name of extension creator], released under the New BSD License
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler'
4
+ Bundler::GemHelper.install_tasks
5
+
6
+ require 'rspec/core/rake_task'
7
+ require 'spree/testing_support/extension_rake'
8
+
9
+ RSpec::Core::RakeTask.new
10
+
11
+ task :default do
12
+ if Dir["spec/dummy"].empty?
13
+ Rake::Task[:test_app].invoke
14
+ Dir.chdir("../../")
15
+ end
16
+ Rake::Task[:spec].invoke
17
+ end
18
+
19
+ desc 'Generates a dummy app for testing'
20
+ task :test_app do
21
+ ENV['LIB_NAME'] = 'solidus_contact_us'
22
+ Rake::Task['extension:test_app'].invoke
23
+ end
@@ -0,0 +1,2 @@
1
+ // Placeholder manifest file.
2
+ // the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/backend/all.js'
@@ -0,0 +1,2 @@
1
+ // Placeholder manifest file.
2
+ // the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/frontend/all.js'
@@ -0,0 +1,4 @@
1
+ /*
2
+ Placeholder manifest file.
3
+ the installer will append this file to the app vendored assets here: 'vendor/assets/stylesheets/spree/backend/all.css'
4
+ */
@@ -0,0 +1,9 @@
1
+ #new_contact_us_contact input[type=text],
2
+ #new_contact_us_contact input[type=email],
3
+ #new_contact_us_contact textarea {
4
+ width: 100%;
5
+ }
6
+
7
+ #new_contact_us_contact textarea {
8
+ height: 120px;
9
+ }
@@ -0,0 +1,25 @@
1
+ module Spree
2
+ module ContactUs
3
+ class ContactsController < Spree::StoreController
4
+ helper 'spree/products'
5
+
6
+ def create
7
+ @contact = Spree::ContactUs::Contact.new(params[:contact_us_contact])
8
+
9
+ if @contact.save
10
+ if SolidusContactUs::Config.contact_tracking_message.present?
11
+ flash[:contact_tracking] = SolidusContactUs::Config.contact_tracking_message
12
+ end
13
+ redirect_to spree.root_path, notice: t('spree.contact_us.notices.success')
14
+ else
15
+ render :new
16
+ end
17
+ end
18
+
19
+ def new
20
+ @contact = Spree::ContactUs::Contact.new
21
+ @taxonomies = Spree::Taxonomy.includes(root: :children)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,24 @@
1
+ module Spree
2
+ module ContactUs
3
+ class ContactMailer < Spree::BaseMailer
4
+ def contact_email(contact)
5
+ @contact = contact
6
+ mail_from = if SolidusContactUs::Config.mailer_from.present?
7
+ SolidusContactUs::Config.mailer_from
8
+ else
9
+ Spree::Store.default.mail_from_address
10
+ end
11
+ subject = if SolidusContactUs::Config.require_subject
12
+ @contact.subject
13
+ else
14
+ t('spree.subject', email: @contact.email)
15
+ end
16
+
17
+ mail(from: mail_from,
18
+ reply_to: @contact.email,
19
+ subject: subject,
20
+ to: @contact.email)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,43 @@
1
+ module Spree
2
+ module ContactUs
3
+ class Contact
4
+ include ActiveModel::Conversion
5
+ include ActiveModel::Validations
6
+
7
+ attr_accessor :email, :message, :name, :subject
8
+
9
+ EMAIL_REGEX = /\A
10
+ [^\s@]+ # non-at-sign characters, at least one
11
+ @ # at-sign
12
+ [^\s.@] # non-at-sign and non-period character
13
+ [^\s@]* # 0 or more non-at-sign characters, accepts any number of periods
14
+ \. # period
15
+ [^\s@]* # 0 or more non-at-sign characters, accepts any number of periods
16
+ [^\s.@] # non-at-sign and non-period character
17
+ \z/x
18
+
19
+ validates :email, format: { with: EMAIL_REGEX }, presence: true
20
+ validates :message, presence: true
21
+ validates :name, presence: { if: proc { SolidusContactUs::Config.require_name } }
22
+ validates :subject, presence: { if: proc { SolidusContactUs::Config.require_subject } }
23
+
24
+ def initialize(attributes = {})
25
+ [:email, :message, :name, :subject].each do |attribute|
26
+ send("#{attribute}=", attributes[attribute]) if attributes && attributes.key?(attribute)
27
+ end
28
+ end
29
+
30
+ def save
31
+ if valid?
32
+ Spree::ContactUs::ContactMailer.contact_email(self).deliver_now
33
+ return true
34
+ end
35
+ false
36
+ end
37
+
38
+ def persisted?
39
+ false
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ if SolidusContactUs::Config.link_on_footer
4
+ Deface::Override.new(virtual_path: 'spree/shared/_footer',
5
+ name: 'contact_us_in_footer',
6
+ insert_bottom: '#footer-right',
7
+ text: "<p class='<%= (request.fullpath.gsub('//','/') == '/contact-us') ? 'current' : 'not'%>'><%= link_to t('spree.contact_us_title'), '/contact-us' %></p>")
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ if SolidusContactUs::Config.link_on_header
4
+ Deface::Override.new(virtual_path: 'spree/shared/_nav_bar',
5
+ name: 'contact_us_in_header',
6
+ insert_bottom: 'nav#top-nav-bar ul#nav-bar:first-child',
7
+ text: "<li class='<%= (request.fullpath.gsub('//','/') == '/contact-us') ? 'active' : ''%>'><%= link_to t('spree.contact_us_title'), '/contact-us' %></li>")
8
+ end
@@ -0,0 +1,3 @@
1
+ <p><%= @contact.message %></p>
2
+ <p>---------------------</p>
3
+ <p><%= SolidusContactUs::Config.require_name ? t('spree.sent_by_name', email: @contact.email, name: @contact.name) : t('spree.sent_by_contact_form', email: @contact.email) %></p>
@@ -0,0 +1,4 @@
1
+ <%= @contact.message %>
2
+
3
+ -------------------------------------
4
+ <%= SolidusContactUs::Config.require_name ? t('spree.sent_by_name', email: @contact.email, name: @contact.name) : t('spree.sent_by_contact_form', email: @contact.email) %>
@@ -0,0 +1,25 @@
1
+ <div class='inner' data-hook='contact_inner'>
2
+ <% if SolidusContactUs::Config.require_name %>
3
+ <div class='field' id='contact_name'>
4
+ <%= f.label :name %>
5
+ <%= f.text_field :name, class: 'required' %>
6
+ </div>
7
+ <% end %>
8
+
9
+ <div class='field field-required' id='contact_email'>
10
+ <%= f.label :email %>
11
+ <%= f.email_field :email, class: 'required email', required: true %>
12
+ </div>
13
+
14
+ <% if SolidusContactUs::Config.require_subject %>
15
+ <div class='field field-required' id='contact_subject'>
16
+ <%= f.label :subject %>
17
+ <%= f.text_field :subject, class: 'required', required: true %>
18
+ </div>
19
+ <% end %>
20
+
21
+ <div class='field field-required' id='contact_message'>
22
+ <%= f.label :message %>
23
+ <%= f.text_area :message, class: 'required', required: true %>
24
+ </div>
25
+ </div>
@@ -0,0 +1,32 @@
1
+ <% content_for :sidebar do %>
2
+ <% if 'products' == @current_controller && @taxon %>
3
+ <%= render partial: 'spree/shared/filters' %>
4
+ <% elsif !(@taxonomies.nil?) %>
5
+ <%= render partial: 'spree/shared/taxonomies' %>
6
+ <% end %>
7
+ <% end %>
8
+
9
+ <div class='col-md-6 col-md-offset-3'>
10
+ <div class='panel panel-default'>
11
+ <div class='panel-heading'>
12
+ <h3 class='panel-title'>
13
+ <%= t('spree.contact_us_title') %>
14
+ </h3>
15
+ </div>
16
+
17
+ <div class='panel-body'>
18
+ <%= render 'spree/shared/error_messages', target: @contact %>
19
+
20
+ <%= form_for @contact, url: contacts_path, html: { id: 'new_contact_us_contact', novalidate: '' } do |f| %>
21
+ <fieldset>
22
+ <div class='inner'>
23
+ <%= render partial: 'form', locals: { f: f } %>
24
+ </div>
25
+
26
+ <%= f.submit t('spree.submit'), alt: t('spree.submit'),
27
+ id: 'contact_us_contact_submit', title: t('spree.submit') %>
28
+ </fieldset>
29
+ <% end %>
30
+ </div>
31
+ </div>
32
+ </div>
@@ -0,0 +1,18 @@
1
+ en:
2
+ spree:
3
+ activemodel:
4
+ attributes:
5
+ contact_us/contact:
6
+ name: "Name"
7
+ email: "Email"
8
+ message: "Message"
9
+ subject: "Subject"
10
+ contact_us_title: "Contact Us"
11
+ sent_by_contact_form: "Sent by contact form from %{email}"
12
+ sent_by_name: "Sent by %{name} from %{email}"
13
+ subject: "Contact Us message from %{email}"
14
+ submit: "Submit"
15
+
16
+ contact_us:
17
+ notices:
18
+ success: "Contact email was successfully sent."
@@ -0,0 +1,18 @@
1
+ es:
2
+ spree:
3
+ activemodel:
4
+ attributes:
5
+ contact_us/contact:
6
+ name: "Nombre"
7
+ email: "Email"
8
+ message: "Mensaje"
9
+ subject: "Asunto"
10
+ contact_us_title: "Contacto"
11
+ sent_by_contact_form: "Enviado por el formulario de contacto desde %{email}"
12
+ sent_by_name: "Enviado por %{name} desde %{email}"
13
+ subject: "Mensaje de contacto desde %{email}"
14
+ submit: "Enviar"
15
+
16
+ contact_us:
17
+ notices:
18
+ success: "El mensaje de contacto se ha enviado correctamente."
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ Spree::Core::Engine.routes.draw do
4
+ resources :contacts, controller: 'contact_us/contacts', only: [:new, :create]
5
+ get 'contact-us', to: 'contact_us/contacts#new', as: :contact_us
6
+ end
@@ -0,0 +1,30 @@
1
+ module SolidusContactUs
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ class_option :auto_run_migrations, type: :boolean, default: false
5
+
6
+ def add_javascripts
7
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/solidus_contact_us\n"
8
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/solidus_contact_us\n"
9
+ end
10
+
11
+ def add_stylesheets
12
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/solidus_contact_us\n", before: /\*\//, verbose: true
13
+ inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/solidus_contact_us\n", before: /\*\//, verbose: true
14
+ end
15
+
16
+ def add_migrations
17
+ run 'bundle exec rake railties:install:migrations FROM=solidus_contact_us'
18
+ end
19
+
20
+ def run_migrations
21
+ run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]'))
22
+ if run_migrations
23
+ run 'bundle exec rake db:migrate'
24
+ else
25
+ puts 'Skipping rake db:migrate, don\'t forget to run it!'
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'solidus_core'
4
+ require 'solidus_support'
5
+ require 'deface'
6
+ require 'solidus_contact_us/configuration'
7
+ require 'solidus_contact_us/engine'
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusContactUs
4
+ class Configuration < Spree::Preferences::Configuration
5
+ preference :mailer_from, :string, default: ''
6
+ preference :require_name, :boolean, default: false
7
+ preference :require_subject, :boolean, default: false
8
+ preference :contact_tracking_message, :string, default: nil
9
+ preference :link_on_header, :boolean, default: true
10
+ preference :link_on_footer, :boolean, default: true
11
+ end
12
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusContactUs
4
+ class Engine < Rails::Engine
5
+ isolate_namespace Spree
6
+ engine_name 'solidus_contact_us'
7
+
8
+ # use rspec for tests
9
+ config.generators do |g|
10
+ g.test_framework :rspec
11
+ end
12
+
13
+ config.autoload_paths += %W(#{config.root}/lib)
14
+
15
+ initializer 'solidus_contact_us.environment', before: :load_config_initializers do
16
+ SolidusContactUs::Config = SolidusContactUs::Configuration.new
17
+ end
18
+
19
+ def self.activate
20
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
21
+ Rails.configuration.cache_classes ? require(c) : load(c)
22
+ end
23
+ end
24
+
25
+ config.to_prepare(&method(:activate).to_proc)
26
+ end
27
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ FactoryBot.define do
4
+ # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
5
+ #
6
+ # Example adding this to your spec_helper will load these Factories for use:
7
+ # require 'solidus_contact_us/factories'
8
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusContactUs
4
+ VERSION = '1.0.0'
5
+ end
metadata ADDED
@@ -0,0 +1,303 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solidus_contact_us
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jonathan Tapia
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-07-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: solidus_core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '2.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '2.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: solidus_auth_devise
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '2.2'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '3'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '2.2'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '3'
53
+ - !ruby/object:Gem::Dependency
54
+ name: solidus_support
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ - !ruby/object:Gem::Dependency
68
+ name: deface
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '1.0'
74
+ type: :runtime
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '1.0'
81
+ - !ruby/object:Gem::Dependency
82
+ name: capybara
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: capybara-screenshot
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ - !ruby/object:Gem::Dependency
110
+ name: poltergeist
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: database_cleaner
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ - !ruby/object:Gem::Dependency
138
+ name: factory_bot
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ - !ruby/object:Gem::Dependency
152
+ name: ffaker
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ - !ruby/object:Gem::Dependency
166
+ name: puma
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ - !ruby/object:Gem::Dependency
180
+ name: rspec-rails
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ - !ruby/object:Gem::Dependency
194
+ name: rubocop
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: 0.49.0
200
+ type: :development
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: 0.49.0
207
+ - !ruby/object:Gem::Dependency
208
+ name: rubocop-rspec
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - '='
212
+ - !ruby/object:Gem::Version
213
+ version: 1.4.0
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - '='
219
+ - !ruby/object:Gem::Version
220
+ version: 1.4.0
221
+ - !ruby/object:Gem::Dependency
222
+ name: simplecov
223
+ requirement: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ type: :development
229
+ prerelease: false
230
+ version_requirements: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: '0'
235
+ - !ruby/object:Gem::Dependency
236
+ name: sqlite3
237
+ requirement: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ type: :development
243
+ prerelease: false
244
+ version_requirements: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - ">="
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
249
+ description: Reworked the contact_us gem to add a basic contact us form to Spree.
250
+ email:
251
+ executables: []
252
+ extensions: []
253
+ extra_rdoc_files: []
254
+ files:
255
+ - LICENSE
256
+ - README.md
257
+ - Rakefile
258
+ - app/assets/javascripts/spree/backend/solidus_contact_us.js
259
+ - app/assets/javascripts/spree/frontend/solidus_contact_us.js
260
+ - app/assets/stylesheets/spree/backend/solidus_contact_us.css
261
+ - app/assets/stylesheets/spree/frontend/solidus_contact_us.css
262
+ - app/controllers/spree/contact_us/contacts_controller.rb
263
+ - app/mailers/spree/contact_us/contact_mailer.rb
264
+ - app/models/spree/contact_us/contact.rb
265
+ - app/overrides/add_contact_us_on_footer.rb
266
+ - app/overrides/add_contact_us_on_header.rb
267
+ - app/views/spree/contact_us/contact_mailer/contact_email.html.erb
268
+ - app/views/spree/contact_us/contact_mailer/contact_email.text.plain.erb
269
+ - app/views/spree/contact_us/contacts/_form.html.erb
270
+ - app/views/spree/contact_us/contacts/new.html.erb
271
+ - config/locales/en.yml
272
+ - config/locales/es.yml
273
+ - config/routes.rb
274
+ - lib/generators/solidus_contact_us/install/install_generator.rb
275
+ - lib/solidus_contact_us.rb
276
+ - lib/solidus_contact_us/configuration.rb
277
+ - lib/solidus_contact_us/engine.rb
278
+ - lib/solidus_contact_us/factories.rb
279
+ - lib/solidus_contact_us/version.rb
280
+ homepage: http://github.com/jtapia/solidus_contact_us
281
+ licenses: []
282
+ metadata: {}
283
+ post_install_message:
284
+ rdoc_options: []
285
+ require_paths:
286
+ - lib
287
+ required_ruby_version: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - ">="
290
+ - !ruby/object:Gem::Version
291
+ version: '2.2'
292
+ required_rubygems_version: !ruby/object:Gem::Requirement
293
+ requirements:
294
+ - - ">="
295
+ - !ruby/object:Gem::Version
296
+ version: '0'
297
+ requirements: []
298
+ rubyforge_project:
299
+ rubygems_version: 2.7.6
300
+ signing_key:
301
+ specification_version: 4
302
+ summary: Reworked the contact_us gem to add a basic contact us form to Spree.
303
+ test_files: []