trenni 3.0.0 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 17e4c37bf42689b8147fa6a2bd1c1ec0e639ba4e
4
- data.tar.gz: 1329a84371a078a28fc2ffc51fd700491cf8d71b
3
+ metadata.gz: edb9c2bbe55c3fe6cf46a043cb242ad079c914ec
4
+ data.tar.gz: 489dfdf5ea722b9f6f0af82a97c9f374e2129462
5
5
  SHA512:
6
- metadata.gz: '0088146935eaa008d901c8c1675bfcce76770114e45d1359891dd1cf6d56a91313e781db70707efae6061bc8f3b82749815bc2deed5af1e4498e94c735998900'
7
- data.tar.gz: 3291577a7d8ad37f4d48217c9e43e033414f6dc64e769cff239f088420dfb80610bc2490c2f3b72ed1555efdd152dce624d3a33c97e6049148ce82d0145d6aff
6
+ metadata.gz: cd32df2fba19bb867d04da303ee5913fbf7e709805cbac31687c145c815578d0f6d800cf117606eaae91c8cc6ebe376d050d570ebd68c45889d97485656f2903
7
+ data.tar.gz: 76c1ef902dbc6174c426db011446af33b3a1f3d6c27eff97c1b1128a3f5ce39902a6368161cd91adb46f4db30146893cf1a3190f37bab7f232fd20d8c659e99f
data/.travis.yml CHANGED
@@ -1,13 +1,17 @@
1
1
  language: ruby
2
2
  sudo: false
3
+ before_install:
4
+ - gem install bundler
5
+ - gem update bundler
3
6
  before_script:
4
- - rake compile
7
+ - sh -c "cd ext && rake compile"
5
8
  rvm:
6
9
  - 2.1.8
7
10
  - 2.2.4
8
11
  - 2.3.0
9
12
  - 2.4.0
10
13
  - ruby-head
14
+ - jruby-head
11
15
  - rbx-2
12
16
  env:
13
17
  - COVERAGE=true
@@ -16,3 +20,4 @@ matrix:
16
20
  allow_failures:
17
21
  - rvm: "rbx-2"
18
22
  - rvm: "ruby-head"
23
+ - rvm: "jruby-head"
data/Rakefile CHANGED
@@ -1,86 +1,10 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
3
 
4
- RSpec::Core::RakeTask.new(:spec)
4
+ # Load all rake tasks:
5
+ import(*Dir.glob('tasks/**/*.rake'))
5
6
 
6
- task :default => :spec
7
-
8
- task :fetch_entities do
9
- require 'open-uri'
10
- require 'json'
11
-
12
- entites_json_path = File.expand_path("entities.json", __dir__)
13
-
14
- unless File.exist? entites_json_path
15
- url = "https://www.w3.org/TR/html5/entities.json"
16
- File.write(entites_json_path, open(url).read)
17
- end
18
-
19
- @entities = JSON.parse(File.read(entites_json_path)).delete_if{|string, _| !string.end_with? ';'}
20
- end
21
-
22
- task :update_entities => :fetch_entities do
23
- require 'trenni/template'
24
-
25
- paths = {
26
- 'ext/trenni/entities.rl' => 'ext/trenni/entities.trenni',
27
- 'lib/trenni/entities.rb' => 'lib/trenni/entities.trenni',
28
- }
29
-
30
- paths.each do |output_path, template_path|
31
- template = Trenni::Template.load_file(template_path)
32
-
33
- puts template.send(:code)
34
-
35
- #output = template.to_string(@entities)
36
-
37
- #File.write(output_path, output)
38
- end
39
- end
40
-
41
- require "rake/extensiontask"
42
-
43
- Rake::ExtensionTask.new "trenni" do |ext|
44
- ext.lib_dir = "lib/trenni"
45
- end
46
-
47
- PARSERS_DIRECTORY = File.expand_path("parsers", __dir__)
48
- FALLBACK_DIRECTORY = File.expand_path("lib/trenni/fallback", __dir__)
49
- NATIVE_DIRECTORY = File.expand_path("ext/trenni", __dir__)
50
-
51
- task :generate_fallback_parsers do
52
- Dir.chdir(FALLBACK_DIRECTORY) do
53
- Dir.glob("*.rl").each do |parser_path|
54
- sh("ragel", "-I", PARSERS_DIRECTORY, "-R", parser_path, "-F1")
55
- end
56
-
57
- sh("ruby-beautify", "--tabs", "--overwrite", *Dir.glob("*.rb"))
58
- end
59
- end
60
-
61
- task :generate_native_parsers do
62
- Dir.chdir(NATIVE_DIRECTORY) do
63
- Dir.glob("*.rl").each do |parser_path|
64
- sh("ragel", "-I", PARSERS_DIRECTORY, "-C", parser_path, "-G2")
65
- end
66
- end
67
- end
68
-
69
- task :generate_parsers => [:generate_native_parsers, :generate_fallback_parsers, :compile]
70
-
71
- task :visualize_parsers do
72
- Dir.chdir(FALLBACK_DIRECTORY) do
73
- Dir.glob("*.rl").each do |parser_path|
74
- dot_path = parser_path + ".dot"
75
- sh("ragel", "-I", PARSERS_DIRECTORY, "-Vp", parser_path, "-o", dot_path)
76
-
77
- pdf_path = parser_path + ".pdf"
78
- sh("dot", "-Tpdf", "-o", pdf_path, dot_path)
79
-
80
- sh("open", pdf_path) rescue nil
81
- end
82
- end
83
- end
7
+ RSpec::Core::RakeTask.new(:test)
84
8
 
