mustermann 1.0.2.rc1 → 1.0.2.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +799 -230
  3. data/{mustermann/bench → bench}/capturing.rb +0 -0
  4. data/{mustermann/bench → bench}/regexp.rb +0 -0
  5. data/{mustermann/bench → bench}/simple_vs_sinatra.rb +0 -0
  6. data/{mustermann/bench → bench}/template_vs_addressable.rb +0 -0
  7. data/{mustermann/lib → lib}/mustermann.rb +0 -0
  8. data/{mustermann/lib → lib}/mustermann/ast/boundaries.rb +0 -0
  9. data/{mustermann/lib → lib}/mustermann/ast/compiler.rb +0 -0
  10. data/{mustermann/lib → lib}/mustermann/ast/expander.rb +0 -0
  11. data/{mustermann/lib → lib}/mustermann/ast/node.rb +0 -0
  12. data/{mustermann/lib → lib}/mustermann/ast/param_scanner.rb +0 -0
  13. data/{mustermann/lib → lib}/mustermann/ast/parser.rb +0 -0
  14. data/{mustermann/lib → lib}/mustermann/ast/pattern.rb +0 -0
  15. data/{mustermann/lib → lib}/mustermann/ast/template_generator.rb +0 -0
  16. data/{mustermann/lib → lib}/mustermann/ast/transformer.rb +0 -0
  17. data/{mustermann/lib → lib}/mustermann/ast/translator.rb +0 -0
  18. data/{mustermann/lib → lib}/mustermann/ast/validation.rb +0 -0
  19. data/{mustermann/lib → lib}/mustermann/caster.rb +0 -0
  20. data/{mustermann/lib → lib}/mustermann/composite.rb +0 -0
  21. data/{mustermann/lib → lib}/mustermann/concat.rb +0 -0
  22. data/{mustermann/lib → lib}/mustermann/equality_map.rb +0 -0
  23. data/{mustermann/lib → lib}/mustermann/error.rb +0 -0
  24. data/{mustermann/lib → lib}/mustermann/expander.rb +0 -0
  25. data/{mustermann/lib → lib}/mustermann/extension.rb +0 -0
  26. data/{mustermann/lib → lib}/mustermann/identity.rb +0 -0
  27. data/{mustermann/lib → lib}/mustermann/mapper.rb +0 -0
  28. data/{mustermann/lib → lib}/mustermann/pattern.rb +0 -0
  29. data/{mustermann/lib → lib}/mustermann/pattern_cache.rb +0 -0
  30. data/{mustermann/lib → lib}/mustermann/regexp.rb +0 -0
  31. data/{mustermann/lib → lib}/mustermann/regexp_based.rb +0 -0
  32. data/{mustermann/lib → lib}/mustermann/regular.rb +0 -0
  33. data/{mustermann/lib → lib}/mustermann/simple_match.rb +0 -0
  34. data/{mustermann/lib → lib}/mustermann/sinatra.rb +0 -0
  35. data/{mustermann/lib → lib}/mustermann/sinatra/parser.rb +0 -0
  36. data/{mustermann/lib → lib}/mustermann/sinatra/safe_renderer.rb +0 -0
  37. data/{mustermann/lib → lib}/mustermann/sinatra/try_convert.rb +0 -0
  38. data/{mustermann/lib → lib}/mustermann/to_pattern.rb +0 -0
  39. data/{mustermann/lib → lib}/mustermann/version.rb +1 -1
  40. data/{mustermann/mustermann.gemspec → mustermann.gemspec} +0 -0
  41. data/{mustermann/spec → spec}/ast_spec.rb +0 -0
  42. data/{mustermann/spec → spec}/composite_spec.rb +0 -0
  43. data/{mustermann/spec → spec}/concat_spec.rb +0 -0
  44. data/{mustermann/spec → spec}/equality_map_spec.rb +0 -0
  45. data/{mustermann/spec → spec}/expander_spec.rb +0 -0
  46. data/{mustermann/spec → spec}/extension_spec.rb +0 -0
  47. data/{mustermann/spec → spec}/identity_spec.rb +0 -0
  48. data/{mustermann/spec → spec}/mapper_spec.rb +0 -0
  49. data/{mustermann/spec → spec}/mustermann_spec.rb +0 -0
  50. data/{mustermann/spec → spec}/pattern_spec.rb +0 -0
  51. data/{mustermann/spec → spec}/regexp_based_spec.rb +0 -0
  52. data/{mustermann/spec → spec}/regular_spec.rb +0 -0
  53. data/{mustermann/spec → spec}/simple_match_spec.rb +0 -0
  54. data/{mustermann/spec → spec}/sinatra_spec.rb +0 -0
  55. data/{mustermann/spec → spec}/to_pattern_spec.rb +0 -0
  56. metadata +71 -126
  57. data/.gitignore +0 -18
  58. data/.rspec +0 -5
  59. data/.travis.yml +0 -25
  60. data/.yardopts +0 -3
  61. data/Gemfile +0 -7
  62. data/Rakefile +0 -27
  63. data/mustermann-contrib/LICENSE +0 -23
  64. data/mustermann-contrib/README.md +0 -1155
  65. data/mustermann-contrib/examples/highlighting.rb +0 -35
  66. data/mustermann-contrib/highlighting.png +0 -0
  67. data/mustermann-contrib/irb.png +0 -0
  68. data/mustermann-contrib/lib/mustermann/cake.rb +0 -19
  69. data/mustermann-contrib/lib/mustermann/express.rb +0 -38
  70. data/mustermann-contrib/lib/mustermann/file_utils.rb +0 -218
  71. data/mustermann-contrib/lib/mustermann/file_utils/glob_pattern.rb +0 -40
  72. data/mustermann-contrib/lib/mustermann/fileutils.rb +0 -1
  73. data/mustermann-contrib/lib/mustermann/flask.rb +0 -199
  74. data/mustermann-contrib/lib/mustermann/pyramid.rb +0 -29
  75. data/mustermann-contrib/lib/mustermann/rails.rb +0 -47
  76. data/mustermann-contrib/lib/mustermann/shell.rb +0 -57
  77. data/mustermann-contrib/lib/mustermann/simple.rb +0 -51
  78. data/mustermann-contrib/lib/mustermann/string_scanner.rb +0 -314
  79. data/mustermann-contrib/lib/mustermann/strscan.rb +0 -1
  80. data/mustermann-contrib/lib/mustermann/template.rb +0 -63
  81. data/mustermann-contrib/lib/mustermann/uri_template.rb +0 -1
  82. data/mustermann-contrib/lib/mustermann/versions.rb +0 -47
  83. data/mustermann-contrib/lib/mustermann/visualizer.rb +0 -39
  84. data/mustermann-contrib/lib/mustermann/visualizer/highlight.rb +0 -138
  85. data/mustermann-contrib/lib/mustermann/visualizer/highlighter.rb +0 -38
  86. data/mustermann-contrib/lib/mustermann/visualizer/highlighter/ad_hoc.rb +0 -95
  87. data/mustermann-contrib/lib/mustermann/visualizer/highlighter/ast.rb +0 -103
  88. data/mustermann-contrib/lib/mustermann/visualizer/highlighter/composite.rb +0 -46
  89. data/mustermann-contrib/lib/mustermann/visualizer/highlighter/dummy.rb +0 -19
  90. data/mustermann-contrib/lib/mustermann/visualizer/highlighter/regular.rb +0 -105
  91. data/mustermann-contrib/lib/mustermann/visualizer/pattern_extension.rb +0 -69
  92. data/mustermann-contrib/lib/mustermann/visualizer/renderer/ansi.rb +0 -24
  93. data/mustermann-contrib/lib/mustermann/visualizer/renderer/generic.rb +0 -47
  94. data/mustermann-contrib/lib/mustermann/visualizer/renderer/hansi_template.rb +0 -35
  95. data/mustermann-contrib/lib/mustermann/visualizer/renderer/html.rb +0 -51
  96. data/mustermann-contrib/lib/mustermann/visualizer/renderer/sexp.rb +0 -38
  97. data/mustermann-contrib/lib/mustermann/visualizer/tree.rb +0 -64
  98. data/mustermann-contrib/lib/mustermann/visualizer/tree_renderer.rb +0 -79
  99. data/mustermann-contrib/mustermann-contrib.gemspec +0 -19
  100. data/mustermann-contrib/spec/cake_spec.rb +0 -91
  101. data/mustermann-contrib/spec/express_spec.rb +0 -210
  102. data/mustermann-contrib/spec/file_utils_spec.rb +0 -120
  103. data/mustermann-contrib/spec/flask_spec.rb +0 -362
  104. data/mustermann-contrib/spec/flask_subclass_spec.rb +0 -369
  105. data/mustermann-contrib/spec/pattern_extension_spec.rb +0 -50
  106. data/mustermann-contrib/spec/pyramid_spec.rb +0 -102
  107. data/mustermann-contrib/spec/rails_spec.rb +0 -648
  108. data/mustermann-contrib/spec/shell_spec.rb +0 -148
  109. data/mustermann-contrib/spec/simple_spec.rb +0 -269
  110. data/mustermann-contrib/spec/string_scanner_spec.rb +0 -272
  111. data/mustermann-contrib/spec/template_spec.rb +0 -842
  112. data/mustermann-contrib/spec/visualizer_spec.rb +0 -199
  113. data/mustermann-contrib/theme.png +0 -0
  114. data/mustermann-contrib/tree.png +0 -0
  115. data/mustermann/LICENSE +0 -23
  116. data/mustermann/README.md +0 -853
  117. data/support/lib/support.rb +0 -7
  118. data/support/lib/support/coverage.rb +0 -23
  119. data/support/lib/support/env.rb +0 -19
  120. data/support/lib/support/expand_matcher.rb +0 -28
  121. data/support/lib/support/generate_template_matcher.rb +0 -27
  122. data/support/lib/support/match_matcher.rb +0 -39
  123. data/support/lib/support/pattern.rb +0 -42
  124. data/support/lib/support/projects.rb +0 -20
  125. data/support/lib/support/scan_matcher.rb +0 -63
  126. data/support/support.gemspec +0 -27
