Skip to content

Commit ea0668d

Browse files
committed
first commit
0 parents  commit ea0668d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+10181
-0
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.bundle
2+
db/*.sqlite3
3+
log/*.log
4+
tmp/

Gemfile

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
source 'http://rubygems.org'
2+
3+
gem 'rails', '3.0.4'
4+
5+
# Bundle edge Rails instead:
6+
# gem 'rails', :git => 'git://github.com/rails/rails.git'
7+
8+
gem 'mysql2'
9+
10+
# Use unicorn as the web server
11+
# gem 'unicorn'
12+
13+
# Deploy with Capistrano
14+
# gem 'capistrano'
15+
16+
# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
17+
# gem 'ruby-debug'
18+
# gem 'ruby-debug19'
19+
20+
# Bundle the extra gems:
21+
# gem 'bj'
22+
# gem 'nokogiri'
23+
# gem 'sqlite3-ruby', :require => 'sqlite3'
24+
# gem 'aws-s3', :require => 'aws/s3'
25+
26+
# Bundle gems for the local environment. Make sure to
27+
# put test-only gems in this group so their generators
28+
# and rake tasks are available in development mode:
29+
# group :development, :test do
30+
# gem 'webrat'
31+
# end

Gemfile.lock

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
GEM
2+
remote: http://rubygems.org/
3+
specs:
4+
abstract (1.0.0)
5+
actionmailer (3.0.4)
6+
actionpack (= 3.0.4)
7+
mail (~> 2.2.15)
8+
actionpack (3.0.4)
9+
activemodel (= 3.0.4)
10+
activesupport (= 3.0.4)
11+
builder (~> 2.1.2)
12+
erubis (~> 2.6.6)
13+
i18n (~> 0.4)
14+
rack (~> 1.2.1)
15+
rack-mount (~> 0.6.13)
16+
rack-test (~> 0.5.7)
17+
tzinfo (~> 0.3.23)
18+
activemodel (3.0.4)
19+
activesupport (= 3.0.4)
20+
builder (~> 2.1.2)
21+
i18n (~> 0.4)
22+
activerecord (3.0.4)
23+
activemodel (= 3.0.4)
24+
activesupport (= 3.0.4)
25+
arel (~> 2.0.2)
26+
tzinfo (~> 0.3.23)
27+
activeresource (3.0.4)
28+
activemodel (= 3.0.4)
29+
activesupport (= 3.0.4)
30+
activesupport (3.0.4)
31+
arel (2.0.8)
32+
builder (2.1.2)
33+
erubis (2.6.6)
34+
abstract (>= 1.0.0)
35+
i18n (0.5.0)
36+
mail (2.2.15)
37+
activesupport (>= 2.3.6)
38+
i18n (>= 0.4.0)
39+
mime-types (~> 1.16)
40+
treetop (~> 1.4.8)
41+
mime-types (1.16)
42+
mysql2 (0.2.6)
43+
polyglot (0.3.1)
44+
rack (1.2.1)
45+
rack-mount (0.6.13)
46+
rack (>= 1.0.0)
47+
rack-test (0.5.7)
48+
rack (>= 1.0)
49+
rails (3.0.4)
50+
actionmailer (= 3.0.4)
51+
actionpack (= 3.0.4)
52+
activerecord (= 3.0.4)
53+
activeresource (= 3.0.4)
54+
activesupport (= 3.0.4)
55+
bundler (~> 1.0)
56+
railties (= 3.0.4)
57+
railties (3.0.4)
58+
actionpack (= 3.0.4)
59+
activesupport (= 3.0.4)
60+
rake (>= 0.8.7)
61+
thor (~> 0.14.4)
62+
rake (0.8.7)
63+
thor (0.14.6)
64+
treetop (1.4.9)
65+
polyglot (>= 0.3.1)
66+
tzinfo (0.3.24)
67+
68+
PLATFORMS
69+
ruby
70+
71+
DEPENDENCIES
72+
mysql2
73+
rails (= 3.0.4)

README

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
== ROUlette
2+
3+
1. Install rails
4+
5+
2. Configure mysql connection and create db
6+
7+
3. Create Game model
8+
rails generate model Game
9+
10+
4. Create migration
11+
add to generated migration one field:
12+
t.integer :number
13+
14+
rake db:migrate
15+
16+
5. Create controller
17+
rails generate controller Games
18+
19+
and put here " respond_to :html, :xml, :json"
20+
to support different output types
21+
22+
6. Configure routes:
23+
resources :games
24+
root :to => "games#index"
25+
26+
7. Create view
27+
28+
8. Create helper to convert -1 value yo '00' string.
29+
30+
9. run 'rackup'

Rakefile

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Add your own tasks in files placed in lib/tasks ending in .rake,
2+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3+
4+
require File.expand_path('../config/application', __FILE__)
5+
require 'rake'
6+
7+
Rou::Application.load_tasks
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class ApplicationController < ActionController::Base
2+
protect_from_forgery
3+
end

app/controllers/games_controller.rb

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
class GamesController < ApplicationController
2+
3+
respond_to :html, :xml, :json
4+
5+
# create new number and go to index
6+
def create
7+
session[:new_number] = play_roulette
8+
Game.new(:number => session[:new_number]).save
9+
10+
redirect_to games_path
11+
end
12+
13+
14+
def index
15+
#getting last generated number from session after redirect and remove value from session
16+
@new_number = session[:new_number]
17+
session[:new_number] = nil
18+
19+
# display last 10 result
20+
@games = Game.order("created_at DESC").limit(10)
21+
respond_with(@games)
22+
end
23+
24+
25+
def play_roulette
26+
return rand(38)-1
27+
end
28+
29+
end

app/helpers/application_helper.rb

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module ApplicationHelper
2+
end

app/helpers/games_helper.rb

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module GamesHelper
2+
def format_roulette_num(num)
3+
return (num == -1) ? '00' : num.to_s
4+
end
5+
6+
end

app/models/game.rb

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class Game < ActiveRecord::Base
2+
end

app/views/games/index.html.erb

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<h3>Play a Roulette</h3>
2+
<p><%= link_to "spin the wheel", games_path, :method => :post %></p>
3+
<% if (@new_number != nil)%>
4+
<%= image_tag "#{format_roulette_num(@new_number)}.jpg", :alt => "Click to play" %>
5+
<p>New Result is <%=@new_number %> !</p>
6+
<% else %>
7+
<%= image_tag "table.jpg", :alt => "Click to play" %>
8+
<% end%>
9+
<h3>Last 10 Results:</h3>
10+
<% @games.each do |game| %>
11+
<p><%=format_roulette_num(game.number)%> - <%= time_ago_in_words(game.created_at) %> ago</p>
12+
<% end %>
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>Rou</title>
5+
<%= stylesheet_link_tag :all %>
6+
<%= javascript_include_tag :defaults %>
7+
<%= csrf_meta_tag %>
8+
</head>
9+
<body>
10+
11+
<%= yield %>
12+
13+
</body>
14+
</html>

config.ru

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# This file is used by Rack-based servers to start the application.
2+
3+
require ::File.expand_path('../config/environment', __FILE__)
4+
run Rou::Application

config/application.rb

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
require File.expand_path('../boot', __FILE__)
2+
3+
require 'rails/all'
4+
5+
# If you have a Gemfile, require the gems listed there, including any gems
6+
# you've limited to :test, :development, or :production.
7+
Bundler.require(:default, Rails.env) if defined?(Bundler)
8+
9+
module Rou
10+
class Application < Rails::Application
11+
# Settings in config/environments/* take precedence over those specified here.
12+
# Application configuration should go into files in config/initializers
13+
# -- all .rb files in that directory are automatically loaded.
14+
15+
# Custom directories with classes and modules you want to be autoloadable.
16+
# config.autoload_paths += %W(#{config.root}/extras)
17+
18+
# Only load the plugins named here, in the order given (default is alphabetical).
19+
# :all can be used as a placeholder for all plugins not explicitly named.
20+
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
21+
22+
# Activate observers that should always be running.
23+
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
24+
25+
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
26+
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
27+
# config.time_zone = 'Central Time (US & Canada)'
28+
29+
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
30+
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
31+
# config.i18n.default_locale = :de
32+
33+
# JavaScript files you want as :defaults (application.js is always included).
34+
# config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
35+
36+
# Configure the default encoding used in templates for Ruby 1.9.
37+
config.encoding = "utf-8"
38+
39+
# Configure sensitive parameters which will be filtered from the log file.
40+
config.filter_parameters += [:password]
41+
end
42+
end

config/boot.rb

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
require 'rubygems'
2+
3+
# Set up gems listed in the Gemfile.
4+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
5+
6+
require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])

config/database.yml

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# SQLite version 3.x
2+
# gem install sqlite3-ruby (not necessary on OS X Leopard)
3+
development:
4+
adapter: mysql2
5+
database: rou
6+
host: localhost
7+
username: root
8+
password:
9+
pool: 10
10+
timeout: 5000
11+
12+
# Warning: The database defined as "test" will be erased and
13+
# re-generated from your development database when you run "rake".
14+
# Do not set this db to the same as development or production.
15+
test:
16+
adapter: mysql2
17+
database: rou
18+
host: localhost
19+
username: root
20+
password:
21+
pool: 10
22+
timeout: 5000
23+
24+
production:
25+
adapter: mysql2
26+
database: rou
27+
host: localhost
28+
username: root
29+
password:
30+
pool: 10
31+
timeout: 5000

config/environment.rb

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Load the rails application
2+
require File.expand_path('../application', __FILE__)
3+
4+
# Initialize the rails application
5+
Rou::Application.initialize!

config/environments/development.rb

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
Rou::Application.configure do
2+
# Settings specified here will take precedence over those in config/application.rb
3+
4+
# In the development environment your application's code is reloaded on
5+
# every request. This slows down response time but is perfect for development
6+
# since you don't have to restart the webserver when you make code changes.
7+
config.cache_classes = false
8+
9+
# Log error messages when you accidentally call methods on nil.
10+
config.whiny_nils = true
11+
12+
# Show full error reports and disable caching
13+
config.consider_all_requests_local = true
14+
config.action_view.debug_rjs = true
15+
config.action_controller.perform_caching = false
16+
17+
# Don't care if the mailer can't send
18+
config.action_mailer.raise_delivery_errors = false
19+
20+
# Print deprecation notices to the Rails logger
21+
config.active_support.deprecation = :log
22+
23+
# Only use best-standards-support built into browsers
24+
config.action_dispatch.best_standards_support = :builtin
25+
end
26+

config/environments/production.rb

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
Rou::Application.configure do
2+
# Settings specified here will take precedence over those in config/application.rb
3+
4+
# The production environment is meant for finished, "live" apps.
5+
# Code is not reloaded between requests
6+
config.cache_classes = true
7+
8+
# Full error reports are disabled and caching is turned on
9+
config.consider_all_requests_local = false
10+
config.action_controller.perform_caching = true
11+
12+
# Specifies the header that your server uses for sending files
13+
config.action_dispatch.x_sendfile_header = "X-Sendfile"
14+
15+
# For nginx:
16+
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
17+
18+
# If you have no front-end server that supports something like X-Sendfile,
19+
# just comment this out and Rails will serve the files
20+
21+
# See everything in the log (default is :info)
22+
# config.log_level = :debug
23+
24+
# Use a different logger for distributed setups
25+
# config.logger = SyslogLogger.new
26+
27+
# Use a different cache store in production
28+
# config.cache_store = :mem_cache_store
29+
30+
# Disable Rails's static asset server
31+
# In production, Apache or nginx will already do this
32+
config.serve_static_assets = false
33+
34+
# Enable serving of images, stylesheets, and javascripts from an asset server
35+
# config.action_controller.asset_host = "http://assets.example.com"
36+
37+
# Disable delivery errors, bad email addresses will be ignored
38+
# config.action_mailer.raise_delivery_errors = false
39+
40+
# Enable threaded mode
41+
# config.threadsafe!
42+
43+
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
44+
# the I18n.default_locale when a translation can not be found)
45+
config.i18n.fallbacks = true
46+
47+
# Send deprecation notices to registered listeners
48+
config.active_support.deprecation = :notify
49+
end

0 commit comments

Comments
 (0)