85
9
  task :environment do
86
10
  $LOAD_PATH.unshift File.expand_path('lib', __dir__)
@@ -91,3 +15,5 @@ task :console => :environment do
91
15
 
92
16
  Pry.start
93
17
  end
18
+
19
+ task :default => :test
data/ext/Rakefile ADDED
@@ -0,0 +1,18 @@
1
+
2
+ spec_path = File.expand_path('../trenni.gemspec', Dir.pwd)
3
+ spec = Gem::Specification.load(spec_path)
4
+
5
+ require "rake/extensiontask"
6
+
7
+ unless RUBY_PLATFORM =~ /java/
8
+ Rake::ExtensionTask.new("trenni") do |ext|
9
+ ext.ext_dir = 'trenni'
10
+ ext.lib_dir = '../lib/trenni'
11
+ end
12
+ else
13
+ task :compile do
14
+ puts "Nothing to compile for this platform."
15
+ end
16
+ end
17
+
18
+ task :default => :compile
@@ -1,3 +1,4 @@
1
+
1
2
  # Loads mkmf which is used to make makefiles for Ruby extensions
2
3
  require 'mkmf'
3
4
 
@@ -16,3 +17,4 @@ dir_config(extension_name)
16
17
 
17
18
  # Generate the makefile to compile the native binary into `lib`:
18
19
  create_makefile(File.join(gem_name, extension_name))
20
+
@@ -19,5 +19,5 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  module Trenni
22
- VERSION = "3.0.0"
22
+ VERSION = "3.0.3"
23
23
  end
data/spec/spec_helper.rb CHANGED
@@ -19,6 +19,30 @@ end
19
19
  require "bundler/setup"
20
20
  require "trenni"
21
21
 
22
+ begin
23
+ require 'ruby-prof'
24
+
25
+ RSpec.shared_context "profile" do
26
+ before(:all) do
27
+ RubyProf.start
28
+ end
29
+
30
+ after(:all) do
31
+ result = RubyProf.stop
32
+
33
+ # Print a flat profile to text
34
+ printer = RubyProf::FlatPrinter.new(result)
35
+ printer.print(STDOUT)
36
+ end
37
+ end
38
+ rescue LoadError
39
+ RSpec.shared_context "profile" do
40
+ before(:all) do
41
+ puts "Profiling not supported on this platform."
42
+ end
43
+ end
44
+ end
45
+
22
46
  RSpec.configure do |config|
23
47
  # Enable flags like --only-failures and --next-failure
24
48
  config.example_status_persistence_file_path = ".rspec_status"
@@ -5,22 +5,6 @@ require 'trenni/entities'
5
5
 
6
6
  require 'nokogiri'
7
7
 
