traco 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/.gitignore +0 -4
  2. data/.rvmrc +1 -1
  3. data/README.markdown +43 -22
  4. data/Rakefile +1 -8
  5. data/lib/traco/class_methods.rb +14 -7
  6. data/lib/traco/instance_methods.rb +3 -4
  7. data/lib/traco/translates.rb +9 -3
  8. data/lib/traco/version.rb +1 -1
  9. data/spec/{dummy/app/models → app}/post.rb +3 -0
  10. data/spec/{dummy/config/locales → app}/sv.yml +0 -0
  11. data/spec/spec_helper.rb +18 -7
  12. data/spec/traco_spec.rb +38 -4
  13. data/traco.gemspec +1 -2
  14. metadata +17 -87
  15. data/spec/dummy/Rakefile +0 -7
  16. data/spec/dummy/app/assets/javascripts/application.js +0 -9
  17. data/spec/dummy/app/assets/stylesheets/application.css +0 -7
  18. data/spec/dummy/app/controllers/application_controller.rb +0 -3
  19. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  20. data/spec/dummy/app/mailers/.gitkeep +0 -0
  21. data/spec/dummy/app/models/.gitkeep +0 -0
  22. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  23. data/spec/dummy/config.ru +0 -4
  24. data/spec/dummy/config/application.rb +0 -45
  25. data/spec/dummy/config/boot.rb +0 -10
  26. data/spec/dummy/config/database.yml +0 -25
  27. data/spec/dummy/config/environment.rb +0 -5
  28. data/spec/dummy/config/environments/development.rb +0 -30
  29. data/spec/dummy/config/environments/production.rb +0 -60
  30. data/spec/dummy/config/environments/test.rb +0 -39
  31. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  32. data/spec/dummy/config/initializers/inflections.rb +0 -10
  33. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  34. data/spec/dummy/config/initializers/secret_token.rb +0 -7
  35. data/spec/dummy/config/initializers/session_store.rb +0 -8
  36. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  37. data/spec/dummy/config/locales/en.yml +0 -5
  38. data/spec/dummy/config/routes.rb +0 -58
  39. data/spec/dummy/db/migrate/20120316101201_create_posts.rb +0 -15
  40. data/spec/dummy/db/schema.rb +0 -28
  41. data/spec/dummy/lib/assets/.gitkeep +0 -0
  42. data/spec/dummy/log/.gitkeep +0 -0
  43. data/spec/dummy/public/404.html +0 -26
  44. data/spec/dummy/public/422.html +0 -26
  45. data/spec/dummy/public/500.html +0 -26
  46. data/spec/dummy/public/favicon.ico +0 -0
  47. data/spec/dummy/script/rails +0 -6
  48. data/spec/dummy/test/fixtures/posts.yml +0 -15
  49. data/spec/dummy/test/unit/post_test.rb +0 -7
data/.gitignore CHANGED
@@ -1,8 +1,4 @@
1
1
  .bundle/
