standalone_typograf 2.0.2 → 3.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.
- checksums.yaml +7 -0
- data/.rspec +2 -0
- data/.travis.yml +8 -0
- data/README.md +108 -72
- data/Rakefile +1 -9
- data/doc/fonts.md +1 -4
- data/doc/logo.png +0 -0
- data/doc/logo.psd +0 -0
- data/lib/standalone_typograf/dashes.rb +23 -0
- data/lib/standalone_typograf/ellipsis.rb +23 -0
- data/lib/standalone_typograf/fractions.rb +12 -28
- data/lib/standalone_typograf/mnemonics.rb +33 -0
- data/lib/standalone_typograf/nbspaces.rb +36 -0
- data/lib/standalone_typograf/quotes.rb +109 -77
- data/lib/standalone_typograf/version.rb +1 -1
- data/lib/standalone_typograf.rb +86 -42
- data/spec/processors/dashes_spec.rb +31 -0
- data/spec/processors/ellipsis_spec.rb +28 -0
- data/spec/processors/fractions_spec.rb +18 -0
- data/spec/processors/mnemonics_spec.rb +34 -0
- data/spec/processors/nbspaces_spec.rb +31 -0
- data/spec/processors/quotes_spec.rb +32 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/standalone_typograf_spec.rb +12 -0
- data/spec/typograf_spec.rb +57 -0
- data/standalone_typograf.gemspec +6 -3
- metadata +76 -45
- data/.DS_Store +0 -0
- data/.rvmrc +0 -1
- data/lib/standalone_typograf/dasherize.rb +0 -12
- data/lib/standalone_typograf/dots.rb +0 -9
- data/lib/standalone_typograf/endash.rb +0 -9
- data/lib/standalone_typograf/nbspace.rb +0 -42
- data/lib/standalone_typograf/signs.rb +0 -26
- data/test/test_dash.rb +0 -24
- data/test/test_dots.rb +0 -24
- data/test/test_endash.rb +0 -12
- data/test/test_fractions.rb +0 -25
- data/test/test_nbspace.rb +0 -33
- data/test/test_prepare.rb +0 -34
- data/test/test_quotes.rb +0 -32
- data/test/test_signs.rb +0 -36
data/lib/standalone_typograf.rb
CHANGED
@@ -1,58 +1,102 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
|
-
require '
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
3
|
+
require 'active_support/all'
|
4
|
+
|
5
|
+
module StandaloneTypograf #:nodoc:
|
6
|
+
extend ActiveSupport::Autoload
|
7
|
+
|
8
|
+
@@processors = {}
|
9
|
+
|
10
|
+
class << self
|
11
|
+
# Processor registration like { :dasherize => StandaloneTypograf::Dasherize::Processor}
|
12
|
+
def register_processor(_module)
|
13
|
+
@@processors[_module.to_s.split('::').second.downcase.to_sym] = _module
|
14
|
+
end
|
15
|
+
|
16
|
+
def processors
|
17
|
+
@@processors
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
autoload :Version
|
22
|
+
|
23
|
+
eager_autoload do
|
24
|
+
autoload :Dashes
|
25
|
+
autoload :Mnemonics
|
26
|
+
autoload :Fractions
|
27
|
+
autoload :Nbspaces
|
28
|
+
autoload :Ellipsis
|
29
|
+
autoload :Quotes
|
30
|
+
end
|
31
|
+
|
32
|
+
include Dashes
|
33
|
+
include Mnemonics
|
34
|
+
include Fractions
|
35
|
+
include Nbspaces
|
36
|
+
include Ellipsis
|
37
|
+
include Quotes
|
38
|
+
|
39
|
+
##
|
40
|
+
# === Options
|
41
|
+
# * mode [Symbol]
|
42
|
+
# typograf supports <b>html</b> and </b>utf</b> mods.
|
43
|
+
# The default one is UTF. It means all special symbols
|
44
|
+
# will be represents as UTF sequence.
|
45
|
+
#
|
13
46
|
class Typograf
|
14
|
-
|
15
|
-
|
16
|
-
include StandaloneTypograf::Quotes
|
17
|
-
include StandaloneTypograf::Dots
|
18
|
-
include StandaloneTypograf::Endash
|
19
|
-
include StandaloneTypograf::Nbspace
|
20
|
-
include StandaloneTypograf::Fractions
|
47
|
+
attr_accessor :text
|
48
|
+
attr_reader :mode
|
21
49
|
|
22
50
|
def initialize(text, options={})
|
23
|
-
options
|
24
|
-
options[:signs_ru] ||= SIGNS_RU
|
25
|
-
options[:quotes] ||= QUOTES
|
26
|
-
# except - массив с названием методов, которые необходимо исключить при выполнении
|
27
|
-
# *prepare*
|
28
|
-
@except = options[:except]
|
29
|
-
@signs, @signs_ru = SIGNS.merge(options[:signs]), SIGNS_RU.merge(options[:signs_ru])
|
30
|
-
@quotes = QUOTES.merge(options[:quotes])
|
51
|
+
options.assert_valid_keys(:mode, :exclude)
|
31
52
|
@text = text
|
53
|
+
@mode = validate_option(options[:mode].try(:to_sym), in: [:html, :utf]) || :utf
|
54
|
+
exclude(options[:exclude]) if options[:exclude].present?
|
55
|
+
end
|
56
|
+
|
57
|
+
# Call a <b>separate</b> processor or <b>several</b> processors
|
58
|
+
# @return [String]
|
59
|
+
def processor(*names)
|
60
|
+
names.each do |name|
|
61
|
+
validate_option(name, in: processors.keys)
|
62
|
+
processors[name].send(:compile, text, mode)
|
63
|
+
end
|
64
|
+
return text
|
65
|
+
end
|
66
|
+
|
67
|
+
# @return [Hash]
|
68
|
+
def processors
|
69
|
+
@processors ||= StandaloneTypograf.processors.deep_dup
|
32
70
|
end
|
33
71
|
|
72
|
+
# @return [String]
|
34
73
|
def prepare
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
74
|
+
processor(*processors.keys)
|
75
|
+
end
|
76
|
+
|
77
|
+
def exclude(list)
|
78
|
+
list = Array(list) unless list.is_a?(Array)
|
79
|
+
list.each do |name|
|
80
|
+
validate_option(name, in: processors.keys)
|
81
|
+
processors.delete(name)
|
82
|
+
end
|
43
83
|
end
|
44
84
|
|
45
|
-
# PRIVATE
|
46
|
-
#
|
47
85
|
private
|
48
86
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
87
|
+
# Validate initialization options that have been passed thought the params.
|
88
|
+
#
|
89
|
+
# Available validations:
|
90
|
+
# * in [Array]
|
91
|
+
# provided param should be in array, for example:
|
92
|
+
# `validate_option(:hello, in: [:hello, :world])`
|
93
|
+
#
|
94
|
+
def validate_option(param, options={})
|
95
|
+
return unless param.present?
|
96
|
+
if options[:in].present?
|
97
|
+
raise ArgumentError.new("Wrong argument `#{param}`, should be in `#{options[:in].join(', ')}`") unless options[:in].include?(param)
|
98
|
+
end
|
99
|
+
return param
|
55
100
|
end
|
56
|
-
end
|
57
101
|
end
|
58
102
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe StandaloneTypograf::Dashes::Processor do
|
6
|
+
|
7
|
+
def typograf(text, mode)
|
8
|
+
described_class::compile(text, mode)
|
9
|
+
end
|
10
|
+
|
11
|
+
texts = {
|
12
|
+
:utf => [
|
13
|
+
['Сушка - процесс удаления влаги', 'Сушка — процесс удаления влаги'],
|
14
|
+
['- А что Казбич? - спросил я', '— А что Казбич? — спросил я'],
|
15
|
+
],
|
16
|
+
:html => [
|
17
|
+
['Вода - бинарное неорганическое соединение', 'Вода — бинарное неорганическое соединение'],
|
18
|
+
['- Как пройти в библиотеку?', '— Как пройти в библиотеку?'],
|
19
|
+
['1-1=0', '1-1=0'], # no changes
|
20
|
+
['-1', '-1'], # no changes
|
21
|
+
]
|
22
|
+
}
|
23
|
+
|
24
|
+
it 'works' do
|
25
|
+
texts.each_pair do |mode, array|
|
26
|
+
array.each do|text_pair|
|
27
|
+
typograf(text_pair[0], mode).should == text_pair[1]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe StandaloneTypograf::Ellipsis::Processor do
|
6
|
+
|
7
|
+
def typograf(text, mode)
|
8
|
+
described_class::compile(text, mode)
|
9
|
+
end
|
10
|
+
|
11
|
+
texts = {
|
12
|
+
:utf => [
|
13
|
+
['He was sleeping... Hey! You..', 'He was sleeping… Hey! You..']
|
14
|
+
],
|
15
|
+
:html => [
|
16
|
+
['Он молчал... ', 'Он молчал… '],
|
17
|
+
['1...3', '1...3'], # should not work with digits
|
18
|
+
]
|
19
|
+
}
|
20
|
+
|
21
|
+
it 'works' do
|
22
|
+
texts.each_pair do |mode, array|
|
23
|
+
array.each do|text_pair|
|
24
|
+
typograf(text_pair[0], mode).should == text_pair[1]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe StandaloneTypograf::Fractions::Processor do
|
6
|
+
|
7
|
+
it 'works on Html mode' do
|
8
|
+
described_class.compile(' 134/334', :html).should == ' <sup>134</sup>⁄<sub>334</sub>'
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'does not on Utf mode' do
|
12
|
+
described_class.compile('2/4', :utf).should == '2/4'
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'does not when last char is not space' do
|
16
|
+
described_class.compile('2/4*', :html).should == '2/4*'
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe StandaloneTypograf::Mnemonics::Processor do
|
6
|
+
|
7
|
+
def typograf(text, mode)
|
8
|
+
described_class::compile(text, mode)
|
9
|
+
end
|
10
|
+
|
11
|
+
texts = {
|
12
|
+
# in <b>utf</b> section please test signs on English
|
13
|
+
:utf => [
|
14
|
+
['Cafero (c) 2013', 'Cafero © 2013'],
|
15
|
+
['iPhone (r)', 'iPhone ®'],
|
16
|
+
['Право -> там', 'Право → там'],
|
17
|
+
['Температура ~= 10', 'Температура ≈ 10'],
|
18
|
+
],
|
19
|
+
# in <b>html</b> section please test signs on Russian
|
20
|
+
:html => [
|
21
|
+
['(tm) Windows', '™ Windows'],
|
22
|
+
['Принеси +- 1 штуку', 'Принеси ± 1 штуку'],
|
23
|
+
['Лево <- там', 'Лево ← там'],
|
24
|
+
]
|
25
|
+
}
|
26
|
+
|
27
|
+
it 'works' do
|
28
|
+
texts.each_pair do |mode, array|
|
29
|
+
array.each do|text_pair|
|
30
|
+
typograf(text_pair[0], mode).should == text_pair[1]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe StandaloneTypograf::Nbspaces::Processor do
|
6
|
+
|
7
|
+
def typograf(text, mode)
|
8
|
+
described_class::compile(text, mode)
|
9
|
+
end
|
10
|
+
|
11
|
+
texts = {
|
12
|
+
:utf => [
|
13
|
+
['В Украине', 'В Украине']
|
14
|
+
],
|
15
|
+
:html => [
|
16
|
+
['Форточка в окне', 'Форточка в окне'],
|
17
|
+
['Иди по краю', 'Иди по краю'],
|
18
|
+
['Исключительно Великолепно', 'Исключительно Великолепно'],
|
19
|
+
['Пить - здоровью предить', 'Пить - здоровью предить'],
|
20
|
+
['Лес — источник древесины', 'Лес — источник древесины'],
|
21
|
+
]
|
22
|
+
}
|
23
|
+
|
24
|
+
it 'works' do
|
25
|
+
texts.each_pair do |mode, array|
|
26
|
+
array.each do|text_pair|
|
27
|
+
typograf(text_pair[0], mode).should == text_pair[1]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe StandaloneTypograf::Quotes::Processor do
|
6
|
+
|
7
|
+
def typograf(text, mode)
|
8
|
+
described_class::compile(text, mode)
|
9
|
+
end
|
10
|
+
|
11
|
+
texts = {
|
12
|
+
:utf => [
|
13
|
+
['Он сказал: "Привет, Михалыч"', 'Он сказал: «Привет, Михалыч»'],
|
14
|
+
[' "Михась! Или "Мишаня", а?!",- крикнул он ', ' «Михась! Или „Мишаня“, а?!»,- крикнул он '],
|
15
|
+
['"Привет тебе, "Путник""', '«Привет тебе, „Путник“»'],
|
16
|
+
['""Гномы", - вскрикнул Бильбо", - сказал Толкиен', '«„Гномы“, - вскрикнул Бильбо», - сказал Толкиен'],
|
17
|
+
['"Один", "Два", "Три"', '«Один», «Два», «Три»']
|
18
|
+
],
|
19
|
+
:html => [
|
20
|
+
['"Привет"', '«Привет»' ],
|
21
|
+
['"Два "вида" "кавычек"" "Жесть"', '«Два „вида“ „кавычек“» «Жесть»' ],
|
22
|
+
]
|
23
|
+
}
|
24
|
+
|
25
|
+
it 'works' do
|
26
|
+
texts.each_pair do |mode, array|
|
27
|
+
array.each do|text_pair|
|
28
|
+
typograf(text_pair[0], mode).should == text_pair[1]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'standalone_typograf'
|
4
|
+
|
5
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
6
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
7
|
+
# Require this file using `require "spec_helper"` to ensure that it is only
|
8
|
+
# loaded once.
|
9
|
+
#
|
10
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
11
|
+
RSpec.configure do |config|
|
12
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
13
|
+
config.run_all_when_everything_filtered = true
|
14
|
+
config.filter_run :focus
|
15
|
+
|
16
|
+
# Run specs in random order to surface order dependencies. If you find an
|
17
|
+
# order dependency and want to debug it, you can fix the order by providing
|
18
|
+
# the seed, which is printed after each run.
|
19
|
+
# --seed 1234
|
20
|
+
config.order = 'random'
|
21
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe StandaloneTypograf::Typograf do
|
6
|
+
|
7
|
+
context 'argument errors' do
|
8
|
+
describe 'options validation' do
|
9
|
+
def with_otion(key, value)
|
10
|
+
described_class.new('', key => value)
|
11
|
+
end
|
12
|
+
|
13
|
+
it { expect { with_otion(:mode, :stub) }.to raise_error(ArgumentError) }
|
14
|
+
it { expect { with_otion(:exclude, :stub) }.to raise_error(ArgumentError) }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'arguments' do
|
19
|
+
describe 'modes' do
|
20
|
+
it 'has UTF-mode by default' do
|
21
|
+
t = described_class.new('')
|
22
|
+
t.mode.should == :utf
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'can be passed as param' do
|
26
|
+
t = described_class.new('', mode: :html)
|
27
|
+
t.mode.should == :html
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'exclude' do
|
32
|
+
it 'excludes processor' do
|
33
|
+
t = described_class.new('', exclude: :dashes)
|
34
|
+
t.processors.include?(:dashes).should be_false
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'implementation' do
|
40
|
+
describe '.processors' do
|
41
|
+
it 'raises an error on unknown processor' do
|
42
|
+
t = described_class.new('')
|
43
|
+
expect { t.processor(:unknown) }.to raise_error(ArgumentError)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'response on separate processor' do
|
47
|
+
t = described_class.new('Типограф - это круто, +-', mode: :html)
|
48
|
+
t.processor(:mnemonics).should == 'Типограф - это круто, ±'
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'response on several processors' do
|
52
|
+
t = described_class.new('Типограф - это круто, +-', mode: :html)
|
53
|
+
t.processor(:mnemonics, :dashes).should == 'Типограф — это круто, ±'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/standalone_typograf.gemspec
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# coding: utf-8
|
3
2
|
lib = File.expand_path('../lib', __FILE__)
|
4
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
4
|
require 'standalone_typograf/version'
|
@@ -11,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
11
10
|
spec.email = 'sashapashamasha@gmail.com'
|
12
11
|
spec.description = "Standalone (offline) client of the ArtLebedev's Studio Typograf service. http://typograf.herokuapp.com"
|
13
12
|
spec.summary = 'Very Fast&Simple Typograf fot the Russian text.'
|
14
|
-
spec.homepage = 'https://github.com/shlima/
|
13
|
+
spec.homepage = 'https://github.com/shlima/standalone_typograf'
|
15
14
|
spec.license = 'MIT'
|
16
15
|
|
17
16
|
spec.files = `git ls-files`.split($/)
|
@@ -21,4 +20,8 @@ Gem::Specification.new do |spec|
|
|
21
20
|
|
22
21
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
23
22
|
spec.add_development_dependency 'rake'
|
23
|
+
spec.add_development_dependency 'rspec'
|
24
|
+
spec.add_development_dependency 'fuubar'
|
25
|
+
|
26
|
+
spec.add_runtime_dependency 'activesupport'
|
24
27
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: standalone_typograf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 3.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Alex Shilov
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-11-01 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,17 +27,57 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: fuubar
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activesupport
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
44
81
|
- !ruby/object:Gem::Version
|
45
82
|
version: '0'
|
46
83
|
description: Standalone (offline) client of the ArtLebedev's Studio Typograf service.
|
@@ -50,9 +87,9 @@ executables: []
|
|
50
87
|
extensions: []
|
51
88
|
extra_rdoc_files: []
|
52
89
|
files:
|
53
|
-
- .DS_Store
|
54
90
|
- .gitignore
|
55
|
-
- .
|
91
|
+
- .rspec
|
92
|
+
- .travis.yml
|
56
93
|
- Gemfile
|
57
94
|
- LICENSE.txt
|
58
95
|
- README.md
|
@@ -61,60 +98,54 @@ files:
|
|
61
98
|
- doc/logo.png
|
62
99
|
- doc/logo.psd
|
63
100
|
- lib/standalone_typograf.rb
|
64
|
-
- lib/standalone_typograf/
|
65
|
-
- lib/standalone_typograf/
|
66
|
-
- lib/standalone_typograf/endash.rb
|
101
|
+
- lib/standalone_typograf/dashes.rb
|
102
|
+
- lib/standalone_typograf/ellipsis.rb
|
67
103
|
- lib/standalone_typograf/fractions.rb
|
68
|
-
- lib/standalone_typograf/
|
104
|
+
- lib/standalone_typograf/mnemonics.rb
|
105
|
+
- lib/standalone_typograf/nbspaces.rb
|
69
106
|
- lib/standalone_typograf/quotes.rb
|
70
|
-
- lib/standalone_typograf/signs.rb
|
71
107
|
- lib/standalone_typograf/version.rb
|
108
|
+
- spec/processors/dashes_spec.rb
|
109
|
+
- spec/processors/ellipsis_spec.rb
|
110
|
+
- spec/processors/fractions_spec.rb
|
111
|
+
- spec/processors/mnemonics_spec.rb
|
112
|
+
- spec/processors/nbspaces_spec.rb
|
113
|
+
- spec/processors/quotes_spec.rb
|
114
|
+
- spec/spec_helper.rb
|
115
|
+
- spec/standalone_typograf_spec.rb
|
116
|
+
- spec/typograf_spec.rb
|
72
117
|
- standalone_typograf.gemspec
|
73
|
-
|
74
|
-
- test/test_dots.rb
|
75
|
-
- test/test_endash.rb
|
76
|
-
- test/test_fractions.rb
|
77
|
-
- test/test_nbspace.rb
|
78
|
-
- test/test_prepare.rb
|
79
|
-
- test/test_quotes.rb
|
80
|
-
- test/test_signs.rb
|
81
|
-
homepage: https://github.com/shlima/StandaloneTypograf
|
118
|
+
homepage: https://github.com/shlima/standalone_typograf
|
82
119
|
licenses:
|
83
120
|
- MIT
|
121
|
+
metadata: {}
|
84
122
|
post_install_message:
|
85
123
|
rdoc_options: []
|
86
124
|
require_paths:
|
87
125
|
- lib
|
88
126
|
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
127
|
requirements:
|
91
|
-
- -
|
128
|
+
- - '>='
|
92
129
|
- !ruby/object:Gem::Version
|
93
130
|
version: '0'
|
94
|
-
segments:
|
95
|
-
- 0
|
96
|
-
hash: 1958121828042888037
|
97
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
132
|
requirements:
|
100
|
-
- -
|
133
|
+
- - '>='
|
101
134
|
- !ruby/object:Gem::Version
|
102
135
|
version: '0'
|
103
|
-
segments:
|
104
|
-
- 0
|
105
|
-
hash: 1958121828042888037
|
106
136
|
requirements: []
|
107
137
|
rubyforge_project:
|
108
|
-
rubygems_version:
|
138
|
+
rubygems_version: 2.0.6
|
109
139
|
signing_key:
|
110
|
-
specification_version:
|
140
|
+
specification_version: 4
|
111
141
|
summary: Very Fast&Simple Typograf fot the Russian text.
|
112
142
|
test_files:
|
113
|
-
-
|
114
|
-
-
|
115
|
-
-
|
116
|
-
-
|
117
|
-
-
|
118
|
-
-
|
119
|
-
-
|
120
|
-
-
|
143
|
+
- spec/processors/dashes_spec.rb
|
144
|
+
- spec/processors/ellipsis_spec.rb
|
145
|
+
- spec/processors/fractions_spec.rb
|
146
|
+
- spec/processors/mnemonics_spec.rb
|
147
|
+
- spec/processors/nbspaces_spec.rb
|
148
|
+
- spec/processors/quotes_spec.rb
|
149
|
+
- spec/spec_helper.rb
|
150
|
+
- spec/standalone_typograf_spec.rb
|
151
|
+
- spec/typograf_spec.rb
|
data/.DS_Store
DELETED
Binary file
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm use 1.9.3@standalone_typograf --create
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module StandaloneTypograf
|
4
|
-
module Dasherize
|
5
|
-
def dasherize
|
6
|
-
# В ситуации, когда тире с отбивкой с обоих сторон,
|
7
|
-
# левый пробел - неразрывный.
|
8
|
-
@text = @text.gsub(/\s-\s/i, ' — ')
|
9
|
-
@text = @text.gsub(/- /i, '— ')
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|