8
- require 'ruby-prof'
9
-
10
- RSpec.shared_context "profile" do
11
- before(:all) do
12
- RubyProf.start
13
- end
14
-
15
- after(:all) do
16
- result = RubyProf.stop
17
-
18
- # Print a flat profile to text
19
- printer = RubyProf::FlatPrinter.new(result)
20
- printer.print(STDOUT)
21
- end
22
- end
23
-
24
8
  RSpec.describe Trenni::Parsers do
25
9
  # include_context "profile"
26
10
 
@@ -4,8 +4,6 @@ require 'trenni/parsers'
4
4
  require 'trenni/template'
5
5
  require 'erb'
6
6
 
7
- # require 'ruby-prof'
8
-
9
7
  RSpec.describe Trenni::Template do
10
8
  class Model
11
9
  def name
@@ -0,0 +1,33 @@
1
+
2
+ task :fetch_entities do
3
+ require 'open-uri'
4
+ require 'json'
5
+
6
+ entites_json_path = File.expand_path("entities.json", __dir__)
7
+
8
+ unless File.exist? entites_json_path
9
+ url = "https://www.w3.org/TR/html5/entities.json"
10
+ File.write(entites_json_path, open(url).read)
11
+ end
12
+
13
+ @entities = JSON.parse(File.read(entites_json_path)).delete_if{|string, _| !string.end_with? ';'}
14
+ end
15
+
16
+ task :update_entities => :fetch_entities do
17
+ require 'trenni/template'
18
+
19
+ paths = {
20
+ 'ext/trenni/entities.rl' => 'ext/trenni/entities.trenni',
21
+ 'lib/trenni/entities.rb' => 'lib/trenni/entities.trenni',
22
+ }
23
+
24
+ paths.each do |output_path, template_path|
25
+ template = Trenni::Template.load_file(template_path)
26
+
27
+ puts template.send(:code)
28
+
29
+ #output = template.to_string(@entities)
30
+
31
+ #File.write(output_path, output)
32
+ end
33
+ end
@@ -0,0 +1,38 @@
1
+
2
+ PARSERS_DIRECTORY = File.expand_path("parsers", __dir__)
3
+ FALLBACK_DIRECTORY = File.expand_path("lib/trenni/fallback", __dir__)
4
+ NATIVE_DIRECTORY = File.expand_path("ext/trenni", __dir__)
5
+
6
+ task :generate_fallback_parsers do
7
+ Dir.chdir(FALLBACK_DIRECTORY) do
8
+ Dir.glob("*.rl").each do |parser_path|
9
+ sh("ragel", "-I", PARSERS_DIRECTORY, "-R", parser_path, "-F1")
10
+ end
11
+
12
+ sh("ruby-beautify", "--tabs", "--overwrite", *Dir.glob("*.rb"))
13
+ end
14
+ end
15
+
16
+ task :generate_native_parsers do
17
+ Dir.chdir(NATIVE_DIRECTORY) do
18
+ Dir.glob("*.rl").each do |parser_path|
19
+ sh("ragel", "-I", PARSERS_DIRECTORY, "-C", parser_path, "-G2")
20
+ end
21
+ end
22
+ end
23
+
24
+ task :generate_parsers => [:generate_native_parsers, :generate_fallback_parsers, :compile]
25
+
26
+ task :visualize_parsers do
27
+ Dir.chdir(FALLBACK_DIRECTORY) do
28
+ Dir.glob("*.rl").each do |parser_path|
29
+ dot_path = parser_path + ".dot"
30
+ sh("ragel", "-I", PARSERS_DIRECTORY, "-Vp", parser_path, "-o", dot_path)
31
+
32
+ pdf_path = parser_path + ".pdf"
33
+ sh("dot", "-Tpdf", "-o", pdf_path, dot_path)
34
+
35
+ sh("open", pdf_path) rescue nil
36
+ end
37
+ end
38
+ end
data/trenni.gemspec CHANGED
@@ -1,10 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'trenni/version'
2
+ require_relative 'lib/trenni/version'
5
3
 
6
4
  Gem::Specification.new do |spec|
7
5
  spec.name = "trenni"
6
+ spec.platform = Gem::Platform::RUBY
8
7
  spec.version = Trenni::VERSION
9
8
  spec.authors = ["Samuel Williams"]
10
9
  spec.email = ["samuel.williams@oriontransfer.co.nz"]
@@ -25,7 +24,8 @@ Gem::Specification.new do |spec|
25
24
 
