interpret 0.1.3 → 0.1.4
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.
- data/app/controllers/interpret/base_controller.rb +20 -1
- data/app/controllers/interpret/tools_controller.rb +7 -0
- data/app/controllers/interpret/translations_controller.rb +45 -3
- data/app/models/interpret/translation.rb +9 -6
- data/app/sweepers/interpret/base_sweeper.rb +4 -0
- data/app/sweepers/interpret/translation_sweeper.rb +1 -4
- data/app/views/interpret/search/index.html.erb +5 -3
- data/app/views/interpret/search/perform.html.erb +2 -4
- data/app/views/interpret/tools/index.html.erb +9 -0
- data/app/views/interpret/translations/_listing.html.erb +49 -13
- data/app/views/interpret/translations/index.html.erb +13 -6
- data/app/views/interpret/translations/new.html.erb +15 -0
- data/app/views/layouts/interpret.html.erb +13 -25
- data/app/views/layouts/interpret_base.html.erb +14 -0
- data/config/routes.rb +4 -1
- data/lib/generators/interpret/setup_generator.rb +1 -0
- data/lib/generators/interpret/templates/migration.rb +1 -0
- data/lib/interpret/helpers.rb +19 -8
- data/lib/interpret/version.rb +1 -1
- data/lib/interpret.rb +11 -13
- data/public/javascripts/interpret.js +7 -0
- data/public/stylesheets/interpret_style.css +105 -112
- data/spec/models/translation_spec.rb +26 -3
- data/test_app/app/controllers/application_controller.rb +12 -0
- data/test_app/app/models/user.rb +5 -0
- data/test_app/app/views/layouts/application.html.erb +4 -4
- data/test_app/app/views/pages/index.html.haml +2 -1
- data/test_app/config/initializers/interpret.rb +8 -2
- data/test_app/db/migrate/{20110209185258_interpret_create_translations.rb → 20110219143622_interpret_create_translations.rb} +1 -0
- data/test_app/db/migrate/20110219173536_create_users.rb +13 -0
- data/test_app/db/schema.rb +8 -1
- data/test_app/db/seeds.rb +4 -0
- data/test_app/public/javascripts/interpret.js +7 -0
- data/test_app/public/stylesheets/interpret_style.css +105 -112
- metadata +9 -11
- data/app/views/interpret/translations/_form.html.erb +0 -5
- data/app/views/interpret/translations/edit.html.erb +0 -5
- data/lib/generators/interpret/views_generator.rb +0 -16
- data/test_app/public/index.html +0 -29
- data/test_app/public/javascripts/controls.js +0 -965
- data/test_app/public/javascripts/dragdrop.js +0 -974
- data/test_app/public/javascripts/effects.js +0 -1123
- data/test_app/public/javascripts/prototype.js +0 -6001
@@ -1,10 +1,29 @@
|
|
1
|
-
class Interpret::BaseController < eval(Interpret.
|
1
|
+
class Interpret::BaseController < eval(Interpret.parent_controller.classify)
|
2
2
|
before_filter :set_locale
|
3
|
+
before_filter :interpret_set_current_user
|
3
4
|
layout 'interpret'
|
4
5
|
|
6
|
+
protected
|
7
|
+
def require_admin
|
8
|
+
if @interpret_user && !@interpret_admin
|
9
|
+
redirect_to interpret_root_url, :alert => "Not authorized"
|
10
|
+
return
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
5
14
|
private
|
6
15
|
def set_locale
|
7
16
|
I18n.locale = params[:locale] if params[:locale]
|
8
17
|
end
|
18
|
+
|
19
|
+
def interpret_set_current_user
|
20
|
+
if Interpret.current_user && defined?(Interpret.current_user.to_sym)
|
21
|
+
@interpret_user = eval(Interpret.current_user)
|
22
|
+
@interpret_admin = true
|
23
|
+
if Interpret.admin && @interpret_user.respond_to?(Interpret.admin)
|
24
|
+
@interpret_admin = @interpret_user.send(Interpret.admin)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
9
28
|
end
|
10
29
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
class Interpret::ToolsController < Interpret::BaseController
|
2
|
+
before_filter :require_admin
|
2
3
|
|
3
4
|
def dump
|
4
5
|
Interpret::Translation.dump
|
@@ -18,6 +19,12 @@ class Interpret::ToolsController < Interpret::BaseController
|
|
18
19
|
send_data text[5..text.length], :filename => "#{I18n.locale}.yml"
|
19
20
|
end
|
20
21
|
|
22
|
+
def run_update
|
23
|
+
Interpret::Translation.update
|
24
|
+
Interpret.backend.reload! if Interpret.backend
|
25
|
+
redirect_to interpret_tools_url, :notice => "Update done"
|
26
|
+
end
|
27
|
+
|
21
28
|
def import
|
22
29
|
unless params.has_key? :file
|
23
30
|
redirect_to interpret_tools_url, :alert => "You have to select a file to import."
|
@@ -8,10 +8,23 @@ class Interpret::TranslationsController < Interpret::BaseController
|
|
8
8
|
t = Interpret::Translation.arel_table
|
9
9
|
if key
|
10
10
|
@translations = Interpret::Translation.locale(I18n.locale).where(t[:key].matches("#{key}.%"))
|
11
|
-
|
11
|
+
if I18n.locale != I18n.default_locale
|
12
|
+
@references = Interpret::Translation.locale(I18n.default_locale).where(t[:key].matches("#{key}.%"))
|
13
|
+
end
|
12
14
|
else
|
13
|
-
@translations = Interpret::Translation.locale(I18n.locale).where(t[:key].does_not_match("%.%"))
|
15
|
+
@translations = Interpret::Translation.locale(I18n.locale).where(t[:key].does_not_match("%.%"))
|
16
|
+
if I18n.locale != I18n.default_locale
|
17
|
+
@references = Interpret::Translation.locale(I18n.default_locale).where(t[:key].does_not_match("%.%"))
|
18
|
+
end
|
14
19
|
end
|
20
|
+
if @interpret_user
|
21
|
+
@translations = @translations.where(:protected => false) if !@interpret_admin
|
22
|
+
@references = @references.where(:protected => false) if @references && !@interpret_admin
|
23
|
+
end
|
24
|
+
|
25
|
+
# not show translations inside nested folders, \w avoids dots
|
26
|
+
@translations = @translations.select{|x| x.key =~ /#{key}\.\w+$/} if key
|
27
|
+
@references = @references.select{|x| x.key =~ /#{key}\.\w+$/} if key && @references
|
15
28
|
end
|
16
29
|
|
17
30
|
def edit
|
@@ -19,12 +32,17 @@ class Interpret::TranslationsController < Interpret::BaseController
|
|
19
32
|
end
|
20
33
|
|
21
34
|
def update
|
35
|
+
if @interpret_user && !@interpret_admin && params[:interpret_translation].has_key?(:protected)
|
36
|
+
head :error
|
37
|
+
return
|
38
|
+
end
|
22
39
|
@translation = Interpret::Translation.find(params[:id])
|
23
40
|
old_value = @translation.value
|
24
41
|
|
25
42
|
respond_to do |format|
|
26
43
|
if @translation.update_attributes(params[:interpret_translation])
|
27
|
-
msg =
|
44
|
+
msg = ""
|
45
|
+
msg << "By [#{@interpret_user}]. " if @interpret_user
|
28
46
|
msg << "Locale: [#{@translation.locale}], key: [#{@translation.key}]. The translation has been changed from [#{old_value}] to [#{@translation.value}]"
|
29
47
|
Interpret.logger.info msg
|
30
48
|
|
@@ -39,6 +57,30 @@ class Interpret::TranslationsController < Interpret::BaseController
|
|
39
57
|
end
|
40
58
|
end
|
41
59
|
|
60
|
+
def new
|
61
|
+
@reference = Interpret::Translation.find(params[:translation_id])
|
62
|
+
if @reference.locale === I18n.locale.to_s
|
63
|
+
redirect_to interpret_root_path
|
64
|
+
return
|
65
|
+
end
|
66
|
+
@translation = Interpret::Translation.new :locale => I18n.locale, :key => @reference.key
|
67
|
+
end
|
68
|
+
|
69
|
+
def create
|
70
|
+
@reference = Interpret::Translation.find(params[:translation_id])
|
71
|
+
if @reference.locale == I18n.locale.to_s
|
72
|
+
redirect_to interpret_root_path
|
73
|
+
return
|
74
|
+
end
|
75
|
+
@translation = Interpret::Translation.new params[:interpret_translation].merge(:locale => I18n.locale, :key => @reference.key)
|
76
|
+
|
77
|
+
if @translation.save
|
78
|
+
redirect_to interpret_root_path(:locale => I18n.locale), :notice => "New translation created"
|
79
|
+
else
|
80
|
+
render :action => :new
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
42
84
|
private
|
43
85
|
def get_tree
|
44
86
|
@tree = session[:tree] ||= Interpret::Translation.get_tree
|
@@ -47,9 +47,11 @@ module Interpret
|
|
47
47
|
end
|
48
48
|
|
49
49
|
# Import the contents of the given .yml locale file into the database
|
50
|
-
# backend.
|
51
|
-
#
|
52
|
-
#
|
50
|
+
# backend. If a given key already exists in database, it will be
|
51
|
+
# overwritten, otherwise it won't be touched. This means that in any
|
52
|
+
# case it will delete an existing translation, it only overwrites the
|
53
|
+
# ones you give in the file.
|
54
|
+
# If the given file has new translations, these will be ignored.
|
53
55
|
#
|
54
56
|
# The language will be obtained from the first unique key of the yml
|
55
57
|
# file.
|
@@ -61,13 +63,14 @@ module Interpret
|
|
61
63
|
raise ArgumentError, "the YAML file must contain an unique first key representing the locale" unless hash.keys.count == 1
|
62
64
|
|
63
65
|
lang = hash.keys.first
|
64
|
-
delete_all(:locale => lang)
|
65
66
|
|
66
67
|
records = parse_hash(hash.first[1], lang)
|
67
|
-
# TODO: Replace with activerecord-import bulk inserts
|
68
68
|
transaction do
|
69
69
|
records.each do |x|
|
70
|
-
x.
|
70
|
+
if tr = locale(lang).find_by_key(x.key)
|
71
|
+
tr.value = x.value
|
72
|
+
tr.save!
|
73
|
+
end
|
71
74
|
end
|
72
75
|
end
|
73
76
|
end
|
@@ -5,10 +5,7 @@ class Interpret::TranslationSweeper < ActionController::Caching::Sweeper
|
|
5
5
|
Interpret.backend.reload! if Interpret.backend
|
6
6
|
end
|
7
7
|
|
8
|
-
|
9
|
-
def expire_cache
|
10
|
-
#expire_action :controller => "interpret/translations", :action => :tree
|
11
|
-
session.delete(:tree)
|
8
|
+
def after_create(translation)
|
12
9
|
Interpret.backend.reload! if Interpret.backend
|
13
10
|
end
|
14
11
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
<% interpret_title "Interpret - Search" %>
|
2
|
+
|
1
3
|
<div id="header">
|
2
4
|
<h1>Search translations</h1>
|
3
5
|
</div>
|
@@ -20,10 +22,10 @@
|
|
20
22
|
|
21
23
|
<% end %>
|
22
24
|
|
23
|
-
|
25
|
+
<% content_for :sidebar do %>
|
24
26
|
<h2>Search</h2>
|
25
27
|
<p>
|
26
|
-
|
28
|
+
You can use this search feature to look into all the translations. Can be filtered by language, key and phrase.
|
27
29
|
</p>
|
28
30
|
<% end %>
|
29
|
-
</div>
|
31
|
+
</div>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
<% content_for :title do %>
|
2
2
|
Search translations
|
3
3
|
<%= "by " unless params[:key].blank? && params[:value].blank? %>
|
4
4
|
<%= params[:key] unless params[:key].blank? %>
|
@@ -10,11 +10,9 @@
|
|
10
10
|
<h1>Search translations</h1>
|
11
11
|
</div>
|
12
12
|
|
13
|
-
|
14
13
|
<%= render 'interpret/translations/listing' %>
|
15
14
|
|
16
|
-
|
17
|
-
<%= content_for :sidebar do %>
|
15
|
+
<% content_for :sidebar do %>
|
18
16
|
<h2>Search</h2>
|
19
17
|
<p>
|
20
18
|
<%= @translations.size %> results found.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
<% interpret_title "Interpret - Tools" %>
|
2
|
+
|
1
3
|
<div class="header">
|
2
4
|
<h1>Your master language</h1>
|
3
5
|
</div>
|
@@ -8,6 +10,13 @@ can change it below:
|
|
8
10
|
</p>
|
9
11
|
<p><em>TODO</em></p>
|
10
12
|
|
13
|
+
<div class="header">
|
14
|
+
<h1>Update contents from yml locale files</h1>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<p>update all your application translatinos from the yml files.<br/>
|
18
|
+
</p>
|
19
|
+
<%= button_to "Update contents", run_update_interpret_tools_path %>
|
11
20
|
<div class="header">
|
12
21
|
<h1>Dump .yml contents into database</h1>
|
13
22
|
</div>
|
@@ -1,22 +1,58 @@
|
|
1
1
|
<table>
|
2
2
|
<thead>
|
3
3
|
<tr class="header">
|
4
|
-
|
5
|
-
|
4
|
+
<% if @references %>
|
5
|
+
<th>Master translation [<%= I18n.default_locale %>]</th>
|
6
|
+
<% else %>
|
7
|
+
<th>Key</th>
|
8
|
+
<% end %>
|
9
|
+
<th>Content [<%= I18n.locale %>]</th>
|
10
|
+
<% if @interpret_admin && @references.nil? %>
|
11
|
+
<th style="width:5%">Protected?</th>
|
12
|
+
<% end %>
|
6
13
|
</tr>
|
7
14
|
</thead>
|
8
15
|
<tbody>
|
9
|
-
<% @
|
10
|
-
|
11
|
-
<
|
12
|
-
|
13
|
-
<%=
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
<% unless @references %>
|
17
|
+
<% @translations.each do |x| %>
|
18
|
+
<tr<%= " class='protected'" if x.protected %>>
|
19
|
+
<td class='key'><%= x.key %></td>
|
20
|
+
<td class="content" id="translation_<%= x.id %>">
|
21
|
+
<%= best_in_place x, :value,
|
22
|
+
:type => :textarea,
|
23
|
+
:path => interpret_translation_path(x),
|
24
|
+
:activator => "#translation_#{x.id}",
|
25
|
+
:sanitize => false %>
|
26
|
+
</td>
|
27
|
+
<% if @interpret_admin%>
|
28
|
+
<td style="width:5%" class='protection_input' id="protection_<%= x.id %>">
|
29
|
+
<%= best_in_place x, :protected,
|
30
|
+
:type => :checkbox,
|
31
|
+
:path => interpret_translation_path(x),
|
32
|
+
:activator => "#protection_#{x.id}"
|
33
|
+
%>
|
34
|
+
</td>
|
35
|
+
<% end %>
|
36
|
+
</tr>
|
37
|
+
<% end %>
|
38
|
+
<% else %>
|
39
|
+
<% @references.each do |x| %>
|
40
|
+
<% trans = @translations.detect{|y| y.key == x.key} %>
|
41
|
+
<tr<%= " id='translation_#{trans.id}'" if trans %><%= " class='protected'" if x.protected %>>
|
42
|
+
<td style='width:50%'><%= x.value %></td>
|
43
|
+
<td style='width:50%'>
|
44
|
+
<% if trans %>
|
45
|
+
<%= best_in_place trans, :value,
|
46
|
+
:type => :textarea,
|
47
|
+
:path => interpret_translation_path(trans),
|
48
|
+
:activator => "#translation_#{trans.id}",
|
49
|
+
:sanitize => false %>
|
50
|
+
<% else %>
|
51
|
+
<%= link_to "[Create missing translation]", new_interpret_translation_translation_path(x) %>
|
52
|
+
<% end %>
|
53
|
+
</td>
|
54
|
+
</tr>
|
55
|
+
<% end %>
|
20
56
|
<% end %>
|
21
57
|
</tbody>
|
22
58
|
</table>
|
@@ -1,8 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<% end %>
|
1
|
+
<% interpret_title "Interpret - Translations" %>
|
2
|
+
|
4
3
|
<div id="header">
|
5
|
-
<h1>Translations for <%= I18n.locale
|
4
|
+
<h1>Translations for [<%= I18n.locale %>]</h1>
|
6
5
|
</div>
|
7
6
|
<p>
|
8
7
|
Below are the translations without any particulary key in your application.
|
@@ -12,9 +11,17 @@ rest of your app's contents, navigate using the tree in the left, that shows you
|
|
12
11
|
locales structure.
|
13
12
|
</p>
|
14
13
|
|
14
|
+
<p>
|
15
|
+
<% if @references %>
|
16
|
+
There are <%= @references.size - @translations.size %> / <%= @references.size %> missing translations.
|
17
|
+
<% else %>
|
18
|
+
There are <%= @translations.size %> translations.
|
19
|
+
<% end %>
|
20
|
+
</p>
|
21
|
+
|
15
22
|
<%= render 'interpret/translations/listing' %>
|
16
23
|
|
17
|
-
|
24
|
+
<% content_for :sidebar do %>
|
18
25
|
<div id="tree_sidebar">
|
19
26
|
<h3>
|
20
27
|
<% if params[:key] %>
|
@@ -23,6 +30,6 @@ locales structure.
|
|
23
30
|
/
|
24
31
|
<% end %>
|
25
32
|
</h3>
|
26
|
-
<%=
|
33
|
+
<%= interpret_show_tree(@tree, params[:key]) %>
|
27
34
|
</div>
|
28
35
|
<% end %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<% interpret_title "Interpret - New translation" %>
|
2
|
+
|
3
|
+
<h1>Creating '<%= @translation.key %>'</h1>
|
4
|
+
|
5
|
+
<p>
|
6
|
+
Previous value:
|
7
|
+
<b>[<%= @reference.locale %>] <%= @reference.value %></b>
|
8
|
+
</p>
|
9
|
+
<%= form_for [@reference, @translation], :url => interpret_translation_translations_path(@reference) do |f| %>
|
10
|
+
<%= f.label :value, "Translation to [#{I18n.locale}]" %>
|
11
|
+
<%= f.text_area :value, :value => @translation.value %>
|
12
|
+
<%= f.submit %>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<%= link_to "Back", interpret_root_path %>
|
@@ -1,28 +1,23 @@
|
|
1
|
-
|
2
|
-
<
|
3
|
-
<
|
4
|
-
<title>INTERPRET - <%= yield :title %></title>
|
5
|
-
<%= stylesheet_link_tag "interpret_style" %>
|
6
|
-
<%= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" %>
|
7
|
-
<%= javascript_include_tag "jquery.purr" %>
|
8
|
-
<%= javascript_include_tag "best_in_place" %>
|
9
|
-
<%= csrf_meta_tag %>
|
10
|
-
</head>
|
11
|
-
<body>
|
12
|
-
<div id="container">
|
13
|
-
<div class="menu grid_16">
|
1
|
+
|
2
|
+
<div id="interpret_container">
|
3
|
+
<div class="menu grid_12">
|
14
4
|
<%= interpret_section_link_to "Overview", interpret_root_path %> |
|
15
|
-
|
5
|
+
<% if @interpret_admin %>
|
6
|
+
<%= interpret_section_link_to "Tools", interpret_tools_path %> |
|
7
|
+
<% end %>
|
16
8
|
<%= interpret_section_link_to "Search", interpret_search_path %>
|
17
9
|
<hr />
|
18
10
|
</div>
|
19
|
-
<div class="menu
|
11
|
+
<div class="menu grid_4">
|
20
12
|
Languages:
|
21
|
-
<%
|
22
|
-
|
13
|
+
<% Interpret::Translation.available_locales.each do |locale| %>
|
14
|
+
<% opts = {:locale => locale} %>
|
15
|
+
<% opts[:key] = params[:key] if params[:key] %>
|
16
|
+
<%= link_to locale, opts %>
|
23
17
|
<% end %>
|
24
18
|
<hr />
|
25
19
|
</div>
|
20
|
+
<div class="clearfix"></div>
|
26
21
|
<div id="sidebar" class="grid_3">
|
27
22
|
<%= yield :sidebar %>
|
28
23
|
</div>
|
@@ -31,11 +26,4 @@
|
|
31
26
|
</div>
|
32
27
|
</div>
|
33
28
|
|
34
|
-
|
35
|
-
$(document).ready(function() {
|
36
|
-
/* Activating Best In Place */
|
37
|
-
jQuery(".best_in_place").best_in_place()
|
38
|
-
});
|
39
|
-
<% end %>
|
40
|
-
</body>
|
41
|
-
</html>
|
29
|
+
<% interpret_parent_layout Interpret.layout %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= yield :title %></title>
|
5
|
+
<%= stylesheet_link_tag "interpret_style" %>
|
6
|
+
<%= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" %>
|
7
|
+
<%= javascript_include_tag "jquery.purr", "best_in_place", "interpret" %>
|
8
|
+
<%= csrf_meta_tag %>
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<%= yield %>
|
12
|
+
</body>
|
13
|
+
</html>
|
14
|
+
|
data/config/routes.rb
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
scope Interpret.scope do
|
3
3
|
namespace :interpret do
|
4
|
-
resources :translations, :only => [:edit, :update]
|
4
|
+
resources :translations, :only => [:edit, :update] do
|
5
|
+
resources :translations, :only => [:new, :create]
|
6
|
+
end
|
5
7
|
|
6
8
|
resources :tools, :only => :index do
|
7
9
|
collection do
|
8
10
|
get :export
|
9
11
|
post :import
|
10
12
|
post :dump
|
13
|
+
post :run_update
|
11
14
|
end
|
12
15
|
end
|
13
16
|
|
data/lib/interpret/helpers.rb
CHANGED
@@ -2,7 +2,7 @@ module Interpret
|
|
2
2
|
module InterpretHelpers
|
3
3
|
|
4
4
|
# Generates the html tree from the given keys
|
5
|
-
def
|
5
|
+
def interpret_show_tree(tree, origin_keys)
|
6
6
|
tree = tree.first[1]
|
7
7
|
unless origin_keys.nil?
|
8
8
|
origin_keys.split(".").each do |key|
|
@@ -12,8 +12,25 @@ module Interpret
|
|
12
12
|
build_tree(tree, origin_keys)
|
13
13
|
end
|
14
14
|
|
15
|
+
def interpret_section_link_to(name, options = {}, html_options = {})
|
16
|
+
html_options.merge!({ :class => 'current' }) if current_controller?(options)
|
17
|
+
link_to name, options, html_options
|
18
|
+
end
|
19
|
+
|
20
|
+
def interpret_title(title)
|
21
|
+
content_for :title do
|
22
|
+
title
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def interpret_parent_layout(layout)
|
27
|
+
@_content_for[:layout] = self.output_buffer
|
28
|
+
self.output_buffer = render(:file => "layouts/#{layout}")
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
15
32
|
def build_tree(hash, origin_keys = "", prev_key = "")
|
16
|
-
out = "<ul
|
33
|
+
out = "<ul>"
|
17
34
|
if origin_keys.present? && prev_key.blank?
|
18
35
|
parent_key = origin_keys.split(".")[0..-2].join(".")
|
19
36
|
if parent_key.blank?
|
@@ -35,11 +52,5 @@ module Interpret
|
|
35
52
|
hash = Rails.application.routes.recognize_path(url_for(opts))
|
36
53
|
params[:controller] == hash[:controller]
|
37
54
|
end
|
38
|
-
|
39
|
-
def interpret_section_link_to(name, options = {}, html_options = {})
|
40
|
-
html_options.merge!({ :class => 'current' }) if current_controller?(options)
|
41
|
-
link_to name, options, html_options
|
42
|
-
end
|
43
|
-
|
44
55
|
end
|
45
56
|
end
|
data/lib/interpret/version.rb
CHANGED
data/lib/interpret.rb
CHANGED
@@ -5,24 +5,22 @@ require 'lazyhash'
|
|
5
5
|
module Interpret
|
6
6
|
mattr_accessor :backend
|
7
7
|
mattr_accessor :logger
|
8
|
-
|
9
|
-
mattr_accessor :controller
|
10
|
-
@@controller = "action_controller/base"
|
11
|
-
|
12
8
|
mattr_accessor :sweeper
|
13
|
-
|
14
|
-
|
9
|
+
mattr_accessor :parent_controller
|
15
10
|
mattr_accessor :registered_envs
|
16
|
-
@@registered_envs = [:production, :staging]
|
17
|
-
|
18
11
|
mattr_accessor :scope
|
12
|
+
mattr_accessor :current_user
|
13
|
+
mattr_accessor :admin
|
14
|
+
mattr_accessor :layout
|
15
|
+
|
16
|
+
@@controller = "action_controller/base"
|
17
|
+
@@registered_envs = [:production, :staging]
|
19
18
|
@@scope = ""
|
19
|
+
@@layout = "interpret_base"
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
# - logging?
|
25
|
-
# - current_user method. If set, current_user will appear in logs, otherwise not.
|
21
|
+
def self.configure
|
22
|
+
yield self
|
23
|
+
end
|
26
24
|
end
|
27
25
|
|
28
26
|
require 'interpret/engine' if defined? Rails
|