knitkit 2.0.4 → 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (196) hide show
  1. data/app/models/document.rb +18 -1
  2. data/app/models/website.rb +6 -4
  3. data/app/widgets/contact_us/base.rb +1 -1
  4. data/app/widgets/search/base.rb +6 -6
  5. data/db/migrate/20120628165503_add_dynamic_attributes_to_documents.rb +5 -0
  6. data/lib/knitkit/engine.rb +0 -1
  7. data/lib/knitkit/version.rb +1 -1
  8. data/lib/knitkit.rb +1 -0
  9. data/lib/permalink_fu/README.markdown +64 -0
  10. data/lib/permalink_fu/init.rb +1 -0
  11. data/lib/permalink_fu/lib/data/x00.yml +257 -0
  12. data/lib/permalink_fu/lib/data/x01.yml +257 -0
  13. data/lib/permalink_fu/lib/data/x02.yml +256 -0
  14. data/lib/permalink_fu/lib/data/x03.yml +256 -0
  15. data/lib/permalink_fu/lib/data/x04.yml +256 -0
  16. data/lib/permalink_fu/lib/data/x05.yml +256 -0
  17. data/lib/permalink_fu/lib/data/x06.yml +256 -0
  18. data/lib/permalink_fu/lib/data/x07.yml +256 -0
  19. data/lib/permalink_fu/lib/data/x09.yml +256 -0
  20. data/lib/permalink_fu/lib/data/x0a.yml +256 -0
  21. data/lib/permalink_fu/lib/data/x0b.yml +256 -0
  22. data/lib/permalink_fu/lib/data/x0c.yml +256 -0
  23. data/lib/permalink_fu/lib/data/x0d.yml +256 -0
  24. data/lib/permalink_fu/lib/data/x0e.yml +256 -0
  25. data/lib/permalink_fu/lib/data/x0f.yml +256 -0
  26. data/lib/permalink_fu/lib/data/x10.yml +256 -0
  27. data/lib/permalink_fu/lib/data/x11.yml +256 -0
  28. data/lib/permalink_fu/lib/data/x12.yml +257 -0
  29. data/lib/permalink_fu/lib/data/x13.yml +256 -0
  30. data/lib/permalink_fu/lib/data/x14.yml +257 -0
  31. data/lib/permalink_fu/lib/data/x15.yml +257 -0
  32. data/lib/permalink_fu/lib/data/x16.yml +256 -0
  33. data/lib/permalink_fu/lib/data/x17.yml +256 -0
  34. data/lib/permalink_fu/lib/data/x18.yml +256 -0
  35. data/lib/permalink_fu/lib/data/x1e.yml +256 -0
  36. data/lib/permalink_fu/lib/data/x1f.yml +256 -0
  37. data/lib/permalink_fu/lib/data/x20.yml +256 -0
  38. data/lib/permalink_fu/lib/data/x21.yml +256 -0
  39. data/lib/permalink_fu/lib/data/x22.yml +256 -0
  40. data/lib/permalink_fu/lib/data/x23.yml +256 -0
  41. data/lib/permalink_fu/lib/data/x24.yml +256 -0
  42. data/lib/permalink_fu/lib/data/x25.yml +256 -0
  43. data/lib/permalink_fu/lib/data/x26.yml +256 -0
  44. data/lib/permalink_fu/lib/data/x27.yml +256 -0
  45. data/lib/permalink_fu/lib/data/x28.yml +257 -0
  46. data/lib/permalink_fu/lib/data/x2e.yml +256 -0
  47. data/lib/permalink_fu/lib/data/x2f.yml +256 -0
  48. data/lib/permalink_fu/lib/data/x30.yml +256 -0
  49. data/lib/permalink_fu/lib/data/x31.yml +256 -0
  50. data/lib/permalink_fu/lib/data/x32.yml +256 -0
  51. data/lib/permalink_fu/lib/data/x33.yml +256 -0
  52. data/lib/permalink_fu/lib/data/x4d.yml +256 -0
  53. data/lib/permalink_fu/lib/data/x4e.yml +257 -0
  54. data/lib/permalink_fu/lib/data/x4f.yml +257 -0
  55. data/lib/permalink_fu/lib/data/x50.yml +257 -0
  56. data/lib/permalink_fu/lib/data/x51.yml +257 -0
  57. data/lib/permalink_fu/lib/data/x52.yml +257 -0
  58. data/lib/permalink_fu/lib/data/x53.yml +257 -0
  59. data/lib/permalink_fu/lib/data/x54.yml +257 -0
  60. data/lib/permalink_fu/lib/data/x55.yml +257 -0
  61. data/lib/permalink_fu/lib/data/x56.yml +257 -0
  62. data/lib/permalink_fu/lib/data/x57.yml +257 -0
  63. data/lib/permalink_fu/lib/data/x58.yml +257 -0
  64. data/lib/permalink_fu/lib/data/x59.yml +257 -0
  65. data/lib/permalink_fu/lib/data/x5a.yml +257 -0
  66. data/lib/permalink_fu/lib/data/x5b.yml +257 -0
  67. data/lib/permalink_fu/lib/data/x5c.yml +257 -0
  68. data/lib/permalink_fu/lib/data/x5d.yml +257 -0
  69. data/lib/permalink_fu/lib/data/x5e.yml +257 -0
  70. data/lib/permalink_fu/lib/data/x5f.yml +257 -0
  71. data/lib/permalink_fu/lib/data/x60.yml +257 -0
  72. data/lib/permalink_fu/lib/data/x61.yml +257 -0
  73. data/lib/permalink_fu/lib/data/x62.yml +257 -0
  74. data/lib/permalink_fu/lib/data/x63.yml +257 -0
  75. data/lib/permalink_fu/lib/data/x64.yml +257 -0
  76. data/lib/permalink_fu/lib/data/x65.yml +257 -0
  77. data/lib/permalink_fu/lib/data/x66.yml +257 -0
  78. data/lib/permalink_fu/lib/data/x67.yml +257 -0
  79. data/lib/permalink_fu/lib/data/x68.yml +257 -0
  80. data/lib/permalink_fu/lib/data/x69.yml +257 -0
  81. data/lib/permalink_fu/lib/data/x6a.yml +257 -0
  82. data/lib/permalink_fu/lib/data/x6b.yml +257 -0
  83. data/lib/permalink_fu/lib/data/x6c.yml +257 -0
  84. data/lib/permalink_fu/lib/data/x6d.yml +257 -0
  85. data/lib/permalink_fu/lib/data/x6e.yml +257 -0
  86. data/lib/permalink_fu/lib/data/x6f.yml +257 -0
  87. data/lib/permalink_fu/lib/data/x70.yml +257 -0
  88. data/lib/permalink_fu/lib/data/x71.yml +257 -0
  89. data/lib/permalink_fu/lib/data/x72.yml +257 -0
  90. data/lib/permalink_fu/lib/data/x73.yml +257 -0
  91. data/lib/permalink_fu/lib/data/x74.yml +257 -0
  92. data/lib/permalink_fu/lib/data/x75.yml +257 -0
  93. data/lib/permalink_fu/lib/data/x76.yml +257 -0
  94. data/lib/permalink_fu/lib/data/x77.yml +257 -0
  95. data/lib/permalink_fu/lib/data/x78.yml +257 -0
  96. data/lib/permalink_fu/lib/data/x79.yml +257 -0
  97. data/lib/permalink_fu/lib/data/x7a.yml +257 -0
  98. data/lib/permalink_fu/lib/data/x7b.yml +257 -0
  99. data/lib/permalink_fu/lib/data/x7c.yml +257 -0
  100. data/lib/permalink_fu/lib/data/x7d.yml +257 -0
  101. data/lib/permalink_fu/lib/data/x7e.yml +257 -0
  102. data/lib/permalink_fu/lib/data/x7f.yml +257 -0
  103. data/lib/permalink_fu/lib/data/x80.yml +257 -0
  104. data/lib/permalink_fu/lib/data/x81.yml +257 -0
  105. data/lib/permalink_fu/lib/data/x82.yml +257 -0
  106. data/lib/permalink_fu/lib/data/x83.yml +257 -0
  107. data/lib/permalink_fu/lib/data/x84.yml +257 -0
  108. data/lib/permalink_fu/lib/data/x85.yml +257 -0
  109. data/lib/permalink_fu/lib/data/x86.yml +257 -0
  110. data/lib/permalink_fu/lib/data/x87.yml +257 -0
  111. data/lib/permalink_fu/lib/data/x88.yml +257 -0
  112. data/lib/permalink_fu/lib/data/x89.yml +257 -0
  113. data/lib/permalink_fu/lib/data/x8a.yml +257 -0
  114. data/lib/permalink_fu/lib/data/x8b.yml +257 -0
  115. data/lib/permalink_fu/lib/data/x8c.yml +257 -0
  116. data/lib/permalink_fu/lib/data/x8d.yml +257 -0
  117. data/lib/permalink_fu/lib/data/x8e.yml +257 -0
  118. data/lib/permalink_fu/lib/data/x8f.yml +257 -0
  119. data/lib/permalink_fu/lib/data/x90.yml +257 -0
  120. data/lib/permalink_fu/lib/data/x91.yml +257 -0
  121. data/lib/permalink_fu/lib/data/x92.yml +257 -0
  122. data/lib/permalink_fu/lib/data/x93.yml +257 -0
  123. data/lib/permalink_fu/lib/data/x94.yml +257 -0
  124. data/lib/permalink_fu/lib/data/x95.yml +257 -0
  125. data/lib/permalink_fu/lib/data/x96.yml +257 -0
  126. data/lib/permalink_fu/lib/data/x97.yml +257 -0
  127. data/lib/permalink_fu/lib/data/x98.yml +257 -0
  128. data/lib/permalink_fu/lib/data/x99.yml +257 -0
  129. data/lib/permalink_fu/lib/data/x9a.yml +257 -0
  130. data/lib/permalink_fu/lib/data/x9b.yml +257 -0
  131. data/lib/permalink_fu/lib/data/x9c.yml +257 -0
  132. data/lib/permalink_fu/lib/data/x9d.yml +257 -0
  133. data/lib/permalink_fu/lib/data/x9e.yml +257 -0
  134. data/lib/permalink_fu/lib/data/x9f.yml +256 -0
  135. data/lib/permalink_fu/lib/data/xa0.yml +257 -0
  136. data/lib/permalink_fu/lib/data/xa1.yml +257 -0
  137. data/lib/permalink_fu/lib/data/xa2.yml +257 -0
  138. data/lib/permalink_fu/lib/data/xa3.yml +257 -0
  139. data/lib/permalink_fu/lib/data/xa4.yml +256 -0
  140. data/lib/permalink_fu/lib/data/xac.yml +257 -0
  141. data/lib/permalink_fu/lib/data/xad.yml +257 -0
  142. data/lib/permalink_fu/lib/data/xae.yml +257 -0
  143. data/lib/permalink_fu/lib/data/xaf.yml +257 -0
  144. data/lib/permalink_fu/lib/data/xb0.yml +257 -0
  145. data/lib/permalink_fu/lib/data/xb1.yml +257 -0
  146. data/lib/permalink_fu/lib/data/xb2.yml +257 -0
  147. data/lib/permalink_fu/lib/data/xb3.yml +257 -0
  148. data/lib/permalink_fu/lib/data/xb4.yml +257 -0
  149. data/lib/permalink_fu/lib/data/xb5.yml +257 -0
  150. data/lib/permalink_fu/lib/data/xb6.yml +257 -0
  151. data/lib/permalink_fu/lib/data/xb7.yml +257 -0
  152. data/lib/permalink_fu/lib/data/xb8.yml +257 -0
  153. data/lib/permalink_fu/lib/data/xb9.yml +257 -0
  154. data/lib/permalink_fu/lib/data/xba.yml +257 -0
  155. data/lib/permalink_fu/lib/data/xbb.yml +257 -0
  156. data/lib/permalink_fu/lib/data/xbc.yml +257 -0
  157. data/lib/permalink_fu/lib/data/xbd.yml +257 -0
  158. data/lib/permalink_fu/lib/data/xbe.yml +257 -0
  159. data/lib/permalink_fu/lib/data/xbf.yml +257 -0
  160. data/lib/permalink_fu/lib/data/xc0.yml +257 -0
  161. data/lib/permalink_fu/lib/data/xc1.yml +257 -0
  162. data/lib/permalink_fu/lib/data/xc2.yml +257 -0
  163. data/lib/permalink_fu/lib/data/xc3.yml +257 -0
  164. data/lib/permalink_fu/lib/data/xc4.yml +257 -0
  165. data/lib/permalink_fu/lib/data/xc5.yml +257 -0
  166. data/lib/permalink_fu/lib/data/xc6.yml +257 -0
  167. data/lib/permalink_fu/lib/data/xc7.yml +257 -0
  168. data/lib/permalink_fu/lib/data/xc8.yml +257 -0
  169. data/lib/permalink_fu/lib/data/xc9.yml +257 -0
  170. data/lib/permalink_fu/lib/data/xca.yml +257 -0
  171. data/lib/permalink_fu/lib/data/xcb.yml +257 -0
  172. data/lib/permalink_fu/lib/data/xcc.yml +257 -0
  173. data/lib/permalink_fu/lib/data/xcd.yml +257 -0
  174. data/lib/permalink_fu/lib/data/xce.yml +257 -0
  175. data/lib/permalink_fu/lib/data/xcf.yml +257 -0
  176. data/lib/permalink_fu/lib/data/xd0.yml +257 -0
  177. data/lib/permalink_fu/lib/data/xd1.yml +257 -0
  178. data/lib/permalink_fu/lib/data/xd2.yml +257 -0
  179. data/lib/permalink_fu/lib/data/xd3.yml +257 -0
  180. data/lib/permalink_fu/lib/data/xd4.yml +257 -0
  181. data/lib/permalink_fu/lib/data/xd5.yml +257 -0
  182. data/lib/permalink_fu/lib/data/xd6.yml +257 -0
  183. data/lib/permalink_fu/lib/data/xd7.yml +256 -0
  184. data/lib/permalink_fu/lib/data/xf9.yml +257 -0
  185. data/lib/permalink_fu/lib/data/xfa.yml +256 -0
  186. data/lib/permalink_fu/lib/data/xfb.yml +257 -0
  187. data/lib/permalink_fu/lib/data/xfc.yml +257 -0
  188. data/lib/permalink_fu/lib/data/xfd.yml +256 -0
  189. data/lib/permalink_fu/lib/data/xfe.yml +257 -0
  190. data/lib/permalink_fu/lib/data/xff.yml +257 -0
  191. data/lib/permalink_fu/lib/permalink_fu.rb +176 -0
  192. data/lib/permalink_fu/test/permalink_fu_test.rb +476 -0
  193. data/lib/permalink_fu/test/test_helper.rb +13 -0
  194. data/public/images/check.png +0 -0
  195. data/public/images/credit_card.png +0 -0
  196. metadata +214 -39
@@ -1,8 +1,25 @@
1
1
  class Document < ActiveRecord::Base
2
- has_relational_dynamic_attributes
2
+ DOCUMENT_DYNAMIC_ATTRIBUTE_PREFIX = 'dyn_'
3
+
4
+ has_dynamic_attributes :dynamic_attribute_prefix => DOCUMENT_DYNAMIC_ATTRIBUTE_PREFIX, :destroy_dynamic_attribute_for_nil => false
5
+
3
6
  has_file_assets
4
7
 
5
8
  belongs_to :document_record, :polymorphic => true
6
9
  belongs_to :document_type
7
10
 
11
+ class << self
12
+ def add_dyn_prefix(field)
13
+ "#{DOCUMENT_DYNAMIC_ATTRIBUTE_PREFIX}#{field}"
14
+ end
15
+
16
+ def remove_dyn_prefix(field)
17
+ field.gsub(DOCUMENT_DYNAMIC_ATTRIBUTE_PREFIX, '')
18
+ end
19
+ end
20
+
21
+ def set_dyn_attribute(field, value)
22
+ self.send("#{Document.add_dyn_prefix(field)}=", value)
23
+ end
24
+
8
25
  end
@@ -99,7 +99,7 @@ class Website < ActiveRecord::Base
99
99
 
100
100
  def setup_website
101
101
  PublishedWebsite.create(:website => self, :version => 0, :active => true, :comment => 'New Site Created')
102
- Role.create(:description => "Website #{self.title}", :internal_identifier => website_role_iid)
102
+ Role.create(:description => "Website #{self.title}", :internal_identifier => website_role_iid) if self.role.nil?
103
103
  configuration = ::Configuration.find_template('default_website_configuration').clone(true)
104
104
  configuration.description = "Website #{self.name} Configuration"
105
105
  configuration.internal_identifier = configuration.description.underscore
@@ -194,7 +194,7 @@ class Website < ActiveRecord::Base
194
194
 
195
195
  articles_path = Pathname.new(File.join(tmp_dir,'articles'))
196
196
  FileUtils.mkdir_p(articles_path) unless articles_path.exist?
197
-
197
+
198
198
  documented_contents_path = Pathname.new(File.join(tmp_dir, 'documented contents'))
199
199
  FileUtils.mkdir_p(documented_contents_path) unless documented_contents_path.exist?
200
200
 
@@ -309,7 +309,7 @@ class Website < ActiveRecord::Base
309
309
  FileUtils.rm_rf(tmp_dir.to_s)
310
310
 
311
311
  if Website.find_by_internal_identifier(setup_hash[:internal_identifier]).nil?