26
25
  spec.required_ruby_version = '~> 2.1'
27
26
 
28
- spec.extensions = %w[ext/trenni/extconf.rb]
27
+ spec.extensions = %w[ext/Rakefile]
28
+ spec.add_dependency "rake-compiler"
29
29
 
30
30
  spec.add_development_dependency "bundler", "~> 1.3"
31
31
  spec.add_development_dependency "rspec", "~> 3.4"
metadata CHANGED
@@ -1,66 +1,80 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trenni
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-22 00:00:00.000000000 Z
11
+ date: 2017-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ name: rake-compiler
20
+ prerelease: false
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
15
28
  requirement: !ruby/object:Gem::Requirement
16
29
  requirements:
17
30
  - - "~>"
18
31
  - !ruby/object:Gem::Version
19
32
  version: '1.3'
20
- type: :development
33
+ name: bundler
21
34
  prerelease: false
35
+ type: :development
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
40
  version: '1.3'
27
41
  - !ruby/object:Gem::Dependency
28
- name: rspec
29
42
  requirement: !ruby/object:Gem::Requirement
30
43
  requirements:
31
44
  - - "~>"
32
45
  - !ruby/object:Gem::Version
33
46
  version: '3.4'
34
- type: :development
47
+ name: rspec
35
48
  prerelease: false
49
+ type: :development
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
54
  version: '3.4'
41
55
  - !ruby/object:Gem::Dependency
42
- name: rake
43
56
  requirement: !ruby/object:Gem::Requirement
44
57
  requirements:
45
58
  - - ">="
46
59
  - !ruby/object:Gem::Version
47
60
  version: '0'
48
- type: :development
61
+ name: rake
49
62
  prerelease: false
63
+ type: :development
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
- description: "\tTrenni is a templating system built on top of SGML/XML. It uses efficient\n\tnative
56
- parsers where possible and compiles templates into efficient Ruby.\n\t\n\tIn addition,
57
- Trenni includes an SGML/XML builder to assist with the generation\n\tof pleasantly
58
- formatted markup which is compatible with the included parsers.\n"
69
+ description: "\tTrenni is a templating system built on top of SGML/XML. It uses efficient\n\
70
+ \tnative parsers where possible and compiles templates into efficient Ruby.\n\t\n\
71
+ \tIn addition, Trenni includes an SGML/XML builder to assist with the generation\n\
72
+ \tof pleasantly formatted markup which is compatible with the included parsers.\n"
59
73
  email:
60
74
  - samuel.williams@oriontransfer.co.nz
61
75
  executables: []
62
76
  extensions:
63
- - ext/trenni/extconf.rb
77
+ - ext/Rakefile
64
78
  extra_rdoc_files: []
65
79
  files:
66
80
  - ".gitignore"
@@ -74,6 +88,7 @@ files:
74
88
  - benchmark/interpolation_vs_concat.rb
75
89
  - benchmark/io_vs_string.rb
76
90
  - entities.json
91
+ - ext/Rakefile
77
92
  - ext/trenni/escape.c
78
93
  - ext/trenni/escape.h
79
94
  - ext/trenni/extconf.rb
@@ -129,11 +144,13 @@ files:
129
144
  - spec/trenni/template_spec/interpolations.trenni
130
145
  - spec/trenni/template_spec/large.trenni
131
146
  - spec/trenni/template_spec/nested.trenni
147
+ - tasks/entities.rake
148
+ - tasks/parsers.rake
132
149
  - trenni.gemspec
133
150
  homepage: https://github.com/ioquatix/trenni
134
151
  licenses: []
135
152
  metadata: {}
136
- post_install_message:
153
+ post_install_message:
137
154
  rdoc_options: []
138
155
  require_paths:
139
156
  - lib
@@ -148,9 +165,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
165
  - !ruby/object:Gem::Version
149
166
  version: '0'
150
167
  requirements: []
151
- rubyforge_project:
152
- rubygems_version: 2.6.10
153
- signing_key:
168
+ rubyforge_project:
169
+ rubygems_version: 2.6.8
170
+ signing_key:
154
171
  specification_version: 4
155
172
  summary: A fast native templating system that compiles directly to Ruby code.
156
173
  test_files: