phrasify 0.0.1

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.
@@ -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: