text_hyphen_rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 89c41ae02622b1d5b35a0cd99840d35d38f1d931
4
+ data.tar.gz: b621a06eeb7155f35a710d6e6451eeeae57cc77b
5
+ SHA512:
6
+ metadata.gz: 2d825322521c48c527c1bd1d2fa6c1bdc54bd0442d8772f99f5eeebf267d65068369cceffec03cda494d4ca8e633db59d7a69bfc306516b1edacbdd359639628
7
+ data.tar.gz: 9272bec7ffc79e7eb3abfca77a13621e808385e3a28de8a4b279f4e8d954c4369d610c68e0b3af2b05c3c642184a2738d0534c669c9bf378b027c8719edbe931
@@ -0,0 +1 @@
1
+ require "text_hyphen_rails/active_record_extension"
data/config/routes.rb ADDED
@@ -0,0 +1,2 @@
1
+ TextHyphenRails::Engine.routes.draw do
2
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :text_hyphen_rails do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,56 @@
1
+ require 'text-hyphen'
2
+
3
+ module TextHyphenRails
4
+
5
+ class UnknownOptionError < StandardError; end
6
+
7
+ module ActiveRecordExtension
8
+
9
+ extend ActiveSupport::Concern
10
+
11
+ module ClassMethods
12
+ def text_hyphen(*args, **opts)
13
+ args.each do |att|
14
+ opts = thr_opts att, opts
15
+ self.send(:define_method, thr_meth_name(att, opts)) do
16
+ str = read_attribute att
17
+
18
+ str.gsub opts[:word_regex] do |tok|
19
+ thr_hyphenator(opts).visualize tok, opts[:hyphen]
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def thr_meth_name(att, opts)
28
+ if opts[:replace_meth]
29
+ att
30
+ else
31
+ [opts[:prefix], att, opts[:suffix]].reject(&:nil?).join('_')
32
+ end
33
+ end
34
+
35
+ def thr_opts(meth, opts)
36
+ raise UnknownOptionError if (opts.keys - TextHyphenRails.settings.keys).size > 0
37
+ TextHyphenRails.settings.merge opts
38
+ end
39
+ end
40
+
41
+ private
42
+
43
+ def thr_hyphenator opts
44
+ lang = if opts[:lang_att]
45
+ self.send(opts[:lang_att])
46
+ else
47
+ opts[:lang]
48
+ end
49
+ ::Text::Hyphen.new(language: lang,
50
+ left: opts[:left],
51
+ right: opts[:right])
52
+ end
53
+ end
54
+ end
55
+
56
+ ActiveRecord::Base.send(:include, TextHyphenRails::ActiveRecordExtension)
@@ -0,0 +1,17 @@
1
+ module TextHyphenRails
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace TextHyphenRails
4
+
5
+ config.generators do |g|
6
+ g.test_framework :rspec
7
+ end
8
+
9
+ initializer :append_migrations do |app|
10
+ if root != app.root
11
+ config.paths['db/migrate'].expanded.each do |expanded_path|
12
+ app.config.paths['db/migrate'] << expanded_path
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,3 @@
1
+ module TextHyphenRails
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,28 @@
1
+ require 'text_hyphen_rails/engine'
2
+
3
+ module TextHyphenRails
4
+
5
+ @settings = { hyphen: "\u00ad",
6
+ lang: :en_uk,
7
+ lang_att: nil,
8
+ word_regex: /[[:alpha:]]{4,}/m,
9
+ left: 1,
10
+ right: 1,
11
+ prefix: nil,
12
+ suffix: :hyph,
13
+ replace_meth: false }
14
+
15
+
16
+ @settings.each do |name, _|
17
+ define_singleton_method(name) do |val|
18
+ @settings[name] = val
19
+ end
20
+ end
21
+
22
+ class << self
23
+ attr_reader :settings
24
+ def configure
25
+ yield self
26
+ end
27
+ end
28
+ end
metadata ADDED
@@ -0,0 +1,162 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: text_hyphen_rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Thelonius Kort
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: text-hyphen
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.4'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.4'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: database_cleaner
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.5'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.11'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.11'
97
+ - !ruby/object:Gem::Dependency
98
+ name: factory_girl_rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '4.5'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '4.5'
111
+ - !ruby/object:Gem::Dependency
112
+ name: faker
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.6'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.6'
125
+ description:
126
+ email:
127
+ executables: []
128
+ extensions: []
129
+ extra_rdoc_files: []
130
+ files:
131
+ - config/initializers/active_record_extensions.rb
132
+ - config/routes.rb
133
+ - lib/tasks/text_hyphen_rails_tasks.rake
134
+ - lib/text_hyphen_rails.rb
135
+ - lib/text_hyphen_rails/active_record_extension.rb
136
+ - lib/text_hyphen_rails/engine.rb
137
+ - lib/text_hyphen_rails/version.rb
138
+ homepage: https://github.com/tnt/text_hyphen_rails
139
+ licenses:
140
+ - Any GPL or MIT
141
+ metadata: {}
142
+ post_install_message:
143
+ rdoc_options: []
144
+ require_paths:
145
+ - lib
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ requirements: []
157
+ rubyforge_project:
158
+ rubygems_version: 2.2.3
159
+ signing_key:
160
+ specification_version: 4
161
+ summary: text-hyphen integration for Rails/ActiveRecord
162
+ test_files: []