phrasify 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.3-rc1@phrasify --create
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in phrasify.gemspec
4
+ gemspec
5
+
6
+
7
+ gem 'rake'
8
+
9
+ require 'rbconfig'
10
+
11
+ if RbConfig::CONFIG['target_os'] =~ /darwin/i
12
+ gem 'rb-fsevent', '>= 0.4.0', :require => false
13
+ gem 'growl_notify', :require => false
14
+ gem 'guard', '~> 0.6.0', :require => false
15
+ gem 'guard-rspec', '~> 0.4.0', :require => false
16
+ end
@@ -0,0 +1,6 @@
1
+ guard 'rspec', :version => 2 do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^spec/support/.+\.rb$}) { "spec/" }
4
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
5
+ watch('spec/spec_helper.rb') { "spec/" }
6
+ end
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,7 @@
1
+ require "phrasify/version"
2
+ require "phrasify/text"
3
+ require "phrasify/common_words"
4
+ require "phrasify/phrase"
5
+
6
+ module Phrasify
7
+ end
@@ -0,0 +1,1006 @@
1
+ module Phrasify
2
+
3
+ # http://giwersworld.org/computers/linux/common-words.phtml
4
+ COMMON_WORDS = %w{
5
+ a
6
+ able
7
+ about
8
+ above
9
+ according
10
+ account
11
+ across
12
+ act
13
+ action
14
+ activities
15
+ activity
16
+ actually
17
+ added
18
+ addition
19
+ additional
20
+ administration
21
+ after
22
+ again
23
+ against
24
+ age
25
+ ago
26
+ ahead
27
+ aid
28
+ air
29
+ all
30
+ almost
31
+ alone
32
+ along
33
+ already
34
+ also
35
+ although
36
+ always
37
+ am
38
+ america
39
+ american
40
+ among
41
+ amount
42
+ an
43
+ analysis
44
+ and
45
+ another
46
+ answer
47
+ anti
48
+ any
49
+ anyone
50
+ anything
51
+ apparently
52
+ appear
53
+ appeared
54
+ approach
55
+ are
56
+ area
57
+ areas
58
+ arms
59
+ army
60
+ around
61
+ art
62
+ as
63
+ ask
64
+ asked
65
+ association
66
+ at
67
+ attack
68
+ attention
69
+ audience
70
+ available
71
+ average
72
+ away
73
+ b
74
+ back
75
+ bad
76
+ ball
77
+ based
78
+ basic
79
+ basis
80
+ be
81
+ beautiful
82
+ became
83
+ because
84
+ become
85
+ bed
86
+ been
87
+ before
88
+ began
89
+ beginning
90
+ behind
91
+ being
92
+ believe
93
+ below
94
+ best
95
+ better
96
+ between
97
+ beyond
98
+ big
99
+ bill
100
+ black
101
+ blood
102
+ blue
103
+ board
104
+ body
105
+ book
106
+ born
107
+ both
108
+ boy
109
+ boys
110
+ bring
111
+ british
112
+ brought
113
+ brown
114
+ building
115
+ built
116
+ business
117
+ but
118
+ by
119
+ c
120
+ call
121
+ called
122
+ came
123
+ can
124
+ cannot
125
+ cant
126
+ car
127
+ care
128
+ carried
129
+ cars
130
+ case
131
+ cases
132
+ cause
133
+ cent
134
+ center
135
+ central
136
+ century
137
+ certain
138
+ certainly
139
+ chance
140
+ change
141
+ changes
142
+ character
143
+ charge
144
+ chief
145
+ child
146
+ children
147
+ choice
148
+ christian
149
+ church
150
+ city
151
+ class
152
+ clear
153
+ clearly
154
+ close
155
+ closed
156
+ club
157
+ co
158
+ cold
159
+ college
160
+ color
161
+ come
162
+ comes
163
+ coming
164
+ committee
165
+ common
166
+ communist
167
+ community
168
+ company
169
+ complete
170
+ completely
171
+ concerned
172
+ conditions
173
+ congress
174
+ consider
175
+ considered
176
+ continued
177
+ control
178
+ corner
179
+ corps
180
+ cost
181
+ costs
182
+ could
183
+ couldnt
184
+ countries
185
+ country
186
+ county
187
+ couple
188
+ course
189
+ court
190
+ covered
191
+ cut
192
+ d
193
+ daily
194
+ dark
195
+ data
196
+ day
197
+ days
198
+ de
199
+ dead
200
+ deal
201
+ death
202
+ decided
203
+ decision
204
+ deep
205
+ defense
206
+ degree
207
+ democratic
208
+ department
209
+ described
210
+ design
211
+ designed
212
+ determined
213
+ developed
214
+ development
215
+ did
216
+ didnt
217
+ difference
218
+ different
219
+ difficult
220
+ direct
221
+ direction
222
+ directly
223
+ distance
224
+ district
225
+ do
226
+ does
227
+ doing
228
+ done
229
+ dont
230
+ door
231
+ doubt
232
+ down
233
+ dr
234
+ drive
235
+ due
236
+ during
237
+ e
238
+ each
239
+ earlier
240
+ early
241
+ earth
242
+ east
243
+ easy
244
+ economic
245
+ education
246
+ effect
247
+ effective
248
+ effects
249
+ effort
250
+ efforts
251
+ eight
252
+ either
253
+ elements
254
+ else
255
+ end
256
+ england
257
+ english
258
+ enough
259
+ entire
260
+ equipment
261
+ especially
262
+ established
263
+ europe
264
+ even
265
+ evening
266
+ ever
267
+ every
268
+ everything
269
+ evidence
270
+ example
271
+ except
272
+ existence
273
+ expect
274
+ expected
275
+ experience
276
+ extent
277
+ eye
278
+ eyes
279
+ f
280
+ face
281
+ fact
282
+ faith
283
+ fall
284
+ family
285
+ far
286
+ farm
287
+ father
288
+ fear
289
+ federal
290
+ feed
291
+ feel
292
+ feeling
293
+ feet
294
+ felt
295
+ few
296
+ field
297
+ figure
298
+ figures
299
+ filled
300
+ final
301
+ finally
302
+ find
303
+ fine
304
+ fire
305
+ firm
306
+ first
307
+ fiscal
308
+ five
309
+ floor
310
+ followed
311
+ following
312
+ food
313
+ foot
314
+ for
315
+ force
316
+ forces
317
+ foreign
318
+ form
319
+ former
320
+ forms
321
+ forward
322
+ found
323
+ four
324
+ free
325
+ freedom
326
+ french
327
+ friend
328
+ friends
329
+ from
330
+ front
331
+ full
332
+ function
333
+ further
334
+ future
335
+ g
336
+ game
337
+ gave
338
+ general
339
+ generally
340
+ george
341
+ get
342
+ getting
343
+ girl
344
+ girls
345
+ give
346
+ given
347
+ gives
348
+ glass
349
+ go
350
+ god
351
+ going
352
+ gone
353
+ good
354
+ got
355
+ government
356
+ great
357
+ greater
358
+ green
359
+ ground
360
+ group
361
+ groups
362
+ growing
363
+ growth
364
+ gun
365
+ h
366
+ had
367
+ hair
368
+ half
369
+ hall
370
+ hand
371
+ hands
372
+ happened
373
+ hard
374
+ has
375
+ have
376
+ having
377
+ he
378
+ head
379
+ hear
380
+ heard
381
+ heart
382
+ heavy
383
+ held
384
+ hell
385
+ help
386
+ her
387
+ here
388
+ herself
389
+ hes
390
+ high
391
+ higher
392
+ him
393
+ himself
394
+ his
395
+ history
396
+ hit
397
+ hold
398
+ home
399
+ hope
400
+ horse
401
+ hospital
402
+ hot
403
+ hotel
404
+ hour
405
+ hours
406
+ house
407
+ how
408
+ however
409
+ human
410
+ hundred
411
+ husband
412
+ i
413
+ idea
414
+ ideas
415
+ if
416
+ ill
417
+ im
418
+ image
419
+ immediately
420
+ important
421
+ in
422
+ include
423
+ including
424
+ income
425
+ increase
426
+ increased
427
+ indeed
428
+ individual
429
+ industrial
430
+ industry
431
+ influence
432
+ information
433
+ inside
434
+ instead
435
+ interest
436
+ international
437
+ into
438
+ involved
439
+ is
440
+ island
441
+ issue
442
+ it
443
+ its
444
+ itself
445
+ ive
446
+ j
447
+ job
448
+ john
449
+ just
450
+ justice
451
+ keep
452
+ kennedy
453
+ kept
454
+ kind
455
+ knew
456
+ know
457
+ knowledge
458
+ known
459
+ l
460
+ labor
461
+ lack
462
+ land
463
+ language
464
+ large
465
+ larger
466
+ last
467
+ late
468
+ later
469
+ latter
470
+ law
471
+ lay
472
+ lead
473
+ leaders
474
+ learned
475
+ least
476
+ leave
477
+ led
478
+ left
479
+ length
480
+ less
481
+ let
482
+ letter
483
+ letters
484
+ level
485
+ life
486
+ light
487
+ like
488
+ likely
489
+ line
490
+ lines
491
+ list
492
+ literature
493
+ little
494
+ live
495
+ lived
496
+ living
497
+ local
498
+ long
499
+ longer
500
+ look
501
+ looked
502
+ looking
503
+ lost
504
+ lot
505
+ love
506
+ low
507
+ lower
508
+ m
509
+ made
510
+ main
511
+ major
512
+ make
513
+ makes
514
+ making
515
+ man
516
+ manner
517
+ mans
518
+ many
519
+ march
520
+ market
521
+ married
522
+ mass
523
+ material
524
+ matter
525
+ may
526
+ maybe
527
+ me
528
+ mean
529
+ meaning
530
+ means
531
+ medical
532
+ meet
533
+ meeting
534
+ member
535
+ members
536
+ men
537
+ merely
538
+ met
539
+ method
540
+ methods
541
+ middle
542
+ might
543
+ miles
544
+ military
545
+ million
546
+ mind
547
+ minutes
548
+ miss
549
+ modern
550
+ moment
551
+ money
552
+ month
553
+ months
554
+ moral
555
+ more
556
+ morning
557
+ most
558
+ mother
559
+ move
560
+ moved
561
+ movement
562
+ moving
563
+ mr
564
+ mrs
565
+ much
566
+ music
567
+ must
568
+ my
569
+ myself
570
+ n
571
+ name
572
+ nation
573
+ national
574
+ nations
575
+ natural
576
+ nature
577
+ near
578
+ nearly
579
+ necessary
580
+ need
581
+ needed
582
+ needs
583
+ negro
584
+ neither
585
+ never
586
+ new
587
+ next
588
+ night
589
+ no
590
+ non
591
+ nor
592
+ normal
593
+ north
594
+ not
595
+ note
596
+ nothing
597
+ now
598
+ nuclear
599
+ number
600
+ numbers
601
+ obtained
602
+ obviously
603
+ of
604
+ off
605
+ office
606
+ often
607
+ oh
608
+ old
609
+ on
610
+ once
611
+ one
612
+ ones
613
+ only
614
+ open
615
+ opened
616
+ operation
617
+ opportunity
618
+ or
619
+ order
620
+ organization
621
+ other
622
+ others
623
+ our
624
+ out
625
+ outside
626
+ over
627
+ own
628
+ p
629
+ paid
630
+ paper
631
+ part
632
+ particular
633
+ particularly
634
+ parts
635
+ party
636
+ passed
637
+ past
638
+ pattern
639
+ pay
640
+ peace
641
+ people
642
+ per
643
+ performance
644
+ perhaps
645
+ period
646
+ person
647
+ personal
648
+ persons
649
+ physical
650
+ picture
651
+ piece
652
+ place
653
+ placed
654
+ plan
655
+ plane
656
+ planning
657
+ plans
658
+ plant
659
+ play
660
+ point
661
+ points
662
+ police
663
+ policy
664
+ political
665
+ pool
666
+ poor
667
+ population
668
+ position
669
+ possible
670
+ post
671
+ power
672
+ present
673
+ president
674
+ press
675
+ pressure
676
+ price
677
+ principle
678
+ private
679
+ probably
680
+ problem
681
+ problems
682
+ process
683
+ production
684
+ products
685
+ program
686
+ programs
687
+ progress
688
+ property
689
+ provide
690
+ provided
691
+ public
692
+ purpose
693
+ put
694
+ quality
695
+ question
696
+ questions
697
+ quite
698
+ r
699
+ race
700
+ radio
701
+ ran
702
+ range
703
+ rate
704
+ rather
705
+ reached
706
+ reaction
707
+ read
708
+ reading
709
+ ready
710
+ real
711
+ really
712
+ reason
713
+ received
714
+ recent
715
+ recently
716
+ record
717
+ red
718
+ religion
719
+ religious
720
+ remember
721
+ report
722
+ reported
723
+ required
724
+ research
725
+ respect
726
+ responsibility
727
+ rest
728
+ result
729
+ results
730
+ return
731
+ returned
732
+ right
733
+ river
734
+ road
735
+ room
736
+ run
737
+ running
738
+ s
739
+ said
740
+ sales
741
+ same
742
+ sat
743
+ saw
744
+ say
745
+ saying
746
+ says
747
+ school
748
+ schools
749
+ science
750
+ season
751
+ second
752
+ secretary
753
+ section
754
+ see
755
+ seem
756
+ seemed
757
+ seems
758
+ seen
759
+ self
760
+ sense
761
+ sent
762
+ series
763
+ serious
764
+ served
765
+ service
766
+ services
767
+ set
768
+ seven
769
+ several
770
+ shall
771
+ she
772
+ short
773
+ shot
774
+ should
775
+ show
776
+ showed
777
+ shown
778
+ side
779
+ similar
780
+ simple
781
+ simply
782
+ since
783
+ single
784
+ situation
785
+ six
786
+ size
787
+ slowly
788
+ small
789
+ so
790
+ social
791
+ society
792
+ some
793
+ something
794
+ sometimes
795
+ somewhat
796
+ son
797
+ soon
798
+ sort
799
+ sound
800
+ south
801
+ southern
802
+ soviet
803
+ space
804
+ speak
805
+ special
806
+ specific
807
+ spirit
808
+ spring
809
+ square
810
+ st
811
+ staff
812
+ stage
813
+ stand
814
+ standard
815
+ start
816
+ started
817
+ state
818
+ statements
819
+ states
820
+ stay
821
+ step
822
+ steps
823
+ still
824
+ stock
825
+ stood
826
+ stop
827
+ stopped
828
+ story
829
+ straight
830
+ street
831
+ strength
832
+ strong
833
+ student
834
+ students
835
+ study
836
+ subject
837
+ such
838
+ suddenly
839
+ summer
840
+ sun
841
+ support
842
+ sure
843
+ surface
844
+ system
845
+ systems
846
+ t
847
+ table
848
+ take
849
+ taken
850
+ taking
851
+ talk
852
+ tax
853
+ technical
854
+ tell
855
+ temperature
856
+ ten
857
+ term
858
+ terms
859
+ test
860
+ th
861
+ than
862
+ that
863
+ thats
864
+ the
865
+ their
866
+ them
867
+ themselves
868
+ then
869
+ theory
870
+ there
871
+ therefore
872
+ theres
873
+ these
874
+ they
875
+ thing
876
+ things
877
+ think
878
+ thinking
879
+ third
880
+ thirty
881
+ this
882
+ those
883
+ thought
884
+ three
885
+ through
886
+ through
887
+ throughout
888
+ thus
889
+ time
890
+ times
891
+ to
892
+ today
893
+ together
894
+ told
895
+ too
896
+ took
897
+ top
898
+ total
899
+ toward
900
+ town
901
+ trade
902
+ training
903
+ treatment
904
+ trial
905
+ tried
906
+ trouble
907
+ true
908
+ truth
909
+ try
910
+ trying
911
+ turn
912
+ turned
913
+ twenty
914
+ two
915
+ type
916
+ types
917
+ u
918
+ under
919
+ understand
920
+ understanding
921
+ union
922
+ united
923
+ university
924
+ until
925
+ up
926
+ upon
927
+ us
928
+ use
929
+ used
930
+ using
931
+ usually
932
+ value
933
+ values
934
+ various
935
+ very
936
+ view
937
+ voice
938
+ volume
939
+ waiting
940
+ walked
941
+ wall
942
+ want
943
+ wanted
944
+ war
945
+ was
946
+ washington
947
+ wasnt
948
+ water
949
+ way
950
+ ways
951
+ we
952
+ week
953
+ weeks
954
+ well
955
+ went
956
+ were
957
+ west
958
+ western
959
+ what
960
+ whatever
961
+ when
962
+ where
963
+ whether
964
+ which
965
+ while
966
+ white
967
+ who
968
+ whole
969
+ whom
970
+ whose
971
+ why
972
+ wide
973
+ wife
974
+ will
975
+ william
976
+ window
977
+ wish
978
+ with
979
+ within
980
+ without
981
+ woman
982
+ women
983
+ word
984
+ words
985
+ work
986
+ worked
987
+ working
988
+ works
989
+ world
990
+ would
991
+ wouldnt
992
+ writing
993
+ written
994
+ wrong
995
+ wrote
996
+ year
997
+ years
998
+ yes
999
+ yet
1000
+ york
1001
+ you
1002
+ young
1003
+ your
1004
+ youre
1005
+ }
1006
+ end
@@ -0,0 +1,14 @@
1
+ module Phrasify
2
+ class Phrase
3
+
4
+ attr_reader :match, :replace
5
+
6
+ def initialize(match, replace)
7
+ @match, @replace = match, replace
8
+ end
9
+
10
+ def self.search(phrases)
11
+ [new("fred", "derf")]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,63 @@
1
+ module Phrasify
2
+ class Text < ::String
3
+
4
+ ##
5
+ #
6
+ #
7
+ # @param [String] string The string you want to match phrases against
8
+ # @param [#search] phrase_klass A class that responds to search with an array
9
+ # of strings
10
+ # @return [Phrasify::Text]
11
+ def initialize(string, phrase_klass = Phrase)
12
+ @phrase_klass = phrase_klass
13
+ super(string)
14
+ end
15
+
16
+ ##
17
+ #
18
+ #
19
+ # @return [Phrasify::Text]
20
+ def parse
21
+ phrases.inject(self) do |string, phrase|
22
+
23
+ string = string.split(":phrasify:").inject("") do |new_string, part|
24
+
25
+ # If this part of the string has already been matched we won't try
26
+ # and match it again.
27
+ if part.include?(":matched:")
28
+ new_string += part
29
+ else
30
+ new_string += part.gsub(
31
+ phrase.match,
32
+ ":phrasify::matched:#{phrase.replace}:matched::phrasify:"
33
+ )
34
+ end
35
+ end
36
+ end.gsub(":matched:", "").gsub(":phrasify:", "")
37
+ end
38
+
39
+ ##
40
+ # Text broken down into words with all punctuation removed
41
+ #
42
+ # @return [Array<String>]
43
+ def words
44
+ gsub(/[^A-Za-z0-9_-|\s]/, '').downcase.split(" ").uniq
45
+ end
46
+
47
+ ##
48
+ # Unique list of words that could have a matching phrase
49
+ #
50
+ # @return [Array<String>]
51
+ def phraseable_words
52
+ words - COMMON_WORDS
53
+ end
54
+
55
+ ##
56
+ # Phrases that could match text
57
+ #
58
+ # @return [Array[<Phrase>]]
59
+ def phrases
60
+ @phrase_klass.search(phraseable_words)
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,3 @@
1
+ module Phrasify
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "phrasify/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "phrasify"
7
+ s.version = Phrasify::VERSION
8
+ s.authors = ["Robert Williams"]
9
+ s.email = ["rob@r-williams.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Match phrases in text and replace them}
12
+ s.description = %q{Match phrases in text and replace them efficiently across thousands of different terms.}
13
+
14
+ s.rubyforge_project = "phrasify"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_development_dependency('rspec', '~> 2.6.0')
22
+ s.add_development_dependency('yard')
23
+ end
@@ -0,0 +1 @@
1
+ require_relative './spec_helper'
@@ -0,0 +1 @@
1
+ require_relative '../lib/phrasify'
@@ -0,0 +1,92 @@
1
+ require_relative './spec_helper'
2
+
3
+ describe Phrasify::Text do
4
+
5
+ let(:text) {
6
+ Phrasify::Text.new(%q(
7
+ The quick brown fox jumps over the lazy dog.
8
+ It's inevitable.
9
+ and and and
10
+ ))
11
+ }
12
+
13
+ describe "#words" do
14
+
15
+ it "should return an Array" do
16
+ text.words.should be_a(Array)
17
+ end
18
+
19
+ it "should not have any duplicate words" do
20
+ text.words.should eql(text.words.uniq)
21
+ end
22
+
23
+ it "should not contain any strings with apostrophes" do
24
+ text.words.join.should_not include("it's")
25
+ end
26
+
27
+ it "should only have lowercase characters" do
28
+ text.words.join.should_not match(/[A-Z].+/)
29
+ end
30
+ end
31
+
32
+ describe "#phraseable_words" do
33
+ let(:phraseable_words) {
34
+ text.phraseable_words
35
+ }
36
+
37
+ it "should not contain any common words" do
38
+ phraseable_words.should eql(phraseable_words - Phrasify::COMMON_WORDS)
39
+ end
40
+ end
41
+
42
+ describe "#parse" do
43
+
44
+ before do
45
+ @phrases = [
46
+ Phrasify::Phrase.new("brown fox", "yellow rabbit"),
47
+ Phrasify::Phrase.new("lazy", "laid back")
48
+ ]
49
+ Phrasify::Phrase.stub!(:search).and_return(@phrases)
50
+ end
51
+
52
+ it "should replace the contents of the string" do
53
+ @phrases.each do |phrase|
54
+ text.parse.should include(phrase.replace)
55
+ end
56
+ end
57
+ end
58
+
59
+ describe "#parse", "with phrases that match replacements" do
60
+
61
+ before do
62
+ @phrases = [
63
+ Phrasify::Phrase.new("brown fox", "yellow rabbit"),
64
+ Phrasify::Phrase.new("yellow rabbit", "purple kangaroo")
65
+ ]
66
+ Phrasify::Phrase.stub!(:search).and_return(@phrases)
67
+ end
68
+
69
+ it "should only replace phrases that have not already been matched" do
70
+ text.parse.should include("yellow rabbit")
71
+ text.parse.should_not include("purple kangaroo")
72
+ end
73
+ end
74
+
75
+ describe "#parse", "with phrases that target the same term" do
76
+
77
+ before do
78
+ @phrases = [
79
+ Phrasify::Phrase.new("brown fox", "orange hippo"),
80
+ Phrasify::Phrase.new("brown", "purple kangaroo")
81
+ ]
82
+ Phrasify::Phrase.stub!(:search).and_return(@phrases)
83
+ end
84
+
85
+ it "should only replace phrase once" do
86
+ text.parse.should include("orange hippo")
87
+ text.parse.should_not include("purple kangaroo")
88
+ end
89
+ end
90
+
91
+
92
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: phrasify
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Robert Williams
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &70274532775880 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.6.0
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70274532775880
25
+ - !ruby/object:Gem::Dependency
26
+ name: yard
27
+ requirement: &70274532775400 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70274532775400
36
+ description: Match phrases in text and replace them efficiently across thousands of
37
+ different terms.
38
+ email:
39
+ - rob@r-williams.com
40
+ executables: []
41
+ extensions: []
42
+ extra_rdoc_files: []
43
+ files:
44
+ - .gitignore
45
+ - .rspec
46
+ - .rvmrc
47
+ - Gemfile
48
+ - Guardfile
49
+ - Rakefile
50
+ - lib/phrasify.rb
51
+ - lib/phrasify/common_words.rb
52
+ - lib/phrasify/phrase.rb
53
+ - lib/phrasify/text.rb
54
+ - lib/phrasify/version.rb
55
+ - phrasify.gemspec
56
+ - spec/phrasify_spec.rb
57
+ - spec/spec_helper.rb
58
+ - spec/text_spec.rb
59
+ homepage: ''
60
+ licenses: []
61
+ post_install_message:
62
+ rdoc_options: []
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ requirements: []
78
+ rubyforge_project: phrasify
79
+ rubygems_version: 1.8.6
80
+ signing_key:
81
+ specification_version: 3
82
+ summary: Match phrases in text and replace them
83
+ test_files:
84
+ - spec/phrasify_spec.rb
85
+ - spec/spec_helper.rb
86
+ - spec/text_spec.rb
87
+ has_rdoc: