solidus_contact_us 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []