hyalin 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +79 -0
  3. data/Rakefile +40 -0
  4. data/WTFP-LICENSE +13 -0
  5. data/app/assets/javascripts/hyalin/application.js +15 -0
  6. data/app/assets/javascripts/hyalin/messages.js +2 -0
  7. data/app/assets/stylesheets/hyalin/application.css +13 -0
  8. data/app/assets/stylesheets/hyalin/messages.css +4 -0
  9. data/app/controllers/hyalin/messages_controller.rb +39 -0
  10. data/app/controllers/hyalin_controller.rb +2 -0
  11. data/app/helpers/hyalin/application_helper.rb +4 -0
  12. data/app/helpers/hyalin/messages_helper.rb +4 -0
  13. data/app/mailers/hyalin/postman.rb +16 -0
  14. data/app/models/hyalin/message.rb +30 -0
  15. data/app/views/hyalin/messages/new.html.erb +3 -0
  16. data/app/views/hyalin/messages/show.html.erb +30 -0
  17. data/app/views/hyalin/postman/contact_email.html.erb +0 -0
  18. data/config/locales/contact.en.yml~ +10 -0
  19. data/config/locales/contact.pt-BR.yml~ +28 -0
  20. data/config/locales/hyalin.en.yml +12 -0
  21. data/config/locales/hyalin.pt-BR.yml +27 -0
  22. data/config/routes.rb +5 -0
  23. data/lib/hyalin/engine.rb +7 -0
  24. data/lib/hyalin/tasks/install.rb +31 -0
  25. data/lib/hyalin/tasks/templates/hyalin.rb +24 -0
  26. data/lib/hyalin/version.rb +3 -0
  27. data/lib/hyalin.rb +20 -0
  28. data/lib/tasks/hyalin_tasks.rake +20 -0
  29. data/test/contact_test.rb +7 -0
  30. data/test/dummy/README.rdoc +261 -0
  31. data/test/dummy/Rakefile +7 -0
  32. data/test/dummy/app/assets/javascripts/application.js +15 -0
  33. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  34. data/test/dummy/app/controllers/application_controller.rb +3 -0
  35. data/test/dummy/app/helpers/application_helper.rb +2 -0
  36. data/test/dummy/app/views/layouts/application.html.erb +16 -0
  37. data/test/dummy/config/application.rb +59 -0
  38. data/test/dummy/config/boot.rb +10 -0
  39. data/test/dummy/config/database.yml +25 -0
  40. data/test/dummy/config/environment.rb +5 -0
  41. data/test/dummy/config/environments/development.rb +37 -0
  42. data/test/dummy/config/environments/production.rb +67 -0
  43. data/test/dummy/config/environments/test.rb +37 -0
  44. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  45. data/test/dummy/config/initializers/hyalin.rb +25 -0
  46. data/test/dummy/config/initializers/inflections.rb +15 -0
  47. data/test/dummy/config/initializers/mime_types.rb +5 -0
  48. data/test/dummy/config/initializers/secret_token.rb +7 -0
  49. data/test/dummy/config/initializers/session_store.rb +8 -0
  50. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  51. data/test/dummy/config/locales/en.yml +5 -0
  52. data/test/dummy/config/locales/hyalin.en.yml +9 -0
  53. data/test/dummy/config/locales/hyalin.pt-BR.yml +9 -0
  54. data/test/dummy/config/locales/pt-BR.yml +5 -0
  55. data/test/dummy/config/routes.rb +4 -0
  56. data/test/dummy/config/smtp.rb +8 -0
  57. data/test/dummy/config.ru +4 -0
  58. data/test/dummy/db/development.sqlite3 +0 -0
  59. data/test/dummy/db/migrate/20121026125652_create_contact_messages.contact.rb +14 -0
  60. data/test/dummy/db/schema.rb +26 -0
  61. data/test/dummy/lib/templates/erb/scaffold/_form.html.erb +11 -0
  62. data/test/dummy/public/404.html +26 -0
  63. data/test/dummy/public/422.html +26 -0
  64. data/test/dummy/public/500.html +25 -0
  65. data/test/dummy/public/favicon.ico +0 -0
  66. data/test/dummy/script/rails +6 -0
  67. data/test/dummy/tmp/cache/assets/C76/CA0/sprockets%2F04492789a26cb109fd08120f32ff1307 +0 -0
  68. data/test/dummy/tmp/cache/assets/C8E/890/sprockets%2F676565443f9f41cca678de81659401a2 +0 -0
  69. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  70. data/test/dummy/tmp/cache/assets/D08/830/sprockets%2F54f039918b2063df314a6cc34baa67c8 +0 -0
  71. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  72. data/test/dummy/tmp/cache/assets/D33/940/sprockets%2F3b62cbdb213041c95fb39cdf9185c710 +0 -0
  73. data/test/dummy/tmp/cache/assets/D4A/830/sprockets%2Fa5ac31c959cef2f6b2d38059f8b61936 +0 -0
  74. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  75. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  76. data/test/dummy/tmp/cache/assets/D69/510/sprockets%2F7e7ed465001517b8b90c04c9a6fde3ab +0 -0
  77. data/test/dummy/tmp/cache/assets/D76/230/sprockets%2Fcd6768ac8264eb03f69076ed1e60ce5b +0 -0
  78. data/test/dummy/tmp/cache/assets/D84/4F0/sprockets%2F1081accccf1bec138c1331c5dec15096 +0 -0
  79. data/test/dummy/tmp/cache/assets/D8B/250/sprockets%2Fe7f5b520dc143452caa91f821a1add9a +0 -0
  80. data/test/dummy/tmp/cache/assets/D98/1B0/sprockets%2Fa3d192d7ac6810ffc5d4e5a56ec461a4 +0 -0
  81. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  82. data/test/dummy/tmp/cache/assets/E03/4F0/sprockets%2F5cd3dfa9f9e6b56078da24d2bd0a5f5f +0 -0
  83. data/test/dummy/tmp/cache/assets/E04/7D0/sprockets%2Fca37bd124077995fba27ee76caef4ced +0 -0
  84. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  85. data/test/dummy/tmp/cache/assets/E3A/370/sprockets%2Fdfa7fbe960d38bb9c1f36f4c0ad9a79e +0 -0
  86. data/test/dummy/tmp/cache/assets/E52/B60/sprockets%2Fe2c2b9e9cbad2cb83d6f1aea1946abf0 +0 -0
  87. data/test/integration/contact/message_test.rb +7 -0
  88. data/test/integration/navigation_test.rb +10 -0
  89. data/test/test_helper.rb +15 -0
  90. metadata +262 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1af9ca218cc248b79ac34cbf8ad6fd240b8a7d5a