2
- log/*.log
3
2
  Gemfile.lock
4
3
  pkg/
5
4
  *.gem
6
- spec/dummy/db/*.sqlite3
7
- spec/dummy/log/*.log
8
- spec/dummy/tmp/
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm ruby-1.9.3-p0@traco --create
1
+ rvm ruby-1.9.3-p0 --create
@@ -7,26 +7,24 @@ Inspired by Iain Hecker's [translatable_columns](https://github.com/iain/transla
7
7
  To store translations outside the model, see Sven Fuchs' [globalize3](https://github.com/svenfuchs/globalize3).
8
8
 
9
9
 
10
- ## Installation
11
-
12
- Add this to your `Gemfile` if you use Bundler 1.1+:
13
-
14
- gem 'traco', github: 'barsoom/traco'
15
-
16
- Or with an earlier version of Bundler:
17
-
18
- gem 'traco', git: 'git://github.com/barsoom/traco.git'
19
-
20
- Then run
10
+ ## Usage
21
11
 
22
- bundle
12
+ Say you want `Post#title` and `Post#body` to support both English and Swedish values.
23
13
 
24
- to install it.
14
+ Write a migration to get database columns with locale suffixes, e.g. `title_sv` and `title_en`, like:
25
15
 
16
+ class CreatePosts < ActiveRecord::Migration
17
+ def change
18
+ create_table :posts do |t|
19
+ t.string :title_sv, :title_en
20
+ t.text :body_sv, :body_en
26
21
 
27
- ## Usage
22
+ t.timestamps
23
+ end
24
+ end
25
+ end
28
26
 
29
- The columns to translate should exist in the database with locale suffixes, e.g. `title_sv` and `title_en`.
27
+ Don't create a column named `title` without a suffix, since Traco will define a method with that name.
30
28
 
31
29
  Declare these columns in the model:
32
30
 
@@ -34,20 +32,43 @@ Declare these columns in the model:
34
32
  translates :title, :body
35
33
  end
36
34
 
37
- You can still use the `title_sv` accessors in forms and other code, but you also get:
35
+ You can still use your accessors like `title_sv` and `title_sv=` in forms, validations and other code, but you also get:
36
+
37
+ `#title`: Shows the title in the current locale. If blank, falls back to default locale, then to any locale.
38
38
 
39
- `#title`: Show the title in the current locale. If blank, fall back to default locale, then to any locale.
39
+ `#title=`: Assigns the title to the column for the current locale, if present. Raises if the column doesn't exist.
40
40
 
41
- `#title=`: Assign the title to the column for the current locale, if present. Raise if the column doesn't exist.
41
+ `.human_attribute_name(:title_sv)`: Extends this standard method to return "Title (Swedish)" if you have a translation key `i18n.languages.sv = "Swedish"` and "Title (SV)" otherwise. Rails uses this method to build validation error messages and form labels.
42
42
 
43
- `.human_attribute_name(:title_sv)`: Returns "Title (Swedish)" if you have a translation key `i18n.languages.sv = "Swedish"` and "Title (SV)" otherwise.
43
+ `.translatable_columns`: Returns an array like `[:title, :body]`.
44
44
 
45
- `.locales_for_column(:title)`: Returns an array like `[:sv, :en]` sorted with default locale first and then alphabetically. Suitable for looping in forms.
45
+ `.locales_for_column(:title)`: Returns an array like `[:sv, :en]` sorted with default locale first and then alphabetically. Suitable for looping in forms:
46
+
47
+ <% Post.locales_for_column(:title).each do |locale| %>
48
+ <p>
49
+ <%= form.label "title_#{locale}" %>
50
+ <%= form.text_field "title_#{locale}" %>
51
+ </p>
52
+ <% end %>
46
53
 
47
54
  And the equivalent methods for `body`, of course.
48
55
 
49
- Note that ActiveRecord validations check against the reader method, so if you validate for presence of `title`, it will check in the current locale.
50
- You can validate against the localized columns like `title_sv` if you want.
56
+
57
+ ## Installation
58
+
59
+ Add this to your `Gemfile` if you use Bundler 1.1+:
60
+
61
+ gem 'traco', github: 'barsoom/traco'
62
+
63
+ Or with an earlier version of Bundler:
64
+
65
+ gem 'traco', git: 'git://github.com/barsoom/traco.git'
66
+
67
+ Then run
68
+
69
+ bundle
70
+
71
+ to install it.
51
72
 
52
73
 
53
74
  ## Running the tests
data/Rakefile CHANGED
@@ -3,11 +3,4 @@ require "rspec/core/rake_task"
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :prepare do
7
- unless File.exists?("spec/dummy/db/test.sqlite3")
8
- puts "Setting up sqlite test database..."
9
- system("cd spec/dummy; rake db:migrate db:test:prepare") || exit(1)
10
- end
11
- end
12
-
13
- task :default => [ :prepare, :spec ]
6
+ task :default => :spec
@@ -4,18 +4,21 @@ module Traco
4
4
  def locales_for_column(column)
5
5
  column_names.grep(/\A#{column}_([a-z]{2})\z/) {
6
6
  $1.to_sym
7
- }.sort_by { |x|
8
- x == I18n.default_locale ? :"" : x
7
+ }.sort_by { |locale|
8
+ if locale == I18n.default_locale
9
+ :"0"
10
+ else
11
+ locale
12
+ end
9
13
  }
10
14
  end
11
15
 
12
16
  def human_attribute_name(attribute, options={})
13
- default = super(attribute, { default: "" }.merge(options))
14
- if !default.present? && attribute.to_s.match(/\A(\w+)_([a-z]{2})\z/)
17
+ default = super(attribute, options.merge(default: ""))
18
+ if default.blank? && attribute.to_s.match(/\A(\w+)_([a-z]{2})\z/)
15
19
  column, locale = $1, $2.to_sym
16
20
  if translates?(column)
17
- locale_name = I18n.t(locale, scope: :"i18n.languages", default: locale.to_s.upcase)
18
- return "#{super(column, options)} (#{locale_name})"
21
+ return "#{super(column, options)} (#{locale_name(locale)})"
19
22
  end
20
23
  end
21
24
  super
@@ -24,7 +27,11 @@ module Traco
24
27
  private
25
28
 
26
29
  def translates?(column)
27
- @translates_columns.include?(column.to_sym)
30
+ translatable_columns.include?(column.to_sym)
31
+ end
32
+
33
+ def locale_name(locale)
34
+ I18n.t(locale, scope: :"i18n.languages", default: locale.to_s.upcase)
28
35
  end
29
36
 
30
37
  end
@@ -5,7 +5,6 @@ module Traco
5
5
 
6
6
  def read_localized_value(column)
7
7
  locales_for_reading_column(column).each do |locale|
8
- value = public_send("#{column}_#{locale}")
9
8
  value = public_send("#{column}_#{locale}")
10
9
  return value if value.present?
11
10
  end
@@ -17,11 +16,11 @@ module Traco
17
16
  end
18
17
 
19
18
  def locales_for_reading_column(column)
20
- self.class.locales_for_column(column).sort_by { |x|
21
- case x
19
+ self.class.locales_for_column(column).sort_by { |locale|
20
+ case locale
22
21
  when I18n.locale then :"0"
23
22
  when I18n.default_locale then :"1"
24
- else x
23
+ else locale
25
24
  end
26
25
  }
27
26
  end
@@ -2,12 +2,18 @@ module Traco
2
2
  module Translates
3
3
  def translates(*columns)
4
4
 
5
- @translates_columns ||= []
6
- @translates_columns |= columns.map(&:to_sym)
7
-
8
5
  extend Traco::ClassMethods
9
6
  include Traco::InstanceMethods
10
7
 
8
+ # Don't overwrite values if running multiple times in the same class
9
+ # or in different classes of an inheritance chain.
10
+ unless respond_to?(:translatable_columns)
11
+ class_attribute :translatable_columns
12
+ self.translatable_columns = []
13
+ end
14
+
15
+ self.translatable_columns |= columns.map(&:to_sym)
16
+
11
17
  columns.each do |column|
12
18
 
13
19
  define_method(column) do
@@ -1,3 +1,3 @@
1
1
  module Traco
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -1,2 +1,5 @@
1
1
  class Post < ActiveRecord::Base
2
2
  end
3
+
4
+ class SubPost < Post
5
+ end
@@ -6,16 +6,27 @@ RSpec.configure do |config|
6
6
  # Clear class state before each spec.
7
7
  config.before(:each) do
8
8
  Object.send(:remove_const, 'Post')
9
- load 'dummy/app/models/post.rb'
9
+ Object.send(:remove_const, 'SubPost')
10
+ load 'app/post.rb'
10
11
  end
11
-
12
12
  end
13
13
 
14
- # Rails
14
+ # Test against real ActiveRecord models.
15
+ # Very much based on the test setup in
16
+ # https://github.com/iain/translatable_columns/
17
+
18
+ require "active_record"
19
+ require "app/post.rb"
15
20
 
16
- ENV["RAILS_ENV"] = "test"
21
+ ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
17
22
 
18
- require File.expand_path("../dummy/config/environment.rb", __FILE__)
19
- require "rails/test_help"
23
+ silence_stream(STDOUT) do
24
+ ActiveRecord::Schema.define(version: 0) do
25
+ create_table :posts, force: true do |t|
26
+ t.string :title_sv, :title_en, :title_fi
27
+ t.string :body_sv, :body_en, :body_fi
28
+ end
29
+ end
30
+ end
20
31
 
21
- Rails.backtrace_cleaner.remove_silencers!
32
+ I18n.load_path << "spec/app/sv.yml"
@@ -1,9 +1,6 @@
1
1
  require "spec_helper"
2
2
  require "traco"
3
3
 
4
- # See spec/dummy for the Rails app that has the Post model.
5
- # http://guides.rubyonrails.org/plugins.html#add-an-acts_as-method-to-active-record
6
-
7
4
  describe ActiveRecord::Base, ".translates" do
8
5
 
9
6
  it "should be available" do
@@ -12,8 +9,35 @@ describe ActiveRecord::Base, ".translates" do
12
9
 
13
10
  it "should add functionality" do
14
11
  Post.new.should_not respond_to :title
15
- Post.translates :title, :description
12
+ Post.translates :title
13
+ Post.new.should respond_to :title
14
+ end
15
+
16
+ it "should be possible to run more than once" do
17
+ Post.new.should_not respond_to :title, :body
18
+ Post.translates :title
19
+ Post.translates :body
20
+ Post.new.should respond_to :title, :body
21
+ end
22
+
23
+ it "inherits columns from the superclass" do
24
+ Post.translates :title
25
+ SubPost.translates :body
26
+ SubPost.new.should respond_to :title, :body
16
27
  Post.new.should respond_to :title
28
+ Post.new.should_not respond_to :body
29
+ end
30
+
31
+ end
32
+
33
+ describe Post, ".translatable_columns" do
34
+
35
+ before do
36
+ Post.translates :title
37
+ end
38
+
39
+ it "should list the translatable columns" do
40
+ Post.translatable_columns.should == [ :title ]
17
41
  end
18
42
 
19
43
  end
@@ -123,4 +147,14 @@ describe Post, ".human_attribute_name" do
123
147
  Post.human_attribute_name(:body_sv).should == "Body sv"
124
148
  end
125
149
 
150
+ # ActiveModel::Errors#full_messages passes in an ugly default.
151
+
152
+ it "should not yield to passed-in defaults" do
153
+ Post.human_attribute_name(:title_en, default: "Title en").should == "Titel (engelska)"
154
+ end
155
+
156
+ it "should pass through defaults" do
157
+ Post.human_attribute_name(:body_sv, default: "Boday").should == "Boday"
158
+ end
159
+
126
160
  end
@@ -15,12 +15,11 @@ Gem::Specification.new do |s|
15
15
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
16
16
  s.require_paths = ["lib"]
17
17
 
18
- s.add_dependency "rails", "~> 3.0"
18
+ s.add_dependency "activerecord", "~> 3.0"
19
19
 
20
20
  s.add_development_dependency "sqlite3"
21
21
 
22
22
  s.add_development_dependency "rspec"
23
23
  s.add_development_dependency "guard"
24
24
  s.add_development_dependency "guard-rspec"
25
-
26
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: traco
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-16 00:00:00.000000000 Z
12
+ date: 2012-05-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rails
16
- requirement: &2152658260 !ruby/object:Gem::Requirement
15
+ name: activerecord
16
+ requirement: &70306548594400 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2152658260
24
+ version_requirements: *70306548594400
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sqlite3
27
- requirement: &2152657840 !ruby/object:Gem::Requirement
27
+ requirement: &70306548593980 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2152657840
35
+ version_requirements: *70306548593980
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &2152657340 !ruby/object:Gem::Requirement
38
+ requirement: &70306548593520 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2152657340
46
+ version_requirements: *70306548593520
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: guard
49
- requirement: &2152656900 !ruby/object:Gem::Requirement
49
+ requirement: &70306548593100 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2152656900
57
+ version_requirements: *70306548593100
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: guard-rspec
60
- requirement: &2152656460 !ruby/object:Gem::Requirement
60
+ requirement: &70306548592680 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2152656460
68
+ version_requirements: *70306548592680
69
69
  description:
70
70
  email:
71
71
  - henrik@barsoom.se
@@ -84,43 +84,8 @@ files:
84
84
  - lib/traco/instance_methods.rb
85
85
  - lib/traco/translates.rb
86
86
  - lib/traco/version.rb
87
- - spec/dummy/Rakefile
88
- - spec/dummy/app/assets/javascripts/application.js
89
- - spec/dummy/app/assets/stylesheets/application.css
90
- - spec/dummy/app/controllers/application_controller.rb
91
- - spec/dummy/app/helpers/application_helper.rb
92
- - spec/dummy/app/mailers/.gitkeep
93
- - spec/dummy/app/models/.gitkeep
94
- - spec/dummy/app/models/post.rb
95
- - spec/dummy/app/views/layouts/application.html.erb
96
- - spec/dummy/config.ru
97
- - spec/dummy/config/application.rb
98
- - spec/dummy/config/boot.rb
99
- - spec/dummy/config/database.yml
100
- - spec/dummy/config/environment.rb
101
- - spec/dummy/config/environments/development.rb
102
- - spec/dummy/config/environments/production.rb
103
- - spec/dummy/config/environments/test.rb
104
- - spec/dummy/config/initializers/backtrace_silencers.rb
105
- - spec/dummy/config/initializers/inflections.rb
106
- - spec/dummy/config/initializers/mime_types.rb
107
- - spec/dummy/config/initializers/secret_token.rb
108
- - spec/dummy/config/initializers/session_store.rb
109
- - spec/dummy/config/initializers/wrap_parameters.rb
110
- - spec/dummy/config/locales/en.yml
111
- - spec/dummy/config/locales/sv.yml
112
- - spec/dummy/config/routes.rb
113
- - spec/dummy/db/migrate/20120316101201_create_posts.rb
114
- - spec/dummy/db/schema.rb
115
- - spec/dummy/lib/assets/.gitkeep
116
- - spec/dummy/log/.gitkeep
117
- - spec/dummy/public/404.html
118
- - spec/dummy/public/422.html
119
- - spec/dummy/public/500.html
120
- - spec/dummy/public/favicon.ico
121
- - spec/dummy/script/rails
122
- - spec/dummy/test/fixtures/posts.yml
123
- - spec/dummy/test/unit/post_test.rb
87
+ - spec/app/post.rb
88
+ - spec/app/sv.yml
124
89
  - spec/spec_helper.rb
125
90
  - spec/traco_spec.rb
126
91
  - traco.gemspec
@@ -149,42 +114,7 @@ signing_key:
149
114
  specification_version: 3
150
115
  summary: Translatable columns for Rails 3, stored in the model table itself.
151
116
  test_files:
152
- - spec/dummy/Rakefile
153
- - spec/dummy/app/assets/javascripts/application.js
154
- - spec/dummy/app/assets/stylesheets/application.css
155
- - spec/dummy/app/controllers/application_controller.rb
156
- - spec/dummy/app/helpers/application_helper.rb
157
- - spec/dummy/app/mailers/.gitkeep
158
- - spec/dummy/app/models/.gitkeep
159
- - spec/dummy/app/models/post.rb
160
- - spec/dummy/app/views/layouts/application.html.erb
161
- - spec/dummy/config.ru
162
- - spec/dummy/config/application.rb
163
- - spec/dummy/config/boot.rb
164
- - spec/dummy/config/database.yml
165
- - spec/dummy/config/environment.rb
166
- - spec/dummy/config/environments/development.rb
167
- - spec/dummy/config/environments/production.rb
168
- - spec/dummy/config/environments/test.rb
169
- - spec/dummy/config/initializers/backtrace_silencers.rb
170
- - spec/dummy/config/initializers/inflections.rb
171
- - spec/dummy/config/initializers/mime_types.rb
172
- - spec/dummy/config/initializers/secret_token.rb
173
- - spec/dummy/config/initializers/session_store.rb
174
- - spec/dummy/config/initializers/wrap_parameters.rb
175
- - spec/dummy/config/locales/en.yml
176
- - spec/dummy/config/locales/sv.yml
177
- - spec/dummy/config/routes.rb
178
- - spec/dummy/db/migrate/20120316101201_create_posts.rb
179
- - spec/dummy/db/schema.rb
180
- - spec/dummy/lib/assets/.gitkeep
181
- - spec/dummy/log/.gitkeep
182
- - spec/dummy/public/404.html
183
- - spec/dummy/public/422.html
184
- - spec/dummy/public/500.html
185
- - spec/dummy/public/favicon.ico
186
- - spec/dummy/script/rails
187
- - spec/dummy/test/fixtures/posts.yml
188
- - spec/dummy/test/unit/post_test.rb
117
+ - spec/app/post.rb
118
+ - spec/app/sv.yml
189
119
  - spec/spec_helper.rb
190
120
  - spec/traco_spec.rb
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env rake
2
- # Add your own tasks in files placed in lib/tasks ending in .rake,
3
- # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
4
-
5
- require File.expand_path('../config/application', __FILE__)
6
-
7
- Dummy::Application.load_tasks
@@ -1,9 +0,0 @@
1
- // This is a manifest file that'll be compiled into including all the files listed below.
2
- // Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
3
- // be included in the compiled file accessible from http://example.com/assets/application.js
4
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
5
- // the compiled file.
6
- //
7
- //= require jquery
8
- //= require jquery_ujs
9
- //= require_tree .
@@ -1,7 +0,0 @@
1
- /*
2
- * This is a manifest file that'll automatically include all the stylesheets available in this directory
3
- * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4
- * the top of the compiled file, but it's generally better to create a new file per style scope.
5
- *= require_self
6
- *= require_tree .
7
- */
@@ -1,3 +0,0 @@
1
- class ApplicationController < ActionController::Base
2
- protect_from_forgery
3
- end
@@ -1,2 +0,0 @@
1
- module ApplicationHelper
2
- end
File without changes
File without changes
@@ -1,14 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Dummy</title>
5
- <%= stylesheet_link_tag "application" %>
6
- <%= javascript_include_tag "application" %>
7
- <%= csrf_meta_tags %>
8
- </head>
9
- <body>
10
-
11
- <%= yield %>
12
-
13
- </body>
14
- </html>
@@ -1,4 +0,0 @@
1
- # This file is used by Rack-based servers to start the application.
2
-
3
- require ::File.expand_path('../config/environment', __FILE__)
4
- run Dummy::Application
@@ -1,45 +0,0 @@
1
- require File.expand_path('../boot', __FILE__)
2
-
3
- require 'rails/all'
4
-
5
- Bundler.require
6
- require "traco"
7
-
8
- module Dummy
9
- class Application < Rails::Application
10
- # Settings in config/environments/* take precedence over those specified here.
11
- # Application configuration should go into files in config/initializers
12
- # -- all .rb files in that directory are automatically loaded.
13
-
14
- # Custom directories with classes and modules you want to be autoloadable.
15
- # config.autoload_paths += %W(#{config.root}/extras)
16
-
17
- # Only load the plugins named here, in the order given (default is alphabetical).
18
- # :all can be used as a placeholder for all plugins not explicitly named.
19
- # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
20
-
21
- # Activate observers that should always be running.
22
- # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
23
-
24
- # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
25
- # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
26
- # config.time_zone = 'Central Time (US & Canada)'
27
-
28
- # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
29
- # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
30
- # config.i18n.default_locale = :de
31
-
32
- # Configure the default encoding used in templates for Ruby 1.9.
33
- config.encoding = "utf-8"
34
-
35
- # Configure sensitive parameters which will be filtered from the log file.
36
- config.filter_parameters += [:password]
37
-
38
- # Enable the asset pipeline
39
- config.assets.enabled = true
40
-
41
- # Version of your assets, change this if you want to expire all your assets
42
- config.assets.version = '1.0'
43
- end
44
- end
45
-
@@ -1,10 +0,0 @@
1
- require 'rubygems'
2
- gemfile = File.expand_path('../../../../Gemfile', __FILE__)
3
-
4
- if File.exist?(gemfile)
5
- ENV['BUNDLE_GEMFILE'] = gemfile
6
- require 'bundler'
7
- Bundler.setup
8
- end
9
-
10
- $:.unshift File.expand_path('../../../../lib', __FILE__)
@@ -1,25 +0,0 @@
1
- # SQLite version 3.x
2
- # gem install sqlite3
3
- #
4
- # Ensure the SQLite 3 gem is defined in your Gemfile
5
- # gem 'sqlite3'
6
- development:
7
- adapter: sqlite3
8
- database: db/development.sqlite3
9
- pool: 5
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: sqlite3
17
- database: db/test.sqlite3
18
- pool: 5
19
- timeout: 5000
20
-
21
- production:
22
- adapter: sqlite3
23
- database: db/production.sqlite3
24
- pool: 5
25
- timeout: 5000
@@ -1,5 +0,0 @@
1
- # Load the rails application
2
- require File.expand_path('../application', __FILE__)
3
-
4
- # Initialize the rails application
5
- Dummy::Application.initialize!
@@ -1,30 +0,0 @@
1
- Dummy::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 web server 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_controller.perform_caching = false
15
-
16
- # Don't care if the mailer can't send
17
- config.action_mailer.raise_delivery_errors = false
18
-
19
- # Print deprecation notices to the Rails logger
20
- config.active_support.deprecation = :log
21
-
22
- # Only use best-standards-support built into browsers
23
- config.action_dispatch.best_standards_support = :builtin
24
-
25
- # Do not compress assets
26
- config.assets.compress = false
27
-
28
- # Expands the lines which load the assets
29
- config.assets.debug = true
30
- end
@@ -1,60 +0,0 @@
1
- Dummy::Application.configure do
2
- # Settings specified here will take precedence over those in config/application.rb
3
-
4
- # Code is not reloaded between requests
5
- config.cache_classes = true
6
-
7
- # Full error reports are disabled and caching is turned on
8
- config.consider_all_requests_local = false
9
- config.action_controller.perform_caching = true
10
-
11
- # Disable Rails's static asset server (Apache or nginx will already do this)
12
- config.serve_static_assets = false
13
-
14
- # Compress JavaScripts and CSS
15
- config.assets.compress = true
16
-
17
- # Don't fallback to assets pipeline if a precompiled asset is missed
18
- config.assets.compile = false
19
-
20
- # Generate digests for assets URLs
21
- config.assets.digest = true
22
-
23
- # Defaults to Rails.root.join("public/assets")
24
- # config.assets.manifest = YOUR_PATH
25
-
26
- # Specifies the header that your server uses for sending files
27
- # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
28
- # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
29
-
30
- # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
31
- # config.force_ssl = true
32
-
33
- # See everything in the log (default is :info)
34
- # config.log_level = :debug
35
-
36
- # Use a different logger for distributed setups
37
- # config.logger = SyslogLogger.new
38
-
39
- # Use a different cache store in production
40
- # config.cache_store = :mem_cache_store
41
-
42
- # Enable serving of images, stylesheets, and JavaScripts from an asset server
43
- # config.action_controller.asset_host = "http://assets.example.com"
44
-
45
- # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
46
- # config.assets.precompile += %w( search.js )
47
-
48
- # Disable delivery errors, bad email addresses will be ignored
49
- # config.action_mailer.raise_delivery_errors = false
50
-
51
- # Enable threaded mode
52
- # config.threadsafe!
53
-
54
- # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
55
- # the I18n.default_locale when a translation can not be found)
56
- config.i18n.fallbacks = true
57
-
58
- # Send deprecation notices to registered listeners
59
- config.active_support.deprecation = :notify
60
- end
@@ -1,39 +0,0 @@
1
- Dummy::Application.configure do
2
- # Settings specified here will take precedence over those in config/application.rb
3
-
4
- # The test environment is used exclusively to run your application's
5
- # test suite. You never need to work with it otherwise. Remember that
6
- # your test database is "scratch space" for the test suite and is wiped
7
- # and recreated between test runs. Don't rely on the data there!
8
- config.cache_classes = true
9
-
10
- # Configure static asset server for tests with Cache-Control for performance
11
- config.serve_static_assets = true
12
- config.static_cache_control = "public, max-age=3600"
13
-
14
- # Log error messages when you accidentally call methods on nil
15
- config.whiny_nils = true
16
-
17
- # Show full error reports and disable caching
18
- config.consider_all_requests_local = true
19
- config.action_controller.perform_caching = false
20
-
21
- # Raise exceptions instead of rendering exception templates
22
- config.action_dispatch.show_exceptions = false
23
-
24
- # Disable request forgery protection in test environment
25
- config.action_controller.allow_forgery_protection = false
26
-
27
- # Tell Action Mailer not to deliver emails to the real world.
28
- # The :test delivery method accumulates sent emails in the
29
- # ActionMailer::Base.deliveries array.
30
- config.action_mailer.delivery_method = :test
31
-
32
- # Use SQL instead of Active Record's schema dumper when creating the test database.
33
- # This is necessary if your schema can't be completely dumped by the schema dumper,
34
- # like if you have constraints or database-specific column types
35
- # config.active_record.schema_format = :sql
36
-
37
- # Print deprecation notices to the stderr
38
- config.active_support.deprecation = :stderr
39
- end
@@ -1,7 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
- # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
-
6
- # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
- # Rails.backtrace_cleaner.remove_silencers!
@@ -1,10 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Add new inflection rules using the following format
4
- # (all these examples are active by default):
5
- # ActiveSupport::Inflector.inflections do |inflect|
6
- # inflect.plural /^(ox)$/i, '\1en'
7
- # inflect.singular /^(ox)en/i, '\1'
8
- # inflect.irregular 'person', 'people'
9
- # inflect.uncountable %w( fish sheep )
10
- # end
@@ -1,5 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Add new mime types for use in respond_to blocks:
4
- # Mime::Type.register "text/richtext", :rtf
5
- # Mime::Type.register_alias "text/html", :iphone
@@ -1,7 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Your secret key for verifying the integrity of signed cookies.
4
- # If you change this key, all old signed cookies will become invalid!
5
- # Make sure the secret is at least 30 characters and all random,
6
- # no regular words or you'll be exposed to dictionary attacks.
7
- Dummy::Application.config.secret_token = 'fabbcf4d0ec8dbd4ea04a832a71de39cc0ec39eec74ebcac1f266e8cd91b501011d07e13cfbe9469c336d8a9594c36ea57060ac6f7e6ff4b62b5a9938e192f44'
@@ -1,8 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
4
-
5
- # Use the database for sessions instead of the cookie-based default,
6
- # which shouldn't be used to store highly confidential information
7
- # (create the session table with "rails generate session_migration")
8
- # Dummy::Application.config.session_store :active_record_store
@@ -1,14 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
- #
3
- # This file contains settings for ActionController::ParamsWrapper which
4
- # is enabled by default.
5
-
6
- # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
- ActiveSupport.on_load(:action_controller) do
8
- wrap_parameters format: [:json]
9
- end
10
-
11
- # Disable root element in JSON by default.
12
- ActiveSupport.on_load(:active_record) do
13
- self.include_root_in_json = false
14
- end
@@ -1,5 +0,0 @@
1
- # Sample localization file for English. Add more files in this directory for other locales.
2
- # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
-
4
- en:
5
- hello: "Hello world"
@@ -1,58 +0,0 @@
1
- Dummy::Application.routes.draw do
2
- # The priority is based upon order of creation:
3
- # first created -> highest priority.
4
-
5
- # Sample of regular route:
6
- # match 'products/:id' => 'catalog#view'
7
- # Keep in mind you can assign values other than :controller and :action
8
-
9
- # Sample of named route:
10
- # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
11
- # This route can be invoked with purchase_url(:id => product.id)
12
-
13
- # Sample resource route (maps HTTP verbs to controller actions automatically):
14
- # resources :products
15
-
16
- # Sample resource route with options:
17
- # resources :products do
18
- # member do
19
- # get 'short'
20
- # post 'toggle'
21
- # end
22
- #
23
- # collection do
24
- # get 'sold'
25
- # end
26
- # end
27
-
28
- # Sample resource route with sub-resources:
29
- # resources :products do
30
- # resources :comments, :sales
31
- # resource :seller
32
- # end
33
-
34
- # Sample resource route with more complex sub-resources
35
- # resources :products do
36
- # resources :comments
37
- # resources :sales do
38
- # get 'recent', :on => :collection
39
- # end
40
- # end
41
-
42
- # Sample resource route within a namespace:
43
- # namespace :admin do
44
- # # Directs /admin/products/* to Admin::ProductsController
45
- # # (app/controllers/admin/products_controller.rb)
46
- # resources :products
47
- # end
48
-
49
- # You can have the root of your site routed with "root"
50
- # just remember to delete public/index.html.
51
- # root :to => 'welcome#index'
52
-
53
- # See how all your routes lay out with "rake routes"
54
-
55
- # This is a legacy wild controller route that's not recommended for RESTful applications.
56
- # Note: This route will make all actions in every controller accessible via GET requests.
57
- # match ':controller(/:action(/:id(.:format)))'
58
- end
@@ -1,15 +0,0 @@
1
- class CreatePosts < ActiveRecord::Migration
2
- def change
3
- create_table :posts do |t|
4
- t.string :title_sv
5
- t.string :title_en
6
- t.string :title_fi
7
- t.text :body_sv
8
- t.text :body_en
9
- t.text :body_fi
10
- t.string :slug
11
-
12
- t.timestamps
13
- end
14
- end
15
- end
@@ -1,28 +0,0 @@
1
- # encoding: UTF-8
2
- # This file is auto-generated from the current state of the database. Instead
3
- # of editing this file, please use the migrations feature of Active Record to
4
- # incrementally modify your database, and then regenerate this schema definition.
5
- #
6
- # Note that this schema.rb definition is the authoritative source for your
7
- # database schema. If you need to create the application database on another
8
- # system, you should be using db:schema:load, not running all the migrations
9
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
- # you'll amass, the slower it'll run and the greater likelihood for issues).
11
- #
12
- # It's strongly recommended to check this file into your version control system.
13
-
14
- ActiveRecord::Schema.define(:version => 20120316101201) do
15
-
16
- create_table "posts", :force => true do |t|
17
- t.string "title_sv"
18
- t.string "title_en"
19
- t.string "title_fi"
20
- t.text "body_sv"
21
- t.text "body_en"
22
- t.text "body_fi"
23
- t.string "slug"
24
- t.datetime "created_at", :null => false
25
- t.datetime "updated_at", :null => false
26
- end
27
-
28
- end
File without changes
File without changes
@@ -1,26 +0,0 @@
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>
@@ -1,26 +0,0 @@
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>
@@ -1,26 +0,0 @@
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
- <p>We've been notified about this issue and we'll take a look at it shortly.</p>
24
- </div>
25
- </body>
26
- </html>
File without changes
@@ -1,6 +0,0 @@
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'
@@ -1,15 +0,0 @@
1
- # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
-
3
- one:
4
- title_sv: MyString
5
- title_en: MyString
6
- body_sv: MyText
7
- body_en: MyText
8
- slug: MyString
9
-
10
- two:
11
- title_sv: MyString
12
- title_en: MyString
13
- body_sv: MyText
14
- body_en: MyText
15
- slug: MyString
@@ -1,7 +0,0 @@
1
- require 'test_helper'
2
-
3
- class PostTest < ActiveSupport::TestCase
4
- # test "the truth" do
5
- # assert true
6
- # end
7
- end