@@ -1,7 +0,0 @@
1
- require 'support/env'
2
- require 'support/coverage'
3
- require 'support/expand_matcher'
4
- require 'support/generate_template_matcher'
5
- require 'support/match_matcher'
6
- require 'support/pattern'
7
- require 'support/scan_matcher'
@@ -1,23 +0,0 @@
1
- require 'simplecov'
2
- require 'coveralls'
3
- require 'support/projects'
4
-
5
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(
6
- [
7
- SimpleCov::Formatter::HTMLFormatter,
8
- Coveralls::SimpleCov::Formatter
9
- ]
10
- )
11
-
12
- SimpleCov.start do
13
- project_name 'mustermann'
14
- minimum_coverage 100
15
- coverage_dir '.coverage'
16
-
17
- add_filter "/spec/"
18
- add_filter "/support/"
19
-
20
- Support::Projects.each do |project|
21
- add_group project.sub('mustermann-', ''), "/#{project}/lib"
22
- end
23
- end
@@ -1,19 +0,0 @@
1
- if RUBY_VERSION < '2.1.0'
2
- $stderr.puts "needs Ruby 2.1.0, you're running #{RUBY_VERSION}"
3
- exit 1
4
- end
5
-
6
- RUBY_ENGINE ||= 'ruby'
7
- ENV['RACK_ENV'] = 'test'
8
-
9
- require 'tool/warning_filter'
10
- $-w = true
11
-
12
- require 'rspec'
13
- require 'rspec/its'
14
-
15
- RSpec.configure do |config|
16
- config.expect_with :rspec do |c|
17
- c.syntax = [:should, :expect]
18
- end
19
- end
@@ -1,28 +0,0 @@
1
- RSpec::Matchers.define :expand do |behavior = nil, **values|
2
- match do |pattern|
3
- @string ||= nil
4
- begin
5
- expanded = pattern.expand(behavior, values)
6
- rescue Exception
7
- false
8
- else
9
- @string ? @string == expanded : !!expanded
10
- end
11
- end
12
-
13
- chain :to do |string|
14
- @string = string
15
- end
16
-
17
- failure_message do |pattern|
18
- message = "expected %p to be expandable with %p" % [pattern, values]
19
- message << " (%p behavior)" % behavior if behavior
20
- expanded = pattern.expand(behavior, values)
21
- message << " and result in %p, but got %p" % [@string, expanded] if @string
22
- message
23
- end
24
-
25
- failure_message_when_negated do |pattern|
26
- "expected %p not to be expandable with %p" % [pattern, values]
27
- end
28
- end
@@ -1,27 +0,0 @@
1
- RSpec::Matchers.define :generate_template do |template|
2
- match { |pattern| pattern.to_templates.include? template }
3
-
4
- failure_message do |pattern|
5
- "expected %p to generate template %p, but only generated %s" % [
6
- pattern, template, pattern.to_templates.map(&:inspect).join(', ')
7
- ]
8
- end
9
-
10
- failure_message_when_negated do |pattern|
11
- "expected %p not to generate template %p" % [ pattern, template ]
12
- end
13
- end
14
-
15
- RSpec::Matchers.define :generate_templates do |*templates|
16
- match { |pattern| pattern.to_templates.sort == templates.sort }
17
-
18
- failure_message do |pattern|
19
- "expected %p to generate templates %p, but generated %p" % [
20
- pattern, templates.sort, pattern.to_templates.sort
21
- ]
22
- end
23
-
24
- failure_message_when_negated do |pattern|
25
- "expected %p not to generate templates %p" % [ pattern, templates ]
26
- end
27
- end
@@ -1,39 +0,0 @@
1
- RSpec::Matchers.define :match do |expected|
2
- match do |actual|
3
- @captures ||= false
4
- match = actual.match(expected)
5
- match &&= @captures.all? { |k, v| match[k] == v } if @captures
6
- match
7
- end
8
-
9
- chain :capturing do |captures|
10
- @captures = captures
11
- end
12
-
13
- failure_message do |actual|
14
- require 'pp'
15
- match = actual.match(expected)
16
- if match
17
- key, value = @captures.detect { |k, v| match[k] != v }
18
- message = "expected %p to capture %p as %p when matching %p, but got %p\n\nRegular Expression:\n%p" % [
19
- actual.to_s, key, value, expected, match[key], actual.regexp
20
- ]
21
-
22
- if actual.respond_to? :to_ast
23
- require 'mustermann/visualizer/tree_renderer'
24
- tree = Mustermann::Visualizer::TreeRenderer.render(actual)
25
- message << "\n\nAST:\n#{tree}"
26
- end
27
-
28
- message
29
- else
30
- "expected %p to match %p" % [ actual, expected ]
31
- end
32
- end
33
-
34
- failure_message_when_negated do |actual|
35
- "expected %p not to match %p" % [
36
- actual.to_s, expected
37
- ]
38
- end
39
- end
@@ -1,42 +0,0 @@
1
- require 'timeout'
2
-
3
- module Support
4
- module Pattern
5
- extend RSpec::Matchers::DSL
6
-
7
- def pattern(pattern, options = nil, &block)
8
- description = "pattern %p" % pattern
9
-
10
- if options
11
- description << " with options %p" % [options]
12
- instance = subject_for(pattern, options)
13
- else
14
- instance = subject_for(pattern)
15
- end
16
-
17
- context description do
18
- subject(:pattern, &instance)
19
- its(:to_s) { should be == pattern }
20
- its(:inspect) { should be == "#<#{described_class}:#{pattern.inspect}>" }
21
- its(:names) { should be_an(Array) }
22
- its(:to_templates) { should be == [pattern] } if described_class.name == "Mustermann::Template"
23
-
24
- example 'string should be immune to external change' do
25
- subject.to_s.replace "NOT THE PATTERN"
26
- subject.to_s.should be == pattern
27
- end
28
-
29
- instance_eval(&block)
30
- end
31
- end
32
-
33
- def subject_for(pattern, *args)
34
- instance = Timeout.timeout(1) { described_class.new(pattern, *args) }
35
- proc { instance }
36
- rescue Timeout::Error => error
37
- proc { raise Timeout::Error, "could not compile #{pattern.inspect} in time", error.backtrace }
38
- rescue Exception => error
39
- proc { raise error }
40
- end
41
- end
42
- end
@@ -1,20 +0,0 @@
1
- module Support
2
- module Projects
3
- include Enumerable
4
- extend self
5
-
6
- def base
7
- File.expand_path('../../../..', __FILE__)
8
- end
9
-
10
- def projects
11
- @@projects ||= Dir.chdir(base) do
12
- Dir['mustermann*/*.gemspec'].map { |f| File.dirname(f) }.sort
13
- end
14
- end
15
-
16
- def each(&block)
17
- projects.each(&block)
18
- end
19
- end
20
- end
@@ -1,63 +0,0 @@
1
- module Support
2
- module ScanMatcher
3
- extend RSpec::Matchers::DSL
4
-
5
- def scan(pattern, **options)
6
- give_scan_result(:scan, pattern, **options)
7
- end
8
-
9
- def check(pattern, **options)
10
- give_scan_result(:check, pattern, **options)
11
- end
12
-
13
- def scan_until(pattern, **options)
14
- give_scan_result(:scan_until, pattern, **options)
15
- end
16
-
17
- def check_until(pattern, **options)
18
- give_scan_result(:check_until, pattern, **options)
19
- end
20
-
21
- matcher :give_scan_result do |method_name, pattern, **options|
22
- def result_expectations
23
- @result_expectations ||= []
24
- end
25
-
26
- def expect_result(description, expected, &block)
27
- result_expectations << Proc.new do |result|
28
- if !block.call(result)
29
- "expected %p to %s %p matching %s" % [ result.scanner, method_name, pattern, description ]
30
- end
31
- end
32
- end
33
-
34
- match do |scanner|
35
- scanned = scanner.public_send(method_name, pattern, **options)
36
- scanned and result_expectations.all? { |e| !e.call(scanned) }
37
- end
38
-
39
- chain(:matching_substring) do |substring|
40
- expected_result("the substring %p" % substring) { |r| r.to_s == substring }
41
- end
42
-
43
- chain(:matching_length) do |length|
44
- expected_result("%d characters" % length) { |r| r.length == length }
45
- end
46
-
47
- chain(:matching_params) do |params|
48
- expected_result("with params %p" % [params]) { |r| r.params == params }
49
- end
50
-
51
- failure_message do |scanner|
52
- if scanned = scanner.public_send(method_name, pattern, **options)
53
- message = result_expectations.inject(nil) { |m,e| m || e.call(scanned) }
54
- end
55
- message || "expected %p to %s %p" % [ scanner, method_name, pattern ]
56
- end
57
-
58
- failure_message_when_negated do |scanner|
59
- "expected %p not to %s %p" % [ scanner, method_name, pattern ]
60
- end
61
- end
62
- end
63
- end
@@ -1,27 +0,0 @@
1
- $:.unshift File.expand_path("../../mustermann/lib", __FILE__)
2
- require "mustermann/version"
3
-
4
- Gem::Specification.new do |s|
5
- s.name = "support"
6
- s.version = "0.0.1"
7
- s.author = "Konstantin Haase"
8
- s.email = "konstantin.mailinglists@googlemail.com"
9
- s.homepage = "https://github.com/rkh/mustermann"
10
- s.summary = %q{support for mustermann development}
11
- s.require_path = 'lib'
12
- s.files = `git ls-files`.split("\n")
13
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
15
-
16
- s.add_dependency 'tool', '~> 0.2'
17
- s.add_dependency 'rspec'
18
- s.add_dependency 'rspec-its'
19
- s.add_dependency 'addressable'
20
- s.add_dependency 'sinatra', '~> 1.4'
21
- s.add_dependency 'rack-test'
22
- s.add_dependency 'rake'
23
- s.add_dependency 'yard'
24
- s.add_dependency 'redcarpet'
25
- s.add_dependency 'simplecov'
26
- s.add_dependency 'coveralls'
27
- end