4
+ data.tar.gz: b73be750259323ac19526213d9be625020f62f7f
5
+ SHA512:
6
+ metadata.gz: a7c5ade430147b218675dfc30708d87d6a3d7289208052a1d10d0977b6ea43693bdef02613c61e2f70f9e6b29c9a7a94062a17a56d099b32905c4a1049ce7da7
7
+ data.tar.gz: 8dc49731f737ada9179d1e09f53a16bd58c9389454ec0854228388a3457be6326110c9a87b70a528910b5cf246776ccd1b1ebc89c46af77f4805f238917d57ab
data/README.md ADDED
@@ -0,0 +1,79 @@
1
+ ## Hyalin (paper)
2
+
3
+ A Rails 3+ Engine providing a basic contact form.
4
+
5
+ ## Requirements
6
+
7
+ Hyalin requires:
8
+
9
+ * Ruby >= 1.9.3
10
+ * Rails >= 3.0.0
11
+
12
+ It is also recommended to use SimpleForm in order to hook into your apps custom form builders.
13
+ Heavily inspired on [jdutil/contact_us](https://github.com/jdutil/contact_us)
14
+
15
+ ## Installation
16
+
17
+ In your `Gemfile`, add the following dependencies:
18
+
19
+ ```ruby
20
+ gem hyalin', '~> 0.1.0'
21
+ ```
22
+
23
+ From `Rails.root` in your Terminal run:
24
+
25
+ ```shell
26
+ bundle
27
+ bundle exec rake hyalin:install
28
+ ```
29
+
30
+ In `config/initializers/hyalin.rb` modify:
31
+
32
+ ```ruby
33
+ config.mailer_to = "contact@please-change-me.com"
34
+ ```
35
+
36
+ Change to the email address you would like to receive the form submissions at for example:
37
+
38
+ ```ruby
39
+ config.mailer_to = "contact@yourdomain.com"
40
+ ```
41
+
42
+ By default the emails from field will be the email entered by the user to easily reply, but this may not be allowed if your required to verify your sending email addresses.
43
+ You may also specify an email address for the notification emails from field:
44
+
45
+ ```ruby
46
+ config.mailer_from = "dontreply@yourdomain.com"
47
+ ```
48
+
49
+
50
+ ### Views
51
+
52
+ To copy the view files to `app/views/hyalin`, and customize them to suit your needs run:
53
+
54
+ ```shell
55
+ bundle exec rake hyalin:copy_views
56
+ ```
57
+
58
+ ### Locales
59
+
60
+ To copy the locale files to `config/locales/hyalin.*.yml`, and customize them to suit your needs run:
61
+
62
+ ```shell
63
+ bundle exec rake hyalin:copy_locales
64
+ ```
65
+
66
+ Please feel free to submit your own locales so that other users will hopefully find this gem more useful in your language.
67
+
68
+
69
+ ## Usage
70
+
71
+ Visit your website and navigate to `/messages/new` to see the form in action.
72
+
73
+ ## Issues
74
+
75
+ Please report any bugs or feature requests to the Github issues page @
76
+ https://github.com/indefinido/hyalin/issues
77
+
78
+
79
+ This project rocks and uses [WTFP-LICENSE](http://www.wtfpl.net)
data/Rakefile ADDED
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'Hyalin'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
24
+ load 'rails/tasks/engine.rake'
25
+
26
+
27
+
28
+ Bundler::GemHelper.install_tasks
29
+
30
+ require 'rake/testtask'
31
+
32
+ Rake::TestTask.new(:test) do |t|
33
+ t.libs << 'lib'
34
+ t.libs << 'test'
35
+ t.pattern = 'test/**/*_test.rb'
36
+ t.verbose = false
37
+ end
38
+
39
+
40
+ task :default => :test
data/WTFP-LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
2
+ Version 2, December 2004
3
+
4
+ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
5
+
6
+ Everyone is permitted to copy and distribute verbatim or modified
7
+ copies of this license document, and changing it is allowed as long
8
+ as the name is changed.
9
+
10
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
11
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
12
+
13
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
@@ -0,0 +1,15 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // the compiled file.
9
+ //
10
+ // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11
+ // GO AFTER THE REQUIRES BELOW.
12
+ //
13
+ //= require jquery
14
+ //= require jquery_ujs
15
+ //= require_tree .
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,13 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require_self
12
+ *= require_tree .
13
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,39 @@
1
+ require_dependency "hyalin_controller"
2
+
3
+ module Hyalin
4
+ class MessagesController < HyalinController
5
+
6
+ # GET /message/new
7
+ # GET /message/new.json
8
+ def new
9
+ @message = Message.new
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render :json => @message }
14
+ end
15
+ end
16
+
17
+ # POST /messages
18
+ # POST /messages.json
19
+ def create
20
+ @message = Message.new(params[:hyalin_message])
21
+
22
+ respond_to do |format|
23
+ if @message.save
24
+ format.html { redirect_to after_send_path, :notice => t('hyalin.messages.sent_success') }
25
+ format.json { render :json => @message, :status => :created, :location => @message }
26
+ else
27
+ format.html { render_new_action }
28
+ format.json { render :json => {errors: @message.errors}, :status => :unprocessable_entity }
29
+ end
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def after_send_path
36
+ Hyalin.after_sent_redirect_to
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,2 @@
1
+ class HyalinController < ::ApplicationController
2
+ end
@@ -0,0 +1,4 @@
1
+ module Hyalin
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Hyalin
2
+ module MessagesHelper
3
+ end
4
+ end
@@ -0,0 +1,16 @@
1
+ class Hyalin::Postman < ActionMailer::Base
2
+ default :from => Hyalin.mailer_from,
3
+ :subject => I18n.t('hyalin.mailer.hyalin_mail.subject'),
4
+ :to => Hyalin.mailer_to
5
+
6
+ # TODO Create Hyalin.mailer_layout
7
+ layout 'hyalin/postman'
8
+
9
+ def hyalin_email message
10
+ @message = message
11
+
12
+ mail :from => message.email,
13
+ :reply_to => message.email,
14
+ :subject => message.subject
15
+ end
16
+ end
@@ -0,0 +1,30 @@
1
+ module Hyalin
2
+ class Message
3
+ include Mongoid::Document
4
+
5
+ field :body, type: String
6
+ field :email, type: String
7
+ field :name, type: String
8
+ field :phone, type: String
9
+ field :subject, type: String
10
+
11
+ validates :body, :presence => true
12
+
13
+ # TODO rewrite method definition when persisting
14
+ # messages
15
+
16
+ if Hyalin.persist_messages
17
+ validate :persisted?, :message => 'Can\'t update hyalin messages!'
18
+ end
19
+
20
+ def save
21
+ if self.valid?
22
+ Hyalin::Postman.hyalin_email(self).deliver
23
+ super if Hyalin.persist_messages
24
+ return true
25
+
26
+ end
27
+ return false
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ <h1><%= t '.hyalin.message.new.title' %></h1>
2
+
3
+ <h2>Simple hyalin form not supported yet </h2>
@@ -0,0 +1,30 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <p>
4
+ <b>Name:</b>
5
+ <%= @message.name %>
6
+ </p>
7
+
8
+ <p>
9
+ <b>Email:</b>
10
+ <%= @message.email %>
11
+ </p>
12
+
13
+ <p>
14
+ <b>Subject:</b>
15
+ <%= @message.subject %>
16
+ </p>
17
+
18
+ <p>
19
+ <b>Body:</b>
20
+ <%= @message.body %>
21
+ </p>
22
+
23
+ <p>
24
+ <b>Phone:</b>
25
+ <%= @message.phone %>
26
+ </p>
27
+
28
+
29
+ <%= link_to 'Edit', edit_message_path(@message) %> |
30
+ <%= link_to 'Back', messages_path %>
File without changes
@@ -0,0 +1,10 @@
1
+ en:
2
+ contact:
3
+ messages:
4
+ sent_success: Message delivered!
5
+ new: &contact-message
6
+ title: Contact Us
7
+ submit: Send Message
8
+ new_formtastic:
9
+ <<: *contact-message
10
+ new_simple_form:
@@ -0,0 +1,28 @@
1
+ pt-BR:
2
+ activerecord:
3
+ models:
4
+ contact/message:
5
+ one: Mensagem de Contato
6
+ other: Mensagens de Contato
7
+ attributes:
8
+ timestamps: &timestamps
9
+ created_at: Criado Em
10
+ updated_at: Atualizado Em
11
+ contact/message:
12
+ <<: *timestamps
13
+ name: Nome
14
+ body: Mensagem
15
+ contact_email:
16
+ sent_by_name: 'Enviado por:'
17
+ contact:
18
+ messages:
19
+ sent_success: Mensagem enviada!
20
+ new: &contact-message
21
+ title: Contate-nos
22
+ name: Nome
23
+ message: Mensagem
24
+ submit: Enviar Mensagem
25
+ new_formtastic:
26
+ <<: *contact-message
27
+ new_simple_form:
28
+ <<: *contact-message
@@ -0,0 +1,12 @@
1
+ en:
2
+ hyalin:
3
+ messages:
4
+ sent_success: Message delivered!
5
+ new: &hyalin-message
6
+ title: Contact Us
7
+ submit: Send Message
8
+ new_simple_form:
9
+ <<: *hyalin-message
10
+ hyalin_email:
11
+ postman:
12
+ sent_by_name: 'Sent By:'
@@ -0,0 +1,27 @@
1
+ pt-BR:
2
+ activerecord:
3
+ models:
4
+ hyalin/message:
5
+ one: Mensagem de Contato
6
+ other: Mensagens de Contato
7
+ attributes:
8
+ timestamps: &timestamps
9
+ created_at: Criado Em
10
+ updated_at: Atualizado Em
11
+ hyalin/message:
12
+ <<: *timestamps
13
+ name: Nome
14
+ body: Mensagem
15
+ hyalin:
16
+ postman:
17
+ hyalin_email:
18
+ sent_by_name: 'Enviado por:'
19
+ messages:
20
+ sent_success: Mensagem enviada!
21
+ new: &hyalin-message
22
+ title: Contate-nos
23
+ name: Nome
24
+ message: Mensagem
25
+ submit: Enviar Mensagem
26
+ new_simple_form:
27
+ <<: *hyalin-message
data/config/routes.rb ADDED
@@ -0,0 +1,5 @@
1
+ Rails.application.routes.draw do
2
+ scope module: :hyalin do
3
+ resource :messages
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ module Hyalin
2
+ class Engine < ::Rails::Engine
3
+ config.generators do |g|
4
+ g.test_framework :rspec
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,31 @@
1
+ module Hyalin
2
+ module Tasks
3
+ require 'rails/generators'
4
+
5
+ class Install < Rails::Generators::Base
6
+
7
+ def copy_initializer_file
8
+ template 'hyalin.rb', 'config/initializers/hyalin.rb'
9
+ end
10
+
11
+ def copy_locales_files
12
+ directory 'config/locales'
13
+ end
14
+
15
+ def copy_view_files
16
+ unless self.config[:no_views]
17
+ directory 'app/views/hyalin/messages'
18
+ end
19
+ end
20
+
21
+ private
22
+ def self.add_templates_path!
23
+ current_directory = File.dirname(__FILE__)
24
+ source_paths << File.join(current_directory, 'templates')
25
+ source_paths << File.expand_path(File.join current_directory, '..', '..', '..')
26
+ end
27
+
28
+ add_templates_path!
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,24 @@
1
+ # Use this hook to configure hyalin mailer.
2
+ Hyalin.setup do |config|
3
+
4
+ # ==> Mailer Configuration
5
+
6
+ # Configure the e-mail address which email notifications should be sent from. If emails must be sent from a verified email address you may set it here.
7
+ # Example:
8
+ # config.mailer_from = "hyalin@please-change-me.com"
9
+ config.mailer_from = nil
10
+
11
+ # Configure the e-mail address which should receive the hyalin form email notifications.
12
+ config.mailer_to = "hyalin@please-change-me.com"
13
+
14
+ # ==> Controller Configuration
15
+
16
+ # Where to redirect after successufully sending message
17
+ # flash[:notice] will hold the message status
18
+ config.after_sent_redirect_to = :root_path
19
+
20
+ # Store messages on database?
21
+ # You must copy and run migrations
22
+ # rake hyalin:install:migrations
23
+ config.persist_messages = false
24
+ end
@@ -0,0 +1,3 @@
1
+ module Hyalin
2
+ VERSION = "0.1.0"
3
+ end
data/lib/hyalin.rb ADDED
@@ -0,0 +1,20 @@
1
+ module Hyalin
2
+ require "hyalin/engine"
3
+
4
+ # Address contact email notifications are sent from.
5
+ mattr_accessor :mailer_from
6
+
7
+ # Address to send contact email notifications to.
8
+ mattr_accessor :mailer_to
9
+
10
+ # Redirect url after succefully sending message
11
+ mattr_accessor :after_sent_redirect_to
12
+
13
+ # Store messages on database?
14
+ mattr_accessor :persist_messages
15
+
16
+ # Default way to setup
17
+ def self.setup
18
+ yield self
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require File.expand_path('../../hyalin/tasks/install', __FILE__)
2
+
3
+ namespace :hyalin do
4
+ desc "Install hyalin"
5
+ task :install do
6
+ installation = Hyalin::Tasks::Install.new
7
+ installation.copy_initializer_file
8
+ installation.copy_locales_files
9
+ end
10
+
11
+ desc "Copy only locale files (part of install, but useful for updates when only assets are needed)"
12
+ task :copy_locales do
13
+ Hyalin::Tasks::Install.new.copy_locales_files
14
+ end
15
+
16
+ desc "Copy only view files so you can customize them"
17
+ task :copy_views do
18
+ Hyalin::Tasks::Install.new.copy_view_files
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class HyalinTest < ActiveSupport::TestCase
4
+ test "truth" do
5
+ assert_kind_of Module, Hyalin
6
+ end
7
+ end