xsltgem 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,88 @@
1
+ $: << File.expand_path(File.dirname(__FILE__) + '/../lib')
2
+ require 'test/unit'
3
+ require 'rexml/document'
4
+ require 'xslt_render'
5
+ require 'activesupport'
6
+ require 'pathname'
7
+
8
+ RAILS_ENV = :test if not defined? RAILS_ENV
9
+ RAILS_ROOT = '.' if !defined? RAILS_ROOT
10
+ if not defined? ActionView::Helpers::AssetTagHelper::JAVASCRIPT_DEFAULT_SOURCES
11
+ class ActionView
12
+ class Helpers
13
+ class AssetTagHelper
14
+ JAVASCRIPT_DEFAULT_SOURCES = ''
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ class String
21
+ def blank?
22
+ self !~ /\S/
23
+ end
24
+ end
25
+
26
+ class Test::Unit::TestCase
27
+ def assert_xml_tag(xml, conditions)
28
+ doc = REXML::Document.new(xml)
29
+ assert doc.elements[%Q{//#{conditions[:tag]}[text()="#{conditions[:content]}"]}],
30
+ "expected tag, but no tag found matching #{conditions.inspect} in:\n#{xml.inspect}"
31
+ end
32
+ end
33
+
34
+ module XSLTTestHelper
35
+ include XSLTRender
36
+
37
+ def html_from_xml_helper(xml, partial_template_text,
38
+ base_template_filename =
39
+ "#{RAILS_ROOT}/public/xslts/layouts/application.html.xsl")
40
+
41
+ include_text = base_template_filename ? %Q{<xsl:include href="#{base_template_filename}" />\n} : ""
42
+
43
+ template_text = <<TEMPLATE
44
+ <?xml version="1.0" encoding="UTF-8"?>
45
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
46
+ #{include_text}
47
+ #{partial_template_text}
48
+ </xsl:stylesheet>
49
+ TEMPLATE
50
+
51
+ template_file = Tempfile.new('template.xsl')
52
+ template_file.print(template_text)
53
+ template_file.flush
54
+
55
+ html_from_xml(template_file.path, xml).sub(/\A<\?[^>]*\?>\s*/m, '').sub(/\s*\z/m, '')
56
+ end
57
+ end
58
+
59
+ class TermLanguage
60
+ attr_reader :translations, :language, :controller_name
61
+
62
+ def translation_base
63
+ Pathname.new(RAILS_ROOT)+'public'+'xslts'+'i18n'
64
+ end
65
+
66
+ def translation_file
67
+ translation_base+"normal.#{language}.xml"
68
+ end
69
+
70
+ def get_translations
71
+ REXML::Document.new(File.open(translation_file, 'r') {|f| f.read})
72
+ end
73
+
74
+ def initialize(language_symbol)
75
+ @language = language_symbol
76
+ @translations = get_translations
77
+ end
78
+
79
+ def translate(term)
80
+ if node = translations.elements["/terms/term[@name='#{term}']"]
81
+ node.text
82
+ else
83
+ term
84
+ end
85
+ end
86
+
87
+ alias [] translate
88
+ end
data/xsltgem.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "xsltgem/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "xsltgem"
7
+ s.version = Xsltgem::VERSION
8
+ s.authors = ["DarTSeNSe"]
9
+ s.email = ["sense8life@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{xsltgem}
12
+ s.description = %q{xsltgem}
13
+
14
+ s.rubyforge_project = "xsltgem"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ s.add_dependency 'xml_serialization'
23
+ # s.add_development_dependency "rspec"
24
+ # s.add_runtime_dependency "rest-client"
25
+ end
metadata ADDED
@@ -0,0 +1,83 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: xsltgem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - DarTSeNSe
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: xml_serialization
16
+ requirement: &21039940 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *21039940
25
+ description: xsltgem
26
+ email:
27
+ - sense8life@gmail.com
28
+ executables: []
29
+ extensions: []
30
+ extra_rdoc_files: []
31
+ files:
32
+ - .gitignore
33
+ - .idea/encodings.xml
34
+ - .idea/misc.xml
35
+ - .idea/modules.xml
36
+ - .idea/scopes/scope_settings.xml
37
+ - .idea/vcs.xml
38
+ - .idea/xsltgem.iml
39
+ - Gemfile
40
+ - Rakefile
41
+ - assets/json_params.xsl
42
+ - assets/xslt_helpers.xsl
43
+ - lib/xsltgem.rb
44
+ - lib/xsltgem/version.rb
45
+ - lib/xslts/i18n.xsl
46
+ - test/builtin_templates_test.rb
47
+ - test/i18n/normal.en.xml
48
+ - test/i18n/translation.en.xml
49
+ - test/i18n/translation.es.xml
50
+ - test/i18n/translation.ja.xml
51
+ - test/mock/erroneous_action.html.xsl
52
+ - test/mock/test_action.html.xsl
53
+ - test/mock/test_translation.html.xsl
54
+ - test/term_language_test.rb
55
+ - test/translation_test.rb
56
+ - test/xslt_render_test.rb
57
+ - test/xslt_test_helper.rb
58
+ - xsltgem.gemspec
59
+ homepage: ''
60
+ licenses: []
61
+ post_install_message:
62
+ rdoc_options: []
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ requirements: []
78
+ rubyforge_project: xsltgem
79
+ rubygems_version: 1.8.15
80
+ signing_key:
81
+ specification_version: 3
82
+ summary: xsltgem
83
+ test_files: []