312
- website = Website.create(
312
+ website = Website.new(
313
313
  :name => setup_hash[:name],
314
314
  :title => setup_hash[:title],
315
315
  :subtitle => setup_hash[:subtitle],
@@ -318,6 +318,7 @@ class Website < ActiveRecord::Base
318
318
  :email_inquiries => setup_hash[:email_inquiries],
319
319
  :auto_activate_publication => setup_hash[:auto_activate_publication]
320
320
  )
321
+ website.save!
321
322
 
322
323
  #set default publication published by user
323
324
  first_publication = website.published_websites.first
@@ -382,6 +383,7 @@ class Website < ActiveRecord::Base
382
383
  website.publish("Website Imported", current_user)
383
384
 
384
385
  rescue Exception=>ex
386
+ Rails.logger.error "#{ex.inspect} #{ex.backtrace}"
385
387
  website.destroy unless website.nil?
386
388
  raise ex
387
389
  end
@@ -392,7 +394,7 @@ class Website < ActiveRecord::Base
392
394
  message = 'Website already exists with that internal_identifier'
393
395
  success = false
394
396
  end
395
-
397
+
396
398
  return success, message
397
399
  end
398
400
 
@@ -18,7 +18,7 @@ module Widgets
18
18
  @validation[:email] = "Please Enter a Valid Email Address" unless /^.+@.+\..+$/.match(params[:email])
19
19
 
20
20
  if @is_html_form and !@validation.empty?
21
- return render :view => :error
21
+ return render :update => {:id => "#{@uuid}_result", :view => :error}
22
22
  end
23
23
 
24
24
  @website = Website.find_by_host(request.host_with_port)
@@ -4,14 +4,14 @@ module Widgets
4
4
  include ActionDispatch::Routing::UrlFor
5
5
  include Rails.application.routes.url_helpers
6
6
  include WillPaginate::ActionView
7
-
7
+
8
8
  def set_variables
9
9
  @results_permalink = params[:results_permalink]
10
10
  @section_permalink = params[:section_permalink]
11
11
  @content_type = params[:content_type]
12
12
  @per_page = params[:per_page]
13
13
  @css_class = params[:class]
14
-
14
+
15
15
  if @results_permalink.nil? or @results_permalink.blank?
16
16
  @ajax_results = true
17
17
  else
@@ -50,16 +50,16 @@ module Widgets
50
50
  def locate
51
51
  File.dirname(__FILE__)
52
52
  end
53
-
53
+
54
54
  class << self
55
55
  def title
56
56
  "Search"
57
57
  end
58
-
58
+
59
59
  def widget_name
60
60
  File.basename(File.dirname(__FILE__))
61
61
  end
62
-
62
+
63
63
  def base_layout
64
64
  begin
65
65
  file = File.join(File.dirname(__FILE__),"/views/layouts/base.html.erb")
@@ -69,7 +69,7 @@ module Widgets
69
69
  end
70
70
  end
71
71
  end
72
-
72
+
73
73
  end
74
74
  end
75
75
  end
@@ -0,0 +1,5 @@
1
+ class AddDynamicAttributesToDocuments < ActiveRecord::Migration
2
+ def change
3
+ add_column :documents, :dynamic_attributes, :text
4
+ end
5
+ end
@@ -1,5 +1,4 @@
1
1
  require 'nokogiri'
2
- require 'permalink_fu'
3
2
  require 'acts-as-taggable-on'
4
3
  require 'zip/zip'
5
4
  require 'zip/zipfilesystem'
@@ -2,7 +2,7 @@ module Knitkit
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 2
4
4
  MINOR = 0
5
- TINY = 4
5
+ TINY = 5
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
8
8
  end
data/lib/knitkit.rb CHANGED
@@ -2,6 +2,7 @@
2
2
  require 'erp_app'
3
3
  require 'erp_forms'
4
4
 
5
+ require "permalink_fu/lib/permalink_fu"
5
6
  require 'routing_filter'
6
7
  require "knitkit/version"
7
8
  require "knitkit/routing_filter/section_router.rb"
@@ -0,0 +1,64 @@
1
+ # PermalinkFu
2
+
3
+ A simple plugin for creating URL-friendly permalinks (slugs) from attributes.
4
+
5
+ Uses [`ActiveSupport::Multibyte::Handlers::UTF8Handler`](http://api.rubyonrails.org/classes/ActiveSupport/Multibyte/Handlers/UTF8Handler.html) (part of Rails since 1.2) rather than `iconv` (which is [inconsistent between platforms](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/243426)) for normalization/decomposition.
6
+
7
+
8
+ ## Usage
9
+
10
+ class Article < ActiveRecord::Base
11
+ has_permalink :title
12
+ end
13
+
14
+ This will escape the title in a before_validation callback, turning e.g. "Föö!! Bàr" into "foo-bar".
15
+
16
+ The permalink is by default stored in the `permalink` attribute.
17
+
18
+ has_permalink :title, :as => :slug
19
+
20
+ will store it in `slug` instead.
21
+
22
+ has_permalink [:category, :title]
23
+
24
+ will store a permalink form of `"#{category}-#{title}"`.
25
+
26
+ Permalinks are guaranteed unique: "foo-bar-2", "foo-bar-3" etc are used if there are conflicts. You can set the scope of the uniqueness like
27
+
28
+ has_permalink :title, :scope => :blog_id
29
+
30
+ This means that two articles with the same `blog_id` can not have the same permalink, but two articles with different `blog_id`s can.
31
+
32
+ Two finders are provided:
33
+
34
+ Article.find_by_permalink(params[:id])
35
+ Article.find_by_permalink!(params[:id])
36
+
37
+ These methods keep their name no matter what attribute is used to store the permalink.
38
+
39
+ The `find_by_permalink` method returns `nil` if there is no match; the `find_by_permalink!` method will raise `ActiveRecord::RecordNotFound`.
40
+
41
+ You can override the model's `to_param` method with
42
+
43
+ has_permalink :title, :param => true
44
+
45
+ This means that the permalink will be used instead of the primary key (id) in generated URLs. Remember to change your controller code from e.g. `find` to `find_by_permalink!`.
46
+
47
+ You can add conditions to `has_permalink` like so:
48
+
49
+ class Article < ActiveRecord::Base
50
+ has_permalink :title, :if => Proc.new { |article| article.needs_permalink? }
51
+ end
52
+
53
+ Use the `:if` or `:unless` options to specify a Proc, method, or string to be called or evaluated. The permalink will only be generated if the option evaluates to true.
54
+
55
+ You can use `PermalinkFu.escape` to escape a string manually.
56
+
57
+
58
+ ## Credits
59
+
60
+ Originally extracted from [Mephisto](http://mephistoblog.com) by [technoweenie](http://github.com/technoweenie/permalink_fu/).
61
+
62
+ Conditions added by [Pat Nakajima](http://github.com/nakajima/permalink_fu/).
63
+
64
+ [Henrik Nyh](http://github.com/technoweenie/permalink_fu/) replaced `iconv` with `ActiveSupport::Multibyte`.
@@ -0,0 +1 @@
1
+ require 'permalink_fu'
@@ -0,0 +1,257 @@
1
+ ---
2
+ - "\0"
3
+ - "\x01"
4
+ - "\x02"
5
+ - "\x03"
6
+ - "\x04"
7
+ - "\x05"
8
+ - "\x06"
9
+ - "\a"
10
+ - "\x08"
11
+ - ' '
12
+ - "\n"
13
+ - "\v"
14
+ - "\f"
15
+ - "\r"
16
+ - "\x0e"
17
+ - "\x0f"
18
+ - "\x10"
19
+ - "\x11"
20
+ - "\x12"
21
+ - "\x13"
22
+ - "\x14"
23
+ - "\x15"
24
+ - "\x16"
25
+ - "\x17"
26
+ - "\x18"
27
+ - "\x19"
28
+ - "\x1a"
29
+ - "\e"
30
+ - "\x1c"
31
+ - "\x1d"
32
+ - "\x1e"
33
+ - "\x1f"
34
+ - ' '
35
+ - '!'
36
+ - '"'
37
+ - '#'
38
+ - $
39
+ - '%'
40
+ - '&'
41
+ - "'"
42
+ - (
43
+ - )
44
+ - '*'
45
+ - +
46
+ - ','
47
+ - -
48
+ - .
49
+ - /
50
+ - 0
51
+ - 1
52
+ - 2
53
+ - 3
54
+ - 4
55
+ - 5
56
+ - 6
57
+ - 7
58
+ - 8
59
+ - 9
60
+ - ':'
61
+ - ;
62
+ - <
63
+ - =
64
+ - '>'
65
+ - '?'
66
+ - '@'
67
+ - A
68
+ - B
69
+ - C
70
+ - D
71
+ - E
72
+ - F
73
+ - G
74
+ - H
75
+ - I
76
+ - J
77
+ - K
78
+ - L
79
+ - M
80
+ - N
81
+ - O
82
+ - P
83
+ - Q
84
+ - R
85
+ - S
86
+ - T
87
+ - U
88
+ - V
89
+ - W
90
+ - X
91
+ - Y
92
+ - Z
93
+ - ']'
94
+ - \
95
+ - ']'
96
+ - '^'
97
+ - _
98
+ - '`'
99
+ - a
100
+ - b
101
+ - c
102
+ - d
103
+ - e
104
+ - f
105
+ - g
106
+ - h
107
+ - i
108
+ - j
109
+ - k
110
+ - l
111
+ - m
112
+ - n
113
+ - o
114
+ - p
115
+ - q
116
+ - r
117
+ - s
118
+ - t
119
+ - u
120
+ - v
121
+ - w
122
+ - x
123
+ - y
124
+ - z
125
+ - '{'
126
+ - '|'
127
+ - '}'
128
+ - '~'
129
+ - '\x7f'
130
+ - ''
131
+ - ''
132
+ - ''
133
+ - ''
134
+ - ''
135
+ - ''
136
+ - ''
137
+ - ''
138
+ - ''
139
+ - ''
140
+ - ''
141
+ - ''
142
+ - ''
143
+ - ''
144
+ - ''
145
+ - ''
146
+ - ''
147
+ - ''
148
+ - ''
149
+ - ''
150
+ - ''
151
+ - ''
152
+ - ''
153
+ - ''
154
+ - ''
155
+ - ''
156
+ - ''
157
+ - ''
158
+ - ''
159
+ - ''
160
+ - ''
161
+ - ''
162
+ - ' '
163
+ - '!'
164
+ - C/
165
+ - PS
166
+ - $?
167
+ - Y=
168
+ - '|'
169
+ - SS
170
+ - '"'
171
+ - (c)
172
+ - a
173
+ - <<
174
+ - '!'
175
+ - ''
176
+ - (r)
177
+ - -
178
+ - deg
179
+ - +-
180
+ - 2
181
+ - 3
182
+ - "'"
183
+ - u
184
+ - P
185
+ - '*'
186
+ - ','
187
+ - 1
188
+ - o
189
+ - '>>'
190
+ - 1/4
191
+ - 1/2
192
+ - 3/4
193
+ - '?'
194
+ - A
195
+ - A
196
+ - A
197
+ - A
198
+ - A
199
+ - A
200
+ - AE
201
+ - C
202
+ - E
203
+ - E
204
+ - E
205
+ - E
206
+ - I
207
+ - I
208
+ - I
209
+ - I
210
+ - D
211
+ - N
212
+ - O
213
+ - O
214
+ - O
215
+ - O
216
+ - O
217
+ - x
218
+ - O
219
+ - U
220
+ - U
221
+ - U
222
+ - U
223
+ - U
224
+ - Th
225
+ - ss
226
+ - a
227
+ - a
228
+ - a
229
+ - a
230
+ - a
231
+ - a
232
+ - ae
233
+ - c
234
+ - e
235
+ - e
236
+ - e
237
+ - e
238
+ - i
239
+ - i
240
+ - i
241
+ - i
242
+ - d
243
+ - n
244
+ - o
245
+ - o
246
+ - o
247
+ - o
248
+ - o
249
+ - /
250
+ - o
251
+ - u
252
+ - u
253
+ - u
254
+ - u
255
+ - y
256
+ - th
257
+ - y