interpret 0.2.1 → 1.0.0
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/.gitignore +2 -4
- data/Gemfile +2 -3
- data/README.md +1 -10
- data/{public/stylesheets → app/assets/images}/folder.png +0 -0
- data/{public → app/assets}/javascripts/interpret.js +0 -0
- data/{public/stylesheets/interpret_style.css → app/assets/stylesheets/interpret_style.css.erb} +1 -1
- data/app/controllers/interpret/base_controller.rb +1 -1
- data/app/controllers/interpret/search_controller.rb +8 -2
- data/app/controllers/interpret/tools_controller.rb +5 -5
- data/app/controllers/interpret/translations_controller.rb +59 -69
- data/app/models/interpret/translation.rb +1 -0
- data/app/views/interpret/missing_translations/blank.html.erb +1 -1
- data/app/views/interpret/missing_translations/index.html.erb +1 -1
- data/app/views/interpret/missing_translations/stale.html.erb +2 -2
- data/app/views/interpret/search/_blank_search.html.erb +1 -1
- data/app/views/interpret/search/_filled_search.html.erb +1 -1
- data/app/views/interpret/tools/index.html.erb +2 -2
- data/app/views/interpret/translations/_listing.html.erb +3 -3
- data/app/views/interpret/translations/new.html.erb +2 -2
- data/app/views/layouts/interpret/interpret.html.erb +55 -0
- data/app/views/layouts/{interpret_base.html.erb → interpret/interpret_base.html.erb} +0 -0
- data/config/routes.rb +19 -21
- data/{lib/generators/interpret/templates/migration.rb → db/migrate/20111108094329_create_translations.rb} +3 -4
- data/interpret.gemspec +3 -3
- data/lib/interpret/engine.rb +6 -4
- data/lib/interpret/helpers.rb +4 -53
- data/lib/interpret/version.rb +1 -1
- data/lib/interpret.rb +0 -4
- data/script/rails +5 -0
- data/spec/integration/missing_translations_spec.rb +8 -8
- data/spec/integration/search_spec.rb +8 -8
- data/spec/integration/stale_translations_spec.rb +5 -5
- data/spec/integration/tools_spec.rb +9 -9
- data/spec/integration/translations_spec.rb +2 -2
- data/spec/spec_helper.rb +2 -9
- data/spec/support/load_routes.rb +6 -0
- data/test_app/Gemfile +11 -6
- data/test_app/{public → app/assets}/images/a1.gif +0 -0
- data/test_app/{public → app/assets}/images/a10.jpg +0 -0
- data/test_app/{public → app/assets}/images/a16.gif +0 -0
- data/test_app/{public → app/assets}/images/a18.gif +0 -0
- data/test_app/{public → app/assets}/images/a22.gif +0 -0
- data/test_app/{public → app/assets}/images/a26.gif +0 -0
- data/test_app/{public → app/assets}/images/a33.gif +0 -0
- data/test_app/{public → app/assets}/images/a36.gif +0 -0
- data/test_app/{public → app/assets}/images/a38.gif +0 -0
- data/test_app/{public → app/assets}/images/a41.gif +0 -0
- data/test_app/{public → app/assets}/images/a47.gif +0 -0
- data/test_app/{public → app/assets}/images/a50.gif +0 -0
- data/test_app/{public → app/assets}/images/a8.gif +0 -0
- data/test_app/{public → app/assets}/images/abg.gif +0 -0
- data/test_app/{public → app/assets}/images/pic1.jpg +0 -0
- data/test_app/{public → app/assets}/images/pic2.jpg +0 -0
- data/test_app/{public → app/assets}/images/spacer.gif +0 -0
- data/test_app/{public → app/assets}/images/upbg.gif +0 -0
- data/test_app/app/assets/javascripts/application.js +4 -0
- data/test_app/{public → app/assets}/stylesheets/.gitkeep +0 -0
- data/test_app/{public/stylesheets/default.css → app/assets/stylesheets/default.css.erb} +16 -16
- data/test_app/{public → app/assets}/stylesheets/private.css +0 -0
- data/test_app/app/controllers/admin/dashboard_controller.rb +6 -0
- data/test_app/app/views/admin/dashboard/index.html.erb +1 -0
- data/test_app/app/views/layouts/application.html.erb +3 -13
- data/test_app/app/views/layouts/backoffice.html.erb +3 -4
- data/test_app/app/views/pages/index.html.erb +2 -2
- data/test_app/config/application.rb +12 -3
- data/test_app/config/environments/development.rb +0 -1
- data/test_app/config/initializers/interpret.rb +0 -1
- data/test_app/config/routes.rb +10 -1
- data/test_app/db/migrate/{20111021100344_interpret_create_translations.rb → 20111108094455_create_translations.rb} +3 -4
- data/test_app/db/schema.rb +3 -0
- metadata +60 -78
- data/app/views/interpret/translations/live_edit.html.erb +0 -11
- data/app/views/layouts/interpret.html.erb +0 -56
- data/lib/generators/interpret/migration_generator.rb +0 -25
- data/lib/generators/interpret/setup_generator.rb +0 -21
- data/lib/interpret/capistrano.rb +0 -18
- data/lib/interpret/controller_filter.rb +0 -12
- data/public/javascripts/facebox-1.3/closelabel.png +0 -0
- data/public/javascripts/facebox-1.3/facebox.css +0 -80
- data/public/javascripts/facebox-1.3/facebox.js +0 -309
- data/public/javascripts/facebox-1.3/loading.gif +0 -0
- data/public/stylesheets/interpret_live_edit_style.css +0 -38
- data/test_app/config/deploy.rb +0 -24
- data/test_app/config/initializers/rack_patch.rb +0 -13
- data/test_app/public/javascripts/application.js +0 -2
- data/test_app/public/javascripts/best_in_place.js +0 -456
- data/test_app/public/javascripts/facebox-1.3/closelabel.png +0 -0
- data/test_app/public/javascripts/facebox-1.3/facebox.css +0 -80
- data/test_app/public/javascripts/facebox-1.3/facebox.js +0 -309
- data/test_app/public/javascripts/facebox-1.3/loading.gif +0 -0
- data/test_app/public/javascripts/interpret.js +0 -4
- data/test_app/public/javascripts/rails.js +0 -134
- data/test_app/public/stylesheets/folder.png +0 -0
- data/test_app/public/stylesheets/interpret_live_edit_style.css +0 -38
- data/test_app/public/stylesheets/interpret_style.css +0 -535
data/lib/interpret/helpers.rb
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
module Interpret
|
|
2
2
|
module InterpretHelpers
|
|
3
|
-
|
|
4
3
|
# Generates the html tree from the given keys
|
|
5
4
|
def interpret_show_tree(tree, origin_keys)
|
|
6
5
|
tree = tree.first[1]
|
|
@@ -12,11 +11,6 @@ module Interpret
|
|
|
12
11
|
build_tree(tree, origin_keys)
|
|
13
12
|
end
|
|
14
13
|
|
|
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
14
|
def interpret_title(title)
|
|
21
15
|
content_for :title do
|
|
22
16
|
title
|
|
@@ -24,72 +18,29 @@ module Interpret
|
|
|
24
18
|
end
|
|
25
19
|
|
|
26
20
|
def interpret_parent_layout(layout)
|
|
27
|
-
@
|
|
21
|
+
@view_flow.set(:layout, self.output_buffer)
|
|
28
22
|
self.output_buffer = render(:file => "layouts/#{layout}")
|
|
29
23
|
end
|
|
30
24
|
|
|
31
|
-
def t(key, options = {})
|
|
32
|
-
if Interpret.live_edit
|
|
33
|
-
keys = build_keys(key, options)
|
|
34
|
-
"<span class='interpret_editable' data-key='#{keys}'>#{translate(key, options)}</span>".html_safe
|
|
35
|
-
else
|
|
36
|
-
translate(key, options) #.html_safe
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def interpret_live_edition
|
|
41
|
-
return unless Interpret.live_edit
|
|
42
|
-
content_tag(:div) do
|
|
43
|
-
concat(javascript_include_tag "facebox-1.3/facebox")
|
|
44
|
-
concat javascript_tag <<-JS
|
|
45
|
-
$(document).ready(function(){
|
|
46
|
-
$(".interpret_editable").click(function() {
|
|
47
|
-
var key = $(this).attr("data-key");
|
|
48
|
-
jQuery.facebox({ ajax: '#{live_edit_interpret_translations_path}?key=' + key});
|
|
49
|
-
return false;
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
JS
|
|
53
|
-
concat(stylesheet_link_tag "interpret_live_edit_style")
|
|
54
|
-
concat(stylesheet_link_tag "/javascripts/facebox-1.3/facebox.css")
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
25
|
private
|
|
59
|
-
def build_keys(key, options)
|
|
60
|
-
I18n.normalize_keys(I18n.locale, scope_key_by_partial(key), options[:scope]).join(".")
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def scope_key_by_partial(key)
|
|
64
|
-
if key.to_s.first == "."
|
|
65
|
-
"#{@_virtual_path.gsub(%r{/_?}, ".")}#{key.to_s}"
|
|
66
|
-
else
|
|
67
|
-
key
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
26
|
|
|
71
27
|
def build_tree(hash, origin_keys = "", prev_key = "")
|
|
72
28
|
out = "<ul>"
|
|
73
29
|
if origin_keys.present? && prev_key.blank?
|
|
74
30
|
parent_key = origin_keys.split(".")[0..-2].join(".")
|
|
75
31
|
if parent_key.blank?
|
|
76
|
-
out << "<li>#{link_to "..",
|
|
32
|
+
out << "<li>#{link_to "..", root_path}</li>"
|
|
77
33
|
else
|
|
78
|
-
out << "<li>#{link_to "..",
|
|
34
|
+
out << "<li>#{link_to "..", root_path(:key => parent_key)}</li>"
|
|
79
35
|
end
|
|
80
36
|
end
|
|
81
37
|
hash.keys.each do |key|
|
|
82
38
|
out << "<li>"
|
|
83
|
-
out << "#{link_to key,
|
|
39
|
+
out << "#{link_to key, root_path(:key => "#{origin_keys.blank? ? "" : "#{origin_keys}."}#{prev_key}#{key}")}"
|
|
84
40
|
out << "</li>"
|
|
85
41
|
end
|
|
86
42
|
out << "</ul>"
|
|
87
43
|
out.html_safe
|
|
88
44
|
end
|
|
89
|
-
|
|
90
|
-
def current_controller?(opts)
|
|
91
|
-
hash = Rails.application.routes.recognize_path(url_for(opts))
|
|
92
|
-
params[:controller] == hash[:controller]
|
|
93
|
-
end
|
|
94
45
|
end
|
|
95
46
|
end
|
data/lib/interpret/version.rb
CHANGED
data/lib/interpret.rb
CHANGED
|
@@ -8,20 +8,16 @@ module Interpret
|
|
|
8
8
|
mattr_accessor :sweeper
|
|
9
9
|
mattr_accessor :parent_controller
|
|
10
10
|
mattr_accessor :registered_envs
|
|
11
|
-
mattr_accessor :scope
|
|
12
11
|
mattr_accessor :current_user
|
|
13
12
|
mattr_accessor :layout
|
|
14
13
|
mattr_accessor :soft
|
|
15
|
-
mattr_accessor :live_edit
|
|
16
14
|
mattr_accessor :black_list
|
|
17
15
|
mattr_accessor :ability
|
|
18
16
|
|
|
19
17
|
@@parent_controller = "application_controller"
|
|
20
18
|
@@registered_envs = [:production, :staging]
|
|
21
|
-
@@scope = ""
|
|
22
19
|
@@layout = "interpret_base"
|
|
23
20
|
@@soft = false
|
|
24
|
-
@@live_edit = false
|
|
25
21
|
@@black_list = []
|
|
26
22
|
@@current_user = "current_user"
|
|
27
23
|
@@ability = "interpret/ability"
|
data/script/rails
ADDED
|
@@ -6,32 +6,32 @@ describe "Missing translations" do
|
|
|
6
6
|
before { load_integration_data }
|
|
7
7
|
|
|
8
8
|
it "should show me nothing when I'm in english language" do
|
|
9
|
-
visit
|
|
9
|
+
visit missing_translations_path(:en)
|
|
10
10
|
page.should have_content("There can't be missing translations for the main language")
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
it "should show the total number of missing translations" do
|
|
14
|
-
visit
|
|
14
|
+
visit missing_translations_path(:es)
|
|
15
15
|
page.should have_content("There are 2 missing translations in [es]")
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
it "should show me a table with all missing translations" do
|
|
19
|
-
visit
|
|
19
|
+
visit missing_translations_path(:es)
|
|
20
20
|
elements = page.all("table#missing_translations tbody tr")
|
|
21
21
|
elements.size.should == 2
|
|
22
22
|
elements.first.should have_content("missings.p1")
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
it "should show me the value in english for a given key" do
|
|
26
|
-
visit
|
|
26
|
+
visit missing_translations_path(:es)
|
|
27
27
|
page.should have_content("Missing one")
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
it "should let me create a new translation in the current language" do
|
|
31
|
-
visit
|
|
31
|
+
visit missing_translations_path(:es)
|
|
32
32
|
|
|
33
33
|
within("table#missing_translations tbody tr:first") do
|
|
34
|
-
page.fill_in "
|
|
34
|
+
page.fill_in "translation_value", :with => "Uno perdido"
|
|
35
35
|
page.click_button "Create"
|
|
36
36
|
end
|
|
37
37
|
|
|
@@ -41,7 +41,7 @@ describe "Missing translations" do
|
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
it "should let me destroy the original translation" do
|
|
44
|
-
visit
|
|
44
|
+
visit missing_translations_path(:es)
|
|
45
45
|
|
|
46
46
|
within("table#missing_translations tbody tr:first") do
|
|
47
47
|
page.click_link "Destroy"
|
|
@@ -53,7 +53,7 @@ describe "Missing translations" do
|
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
it "should not show me blacklisted translations" do
|
|
56
|
-
visit
|
|
56
|
+
visit missing_translations_path(:es)
|
|
57
57
|
page.should have_no_content("missings.black")
|
|
58
58
|
elements = page.all("table#missing_translations tbody tr")
|
|
59
59
|
elements.size.should == 2
|
|
@@ -6,7 +6,7 @@ describe "Search" do
|
|
|
6
6
|
before { load_integration_data }
|
|
7
7
|
|
|
8
8
|
it "should return the correct results searching by text" do
|
|
9
|
-
visit
|
|
9
|
+
visit search_path(:es)
|
|
10
10
|
fill_in "Translation text", :with => "Comentarios"
|
|
11
11
|
click_button "SEARCH"
|
|
12
12
|
|
|
@@ -17,7 +17,7 @@ describe "Search" do
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
it "should work with accents and other non ascii chars" do
|
|
20
|
-
visit
|
|
20
|
+
visit search_path(:es)
|
|
21
21
|
fill_in "Translation text", :with => "extraña"
|
|
22
22
|
click_button "SEARCH"
|
|
23
23
|
|
|
@@ -28,7 +28,7 @@ describe "Search" do
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
it "should return the correct results searching by key" do
|
|
31
|
-
visit
|
|
31
|
+
visit search_path(:es)
|
|
32
32
|
fill_in "Key value", :with => "printer"
|
|
33
33
|
click_button "SEARCH"
|
|
34
34
|
|
|
@@ -40,7 +40,7 @@ describe "Search" do
|
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
it "should not return blacklisted translations by key" do
|
|
43
|
-
visit
|
|
43
|
+
visit search_path(:es)
|
|
44
44
|
fill_in "Key value", :with => "black_p1"
|
|
45
45
|
click_button "SEARCH"
|
|
46
46
|
|
|
@@ -48,7 +48,7 @@ describe "Search" do
|
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
it "should not return blacklisted translations by text" do
|
|
51
|
-
visit
|
|
51
|
+
visit search_path(:es)
|
|
52
52
|
fill_in "Translation text", :with => "Una frase prohibida"
|
|
53
53
|
click_button "SEARCH"
|
|
54
54
|
|
|
@@ -56,7 +56,7 @@ describe "Search" do
|
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
it "should say the number of results found" do
|
|
59
|
-
visit
|
|
59
|
+
visit search_path(:es)
|
|
60
60
|
fill_in "Key value", :with => "printer"
|
|
61
61
|
click_button "SEARCH"
|
|
62
62
|
|
|
@@ -66,7 +66,7 @@ describe "Search" do
|
|
|
66
66
|
end
|
|
67
67
|
|
|
68
68
|
it "should be able to switch the language after a search" do
|
|
69
|
-
visit
|
|
69
|
+
visit search_path(:es)
|
|
70
70
|
fill_in "Key value", :with => "printer"
|
|
71
71
|
click_button "SEARCH"
|
|
72
72
|
|
|
@@ -75,7 +75,7 @@ describe "Search" do
|
|
|
75
75
|
end
|
|
76
76
|
|
|
77
77
|
it "should see the search results in the same order after switching languages" do
|
|
78
|
-
visit
|
|
78
|
+
visit search_path(:es)
|
|
79
79
|
fill_in "Key value", :with => "printer"
|
|
80
80
|
click_button "SEARCH"
|
|
81
81
|
res = page.all("table#results tbody tr").map{|x| x.find("td.key").text}
|
|
@@ -6,23 +6,23 @@ describe "Stale translations" do
|
|
|
6
6
|
before { load_integration_data }
|
|
7
7
|
|
|
8
8
|
it "should show me nothing when I'm in english language" do
|
|
9
|
-
visit
|
|
9
|
+
visit stale_translations_path(:en)
|
|
10
10
|
page.should have_content("There can't be stale translations for the main language")
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
it "should show me the recently modified translations in english", :js => true do
|
|
14
|
-
visit
|
|
14
|
+
visit root_path(:en)
|
|
15
15
|
change_translation("table#results tbody tr:first", "New comments text")
|
|
16
16
|
|
|
17
|
-
visit
|
|
17
|
+
visit stale_translations_path(:es)
|
|
18
18
|
page.all("table#stale_translations tbody tr").size.should == 1
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
it "should not show anything if I update a 'es' translation", :js => true do
|
|
22
|
-
visit
|
|
22
|
+
visit root_path(:es)
|
|
23
23
|
change_translation("table#results tbody tr:first", "New comments text")
|
|
24
24
|
|
|
25
|
-
visit
|
|
25
|
+
visit stale_translations_path(:es)
|
|
26
26
|
page.all("table#stale_translations tbody tr").size.should == 0
|
|
27
27
|
end
|
|
28
28
|
end
|
|
@@ -7,7 +7,7 @@ describe "Tools" do
|
|
|
7
7
|
|
|
8
8
|
describe "Download" do
|
|
9
9
|
it "should be able to download a .yml file for the current language" do
|
|
10
|
-
visit
|
|
10
|
+
visit tools_path(:en)
|
|
11
11
|
page.should have_button("Download")
|
|
12
12
|
|
|
13
13
|
page.click_button "Download"
|
|
@@ -15,7 +15,7 @@ describe "Tools" do
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "should get a yaml file for the current language" do
|
|
18
|
-
visit
|
|
18
|
+
visit tools_path(:en)
|
|
19
19
|
page.should have_button("Download")
|
|
20
20
|
|
|
21
21
|
page.click_button "Download"
|
|
@@ -24,7 +24,7 @@ describe "Tools" do
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
it "should get a yaml file with all the correct translations" do
|
|
27
|
-
visit
|
|
27
|
+
visit tools_path(:en)
|
|
28
28
|
page.should have_button("Download")
|
|
29
29
|
|
|
30
30
|
page.click_button "Download"
|
|
@@ -37,7 +37,7 @@ describe "Tools" do
|
|
|
37
37
|
|
|
38
38
|
describe "Import" do
|
|
39
39
|
it "should be able to import a file" do
|
|
40
|
-
visit
|
|
40
|
+
visit tools_path(:en)
|
|
41
41
|
path = create_tmp_file("""
|
|
42
42
|
en:
|
|
43
43
|
someky: somevalue
|
|
@@ -52,7 +52,7 @@ describe "Tools" do
|
|
|
52
52
|
it:
|
|
53
53
|
someky: somevalue
|
|
54
54
|
""")
|
|
55
|
-
visit
|
|
55
|
+
visit tools_path(:en)
|
|
56
56
|
page.attach_file("file", path)
|
|
57
57
|
page.click_button "Upload"
|
|
58
58
|
page.should have_content("the language doesn't match")
|
|
@@ -60,12 +60,12 @@ describe "Tools" do
|
|
|
60
60
|
|
|
61
61
|
it "should update existing translations" do
|
|
62
62
|
path = create_tmp_file(import_en_yml)
|
|
63
|
-
visit
|
|
63
|
+
visit tools_path(:en)
|
|
64
64
|
|
|
65
65
|
page.attach_file("file", path)
|
|
66
66
|
page.click_button "Upload"
|
|
67
67
|
|
|
68
|
-
visit
|
|
68
|
+
visit root_path(:en)
|
|
69
69
|
within("table#results tbody tr:nth-child(4)") do
|
|
70
70
|
page.should have_content("A new printer phrase")
|
|
71
71
|
end
|
|
@@ -73,12 +73,12 @@ describe "Tools" do
|
|
|
73
73
|
|
|
74
74
|
it "should create non existant translations" do
|
|
75
75
|
path = create_tmp_file(import_en_yml)
|
|
76
|
-
visit
|
|
76
|
+
visit tools_path(:en)
|
|
77
77
|
|
|
78
78
|
page.attach_file("file", path)
|
|
79
79
|
page.click_button "Upload"
|
|
80
80
|
|
|
81
|
-
visit
|
|
81
|
+
visit root_path(:en)
|
|
82
82
|
page.should have_content("new_stuff")
|
|
83
83
|
page.should have_content("Something brand new")
|
|
84
84
|
end
|
|
@@ -6,7 +6,7 @@ describe "Translations" do
|
|
|
6
6
|
before { load_integration_data }
|
|
7
7
|
|
|
8
8
|
it "should let me edit a translation", :js => true do
|
|
9
|
-
visit
|
|
9
|
+
visit root_path(:en)
|
|
10
10
|
|
|
11
11
|
# We need this to identify the translation we want to change
|
|
12
12
|
bip_id = ""
|
|
@@ -18,7 +18,7 @@ describe "Translations" do
|
|
|
18
18
|
bip_area bip_id, :value, "New value"
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
visit
|
|
21
|
+
visit root_path(:en)
|
|
22
22
|
within("table#results tbody tr:first") do
|
|
23
23
|
page.should have_content("New value")
|
|
24
24
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Configure Rails Envinronment
|
|
2
2
|
ENV["RAILS_ENV"] = "test"
|
|
3
3
|
|
|
4
|
-
require File.expand_path('../../test_app/config/environment', __FILE__)
|
|
4
|
+
require File.expand_path('../../test_app/config/environment.rb', __FILE__)
|
|
5
5
|
require "rspec/rails"
|
|
6
6
|
require 'yaml'
|
|
7
7
|
|
|
@@ -9,14 +9,7 @@ require 'yaml'
|
|
|
9
9
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each{|f| require f}
|
|
10
10
|
|
|
11
11
|
RSpec.configure do |config|
|
|
12
|
-
# Remove this line if you don't want RSpec's should and should_not
|
|
13
|
-
# methods or matchers
|
|
14
|
-
require 'rspec/expectations'
|
|
15
|
-
|
|
16
|
-
config.include RSpec::Matchers
|
|
17
12
|
config.include BestInPlace::TestHelpers
|
|
18
|
-
config.use_transactional_fixtures = true
|
|
19
13
|
|
|
20
|
-
|
|
21
|
-
config.mock_with :rspec
|
|
14
|
+
config.use_transactional_fixtures = true
|
|
22
15
|
end
|
data/test_app/Gemfile
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
source 'http://rubygems.org'
|
|
2
2
|
|
|
3
|
-
gem 'rails', '~> 3.
|
|
3
|
+
gem 'rails', '~> 3.1.1'
|
|
4
4
|
gem 'haml-rails'
|
|
5
|
-
gem 'capistrano'
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
gem 'sqlite3-ruby', :require => 'sqlite3'
|
|
9
|
-
end
|
|
6
|
+
gem 'sqlite3'
|
|
10
7
|
|
|
11
8
|
gem 'interpret', :path => ".."
|
|
12
|
-
gem 'mysql2', "~> 0.
|
|
9
|
+
gem 'mysql2', "~> 0.3.0"
|
|
10
|
+
|
|
11
|
+
gem 'jquery-rails'
|
|
12
|
+
|
|
13
|
+
group :assets do
|
|
14
|
+
gem 'sass-rails', '~> 3.1.4'
|
|
15
|
+
gem 'coffee-rails', '~> 3.1.1'
|
|
16
|
+
gem 'uglifier', '>= 1.0.3'
|
|
17
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -13,7 +13,7 @@ margin: 0px;
|
|
|
13
13
|
|
|
14
14
|
body
|
|
15
15
|
{
|
|
16
|
-
background: #F9F9F7 url('
|
|
16
|
+
background: #F9F9F7 url(<%= asset_path 'a1.gif' %>) repeat-x;
|
|
17
17
|
font-size: 11px;
|
|
18
18
|
font-family: "trebuchet ms", helvetica, sans-serif;
|
|
19
19
|
color: #8C8C73;
|
|
@@ -47,7 +47,7 @@ img.picA
|
|
|
47
47
|
{
|
|
48
48
|
position: relative;
|
|
49
49
|
top: -2px;
|
|
50
|
-
background: url('
|
|
50
|
+
background: url(<%= asset_path 'a47.gif' %>) no-repeat;
|
|
51
51
|
width: 76px;
|
|
52
52
|
height: 74px;
|
|
53
53
|
padding: 8px;
|
|
@@ -57,7 +57,7 @@ img.picB
|
|
|
57
57
|
{
|
|
58
58
|
position: relative;
|
|
59
59
|
top: -2px;
|
|
60
|
-
background: url('
|
|
60
|
+
background: url(<%= asset_path 'a26.gif' %>) no-repeat;
|
|
61
61
|
width: 146px;
|
|
62
62
|
height: 75px;
|
|
63
63
|
padding: 7px;
|
|
@@ -94,7 +94,7 @@ padding-top: 0px;
|
|
|
94
94
|
position: absolute;
|
|
95
95
|
top: 0px;
|
|
96
96
|
left: 0px;
|
|
97
|
-
background: #fff url('
|
|
97
|
+
background: #fff url(<%= asset_path 'upbg.gif' %>) no-repeat;
|
|
98
98
|
width: 747px;
|
|
99
99
|
height: 264px;
|
|
100
100
|
z-index: 1;
|
|
@@ -105,7 +105,7 @@ z-index: 1;
|
|
|
105
105
|
position: relative;
|
|
106
106
|
width: 747px;
|
|
107
107
|
margin: 0 auto;
|
|
108
|
-
background: #fff url('
|
|
108
|
+
background: #fff url(<%= asset_path 'abg.gif' %>) repeat-y;
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
#inner
|
|
@@ -118,7 +118,7 @@ z-index: 2;
|
|
|
118
118
|
#header
|
|
119
119
|
{
|
|
120
120
|
position: absolute;
|
|
121
|
-
background: #FF7800 url('
|
|
121
|
+
background: #FF7800 url(<%= asset_path 'a8.gif' %>) repeat-x;
|
|
122
122
|
width: 202px;
|
|
123
123
|
height: 92px;
|
|
124
124
|
color: #fff;
|
|
@@ -157,7 +157,7 @@ color: #FCE2CA;
|
|
|
157
157
|
{
|
|
158
158
|
position: absolute;
|
|
159
159
|
right: 30px;
|
|
160
|
-
background: #EAEAE2 url('
|
|
160
|
+
background: #EAEAE2 url(<%= asset_path 'a10.jpg' %>) no-repeat;
|
|
161
161
|
width: 458px;
|
|
162
162
|
height: 92px;
|
|
163
163
|
}
|
|
@@ -165,7 +165,7 @@ height: 92px;
|
|
|
165
165
|
#menu
|
|
166
166
|
{
|
|
167
167
|
position: relative;
|
|
168
|
-
background: #46461F url('
|
|
168
|
+
background: #46461F url(<%= asset_path 'a16.gif' %>) repeat-x;
|
|
169
169
|
height: 67px;
|
|
170
170
|
padding: 0px 20px 0px 5px;
|
|
171
171
|
margin: 98px 0px 20px 0px;
|
|
@@ -199,7 +199,7 @@ font-weight: bold;
|
|
|
199
199
|
|
|
200
200
|
#menu ul li a:hover
|
|
201
201
|
{
|
|
202
|
-
background: #fff url('
|
|
202
|
+
background: #fff url(<%= asset_path 'a18.gif' %>) repeat-x top;
|
|
203
203
|
color: #4A4A24;
|
|
204
204
|
text-decoration: none;
|
|
205
205
|
}
|
|
@@ -223,7 +223,7 @@ font-size: 16px;
|
|
|
223
223
|
line-height: 25px;
|
|
224
224
|
color: #656551;
|
|
225
225
|
letter-spacing: -1px;
|
|
226
|
-
background: url('
|
|
226
|
+
background: url(<%= asset_path 'a22.gif' %>) bottom repeat-x;
|
|
227
227
|
padding: 0px 0px 10px 10px;
|
|
228
228
|
margin-bottom: 20px;
|
|
229
229
|
}
|
|
@@ -249,7 +249,7 @@ font-size: 18px;
|
|
|
249
249
|
line-height: 25px;
|
|
250
250
|
color: #111;
|
|
251
251
|
letter-spacing: -1px;
|
|
252
|
-
background: url('
|
|
252
|
+
background: url(<%= asset_path 'a22.gif' %>) bottom repeat-x;
|
|
253
253
|
padding: 0px 0px 10px 15px;
|
|
254
254
|
margin-bottom: 20px;
|
|
255
255
|
}
|
|
@@ -289,7 +289,7 @@ margin-bottom: 0px;
|
|
|
289
289
|
{
|
|
290
290
|
position: relative;
|
|
291
291
|
top: -10px;
|
|
292
|
-
background: url('
|
|
292
|
+
background: url(<%= asset_path 'a33.gif' %>) repeat-x;
|
|
293
293
|
height: 64px;
|
|
294
294
|
}
|
|
295
295
|
|
|
@@ -313,17 +313,17 @@ background-position: 0px 2px;
|
|
|
313
313
|
|
|
314
314
|
#primarycontent .post .footer ul li.printerfriendly
|
|
315
315
|
{
|
|
316
|
-
background-image: url('
|
|
316
|
+
background-image: url(<%= asset_path 'a41.gif' %>);
|
|
317
317
|
}
|
|
318
318
|
|
|
319
319
|
#primarycontent .post .footer ul li.comments
|
|
320
320
|
{
|
|
321
|
-
background-image: url('
|
|
321
|
+
background-image: url(<%= asset_path 'a36.gif' %>);
|
|
322
322
|
}
|
|
323
323
|
|
|
324
324
|
#primarycontent .post .footer ul li.readmore
|
|
325
325
|
{
|
|
326
|
-
background-image: url('
|
|
326
|
+
background-image: url(<%= asset_path 'a38.gif' %>);
|
|
327
327
|
}
|
|
328
328
|
|
|
329
329
|
#footer
|
|
@@ -333,7 +333,7 @@ clear: both;
|
|
|
333
333
|
height: 66px;
|
|
334
334
|
text-align: center;
|
|
335
335
|
line-height: 66px;
|
|
336
|
-
background-image: url('
|
|
336
|
+
background-image: url(<%= asset_path 'a50.gif' %>);
|
|
337
337
|
color: #A8A88D;
|
|
338
338
|
}
|
|
339
339
|
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Another Backoffice section
|