slim_fast 0.0.1

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.
Files changed (120) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.md +136 -0
  3. data/Rakefile +40 -0
  4. data/app/assets/javascripts/errors.js +2 -0
  5. data/app/assets/stylesheets/errors.css +4 -0
  6. data/app/controllers/errors_controller.rb +4 -0
  7. data/app/controllers/expansions_controller.rb +84 -0
  8. data/app/controllers/short_domains_controller.rb +85 -0
  9. data/app/controllers/short_urls_controller.rb +115 -0
  10. data/app/helpers/errors_helper.rb +2 -0
  11. data/app/helpers/slim_fast/application_helper.rb +4 -0
  12. data/app/helpers/slim_fast/expansions_helper.rb +4 -0
  13. data/app/helpers/slim_fast/short_domains_helper.rb +4 -0
  14. data/app/helpers/slim_fast/short_urls_helper.rb +4 -0
  15. data/app/models/expansion.rb +6 -0
  16. data/app/models/short_domain.rb +6 -0
  17. data/app/models/short_url.rb +35 -0
  18. data/app/views/errors/invalid_code.html.erb +2 -0
  19. data/app/views/expansions/_form.html.erb +45 -0
  20. data/app/views/expansions/edit.html.erb +5 -0
  21. data/app/views/expansions/index.html.erb +43 -0
  22. data/app/views/expansions/new.html.erb +5 -0
  23. data/app/views/expansions/show.html.erb +42 -0
  24. data/app/views/shared/_slim_fast_navigation.html.erb +11 -0
  25. data/app/views/short_domains/_form.html.erb +26 -0
  26. data/app/views/short_domains/edit.html.erb +5 -0
  27. data/app/views/short_domains/index.html.erb +38 -0
  28. data/app/views/short_domains/new.html.erb +5 -0
  29. data/app/views/short_domains/show.html.erb +27 -0
  30. data/app/views/short_urls/_form.html.erb +61 -0
  31. data/app/views/short_urls/_short_urls_table.html.erb +24 -0
  32. data/app/views/short_urls/edit.html.erb +5 -0
  33. data/app/views/short_urls/index.html.erb +19 -0
  34. data/app/views/short_urls/new.html.erb +5 -0
  35. data/app/views/short_urls/show.html.erb +77 -0
  36. data/config/routes.rb +17 -0
  37. data/db/migrate/20121004232924_create_slim_fast_short_domains.rb +10 -0
  38. data/db/migrate/20121004234409_create_slim_fast_short_urls.rb +22 -0
  39. data/db/migrate/20121004234536_create_slim_fast_expansions.rb +15 -0
  40. data/lib/slim_fast.rb +4 -0
  41. data/lib/slim_fast/engine.rb +5 -0
  42. data/lib/slim_fast/version.rb +3 -0
  43. data/lib/tasks/slim_fast_tasks.rake +4 -0
  44. data/test/dummy/README.rdoc +261 -0
  45. data/test/dummy/Rakefile +7 -0
  46. data/test/dummy/app/assets/javascripts/application.js +15 -0
  47. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  48. data/test/dummy/app/controllers/application_controller.rb +3 -0
  49. data/test/dummy/app/helpers/application_helper.rb +2 -0
  50. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  51. data/test/dummy/config.ru +4 -0
  52. data/test/dummy/config/application.rb +59 -0
  53. data/test/dummy/config/boot.rb +10 -0
  54. data/test/dummy/config/database.yml +25 -0
  55. data/test/dummy/config/environment.rb +5 -0
  56. data/test/dummy/config/environments/development.rb +37 -0
  57. data/test/dummy/config/environments/production.rb +67 -0
  58. data/test/dummy/config/environments/test.rb +37 -0
  59. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  60. data/test/dummy/config/initializers/inflections.rb +15 -0
  61. data/test/dummy/config/initializers/mime_types.rb +5 -0
  62. data/test/dummy/config/initializers/secret_token.rb +7 -0
  63. data/test/dummy/config/initializers/session_store.rb +8 -0
  64. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  65. data/test/dummy/config/locales/en.yml +5 -0
  66. data/test/dummy/config/routes.rb +4 -0
  67. data/test/dummy/db/development.sqlite3 +0 -0
  68. data/test/dummy/db/schema.rb +54 -0
  69. data/test/dummy/log/development.log +8542 -0
  70. data/test/dummy/public/404.html +26 -0
  71. data/test/dummy/public/422.html +26 -0
  72. data/test/dummy/public/500.html +25 -0
  73. data/test/dummy/public/favicon.ico +0 -0
  74. data/test/dummy/script/rails +6 -0
  75. data/test/dummy/tmp/cache/assets/C27/920/sprockets%2F1fe65007aa375565a9348253347444f9 +0 -0
  76. data/test/dummy/tmp/cache/assets/C2A/3C0/sprockets%2Fbf216b96e4625134934f18748756b125 +0 -0
  77. data/test/dummy/tmp/cache/assets/C50/380/sprockets%2F26016472b58ca461a65fa6951744c367 +0 -0
  78. data/test/dummy/tmp/cache/assets/C7F/E20/sprockets%2F33d534294133822566119b8d7d5ba6ec +0 -0
  79. data/test/dummy/tmp/cache/assets/CA7/F40/sprockets%2Fb9488f9fbe87445bc38136287d954775 +0 -0
  80. data/test/dummy/tmp/cache/assets/CC2/330/sprockets%2F07797d1858badd3219d57b87954b3d08 +0 -0
  81. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  82. data/test/dummy/tmp/cache/assets/CDF/D90/sprockets%2F0d3e4f0a8075d386a6f5591146a078cd +0 -0
  83. data/test/dummy/tmp/cache/assets/D04/360/sprockets%2Ff72c7ca5bb201c3d8178112b5985cf03 +0 -0
  84. data/test/dummy/tmp/cache/assets/D10/EC0/sprockets%2F265d8e58821c5c1e766ddbf814800ba2 +0 -0
  85. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  86. data/test/dummy/tmp/cache/assets/D38/6D0/sprockets%2F73f8e43a3540a5da61c62fa8b51882ad +0 -0
  87. data/test/dummy/tmp/cache/assets/D4C/060/sprockets%2F696b70f02f9165e9b6b0a874fff13dd5 +0 -0
  88. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  89. data/test/dummy/tmp/cache/assets/D55/CD0/sprockets%2Fceb2e6285ffd7d7545b04757e8e6c357 +0 -0
  90. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  91. data/test/dummy/tmp/cache/assets/D62/500/sprockets%2Ff50e441403287cf5904aad30ffcbe05f +0 -0
  92. data/test/dummy/tmp/cache/assets/D7A/700/sprockets%2F8ec8c9e963236de2b707709ee3bb3f0c +0 -0
  93. data/test/dummy/tmp/cache/assets/DA7/2A0/sprockets%2Fa37ff5e4c7d9d5a93690eeec0c6072a5 +0 -0
  94. data/test/dummy/tmp/cache/assets/DBC/CC0/sprockets%2Fa16ccbfcd61258cc4a59171a1a8d6b1c +0 -0
  95. data/test/dummy/tmp/cache/assets/DC9/490/sprockets%2Ff0b23b7ce1fe240e2916fde55eb9cd51 +0 -0
  96. data/test/dummy/tmp/cache/assets/DCD/0B0/sprockets%2F8e74ddd350631963f4bdeee6cb017cac +0 -0
  97. data/test/dummy/tmp/cache/assets/DCD/3D0/sprockets%2F57b7ab77dabfd46f191fde6d2a45013f +0 -0
  98. data/test/dummy/tmp/cache/assets/DDA/BA0/sprockets%2F956c26dfdede717f68bac19770ee24aa +0 -0
  99. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  100. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  101. data/test/dummy/tmp/cache/assets/E08/650/sprockets%2F5bee8a4b599a4fec8f50da484da0f7b6 +0 -0
  102. data/test/dummy/tmp/cache/assets/E29/DE0/sprockets%2Fef93d515dc6a6f05fee3a79e4bda1ab0 +0 -0
  103. data/test/fixtures/slim_fast/expansions.yml +19 -0
  104. data/test/fixtures/slim_fast/short_domains.yml +9 -0
  105. data/test/fixtures/slim_fast/short_urls.yml +33 -0
  106. data/test/functional/errors_controller_test.rb +9 -0
  107. data/test/functional/slim_fast/expansions_controller_test.rb +51 -0
  108. data/test/functional/slim_fast/short_domains_controller_test.rb +51 -0
  109. data/test/functional/slim_fast/short_urls_controller_test.rb +51 -0
  110. data/test/integration/navigation_test.rb +10 -0
  111. data/test/slim_fast_test.rb +7 -0
  112. data/test/test_helper.rb +15 -0
  113. data/test/unit/helpers/errors_helper_test.rb +4 -0
  114. data/test/unit/helpers/slim_fast/expansions_helper_test.rb +6 -0
  115. data/test/unit/helpers/slim_fast/short_domains_helper_test.rb +6 -0
  116. data/test/unit/helpers/slim_fast/short_urls_helper_test.rb +6 -0
  117. data/test/unit/slim_fast/expansion_test.rb +9 -0
  118. data/test/unit/slim_fast/short_domain_test.rb +9 -0
  119. data/test/unit/slim_fast/short_url_test.rb +9 -0
  120. metadata +278 -0
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ </div>
24
+ </body>
25
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,19 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ short_url_id: 1
5
+ domain_id: 1
6
+ request_url: MyString
7
+ referrer_url: MyString
8
+ remote_ip: MyString
9
+ remote_addr: MyString
10
+ user_agent: MyString
11
+
12
+ two:
13
+ short_url_id: 1
14
+ domain_id: 1
15
+ request_url: MyString
16
+ referrer_url: MyString
17
+ remote_ip: MyString
18
+ remote_addr: MyString
19
+ user_agent: MyString
@@ -0,0 +1,9 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ domain: MyString
5
+ is_default: false
6
+
7
+ two:
8
+ domain: MyString
9
+ is_default: false
@@ -0,0 +1,33 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ domain_id: 1
5
+ code: MyString
6
+ destination_url: MyString
7
+ name: MyString
8
+ description: MyText
9
+ expansion_count: 1
10
+ owner_type: MyString
11
+ owner_id: 1
12
+ utm_enabled: false
13
+ utm_source: MyString
14
+ utm_medium: MyString
15
+ utm_campaign: MyString
16
+ utm_term: MyString
17
+ utm_content: MyString
18
+
19
+ two:
20
+ domain_id: 1
21
+ code: MyString
22
+ destination_url: MyString
23
+ name: MyString
24
+ description: MyText
25
+ expansion_count: 1
26
+ owner_type: MyString
27
+ owner_id: 1
28
+ utm_enabled: false
29
+ utm_source: MyString
30
+ utm_medium: MyString
31
+ utm_campaign: MyString
32
+ utm_term: MyString
33
+ utm_content: MyString
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ class ErrorsControllerTest < ActionController::TestCase
4
+ test "should get invalid_code" do
5
+ get :invalid_code
6
+ assert_response :success
7
+ end
8
+
9
+ end
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+
3
+ module SlimFast
4
+ class ExpansionsControllerTest < ActionController::TestCase
5
+ setup do
6
+ @expansion = expansions(:one)
7
+ end
8
+
9
+ test "should get index" do
10
+ get :index
11
+ assert_response :success
12
+ assert_not_nil assigns(:expansions)
13
+ end
14
+
15
+ test "should get new" do
16
+ get :new
17
+ assert_response :success
18
+ end
19
+
20
+ test "should create expansion" do
21
+ assert_difference('Expansion.count') do
22
+ post :create, expansion: { domain_id: @expansion.domain_id, referrer_url: @expansion.referrer_url, remote_addr: @expansion.remote_addr, remote_ip: @expansion.remote_ip, request_url: @expansion.request_url, short_url_id: @expansion.short_url_id, user_agent: @expansion.user_agent }
23
+ end
24
+
25
+ assert_redirected_to expansion_path(assigns(:expansion))
26
+ end
27
+
28
+ test "should show expansion" do
29
+ get :show, id: @expansion
30
+ assert_response :success
31
+ end
32
+
33
+ test "should get edit" do
34
+ get :edit, id: @expansion
35
+ assert_response :success
36
+ end
37
+
38
+ test "should update expansion" do
39
+ put :update, id: @expansion, expansion: { domain_id: @expansion.domain_id, referrer_url: @expansion.referrer_url, remote_addr: @expansion.remote_addr, remote_ip: @expansion.remote_ip, request_url: @expansion.request_url, short_url_id: @expansion.short_url_id, user_agent: @expansion.user_agent }
40
+ assert_redirected_to expansion_path(assigns(:expansion))
41
+ end
42
+
43
+ test "should destroy expansion" do
44
+ assert_difference('Expansion.count', -1) do
45
+ delete :destroy, id: @expansion
46
+ end
47
+
48
+ assert_redirected_to expansions_path
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+
3
+ module SlimFast
4
+ class ShortDomainsControllerTest < ActionController::TestCase
5
+ setup do
6
+ @short_domain = short_domains(:one)
7
+ end
8
+
9
+ test "should get index" do
10
+ get :index
11
+ assert_response :success
12
+ assert_not_nil assigns(:short_domains)
13
+ end
14
+
15
+ test "should get new" do
16
+ get :new
17
+ assert_response :success
18
+ end
19
+
20
+ test "should create short_domain" do
21
+ assert_difference('ShortDomain.count') do
22
+ post :create, short_domain: { domain: @short_domain.domain, is_default: @short_domain.is_default }
23
+ end
24
+
25
+ assert_redirected_to short_domain_path(assigns(:short_domain))
26
+ end
27
+
28
+ test "should show short_domain" do
29
+ get :show, id: @short_domain
30
+ assert_response :success
31
+ end
32
+
33
+ test "should get edit" do
34
+ get :edit, id: @short_domain
35
+ assert_response :success
36
+ end
37
+
38
+ test "should update short_domain" do
39
+ put :update, id: @short_domain, short_domain: { domain: @short_domain.domain, is_default: @short_domain.is_default }
40
+ assert_redirected_to short_domain_path(assigns(:short_domain))
41
+ end
42
+
43
+ test "should destroy short_domain" do
44
+ assert_difference('ShortDomain.count', -1) do
45
+ delete :destroy, id: @short_domain
46
+ end
47
+
48
+ assert_redirected_to short_domains_path
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+
3
+ module SlimFast
4
+ class ShortUrlsControllerTest < ActionController::TestCase
5
+ setup do
6
+ @short_url = short_urls(:one)
7
+ end
8
+
9
+ test "should get index" do
10
+ get :index
11
+ assert_response :success
12
+ assert_not_nil assigns(:short_urls)
13
+ end
14
+
15
+ test "should get new" do
16
+ get :new
17
+ assert_response :success
18
+ end
19
+
20
+ test "should create short_url" do
21
+ assert_difference('ShortUrl.count') do
22
+ post :create, short_url: { code: @short_url.code, description: @short_url.description, destination_url: @short_url.destination_url, domain_id: @short_url.domain_id, expansion_count: @short_url.expansion_count, name: @short_url.name, owner_id: @short_url.owner_id, owner_type: @short_url.owner_type, utm_campaign: @short_url.utm_campaign, utm_content: @short_url.utm_content, utm_enabled: @short_url.utm_enabled, utm_medium: @short_url.utm_medium, utm_source: @short_url.utm_source, utm_term: @short_url.utm_term }
23
+ end
24
+
25
+ assert_redirected_to short_url_path(assigns(:short_url))
26
+ end
27
+
28
+ test "should show short_url" do
29
+ get :show, id: @short_url
30
+ assert_response :success
31
+ end
32
+
33
+ test "should get edit" do
34
+ get :edit, id: @short_url
35
+ assert_response :success
36
+ end
37
+
38
+ test "should update short_url" do
39
+ put :update, id: @short_url, short_url: { code: @short_url.code, description: @short_url.description, destination_url: @short_url.destination_url, domain_id: @short_url.domain_id, expansion_count: @short_url.expansion_count, name: @short_url.name, owner_id: @short_url.owner_id, owner_type: @short_url.owner_type, utm_campaign: @short_url.utm_campaign, utm_content: @short_url.utm_content, utm_enabled: @short_url.utm_enabled, utm_medium: @short_url.utm_medium, utm_source: @short_url.utm_source, utm_term: @short_url.utm_term }
40
+ assert_redirected_to short_url_path(assigns(:short_url))
41
+ end
42
+
43
+ test "should destroy short_url" do
44
+ assert_difference('ShortUrl.count', -1) do
45
+ delete :destroy, id: @short_url
46
+ end
47
+
48
+ assert_redirected_to short_urls_path
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,10 @@
1
+ require 'test_helper'
2
+
3
+ class NavigationTest < ActionDispatch::IntegrationTest
4
+ fixtures :all
5
+
6
+ # test "the truth" do
7
+ # assert true
8
+ # end
9
+ end
10
+
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class SlimFastTest < ActiveSupport::TestCase
4
+ test "truth" do
5
+ assert_kind_of Module, SlimFast
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ # Load fixtures from the engine
13
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
15
+ end
@@ -0,0 +1,4 @@
1
+ require 'test_helper'
2
+
3
+ class ErrorsHelperTest < ActionView::TestCase
4
+ end
@@ -0,0 +1,6 @@
1
+ require 'test_helper'
2
+
3
+ module SlimFast
4
+ class ExpansionsHelperTest < ActionView::TestCase
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ require 'test_helper'
2
+
3
+ module SlimFast
4
+ class ShortDomainsHelperTest < ActionView::TestCase
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ require 'test_helper'
2
+
3
+ module SlimFast
4
+ class ShortUrlsHelperTest < ActionView::TestCase
5
+ end
6
+ end