ipsum 1.2.1 → 2.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.
data/Rakefile CHANGED
@@ -1,24 +1,2 @@
1
1
  require 'bundler'
2
2
  Bundler::GemHelper.install_tasks
3
-
4
- desc "Build dictionary"
5
- task :dictionary do
6
- require 'ipsum'
7
- dictionary = {}
8
- File.readlines( './dictionaries/latin.txt' ).each do |word|
9
- letters = word.split('')
10
- sequence = ''
11
- letter_index = 0
12
- until letters.empty?
13
- dictionary[ sequence ] ||= {}
14
- dictionary[ sequence ][ letter_index ] ||= {}
15
- dictionary[ sequence ][ letter_index ][ letters.first ] ||= 0
16
- dictionary[ sequence ][ letter_index ][ letters.first ] += 1
17
- sequence += letters.shift
18
- sequence = sequence[1..-1] while sequence.size > Ipsum::SEQUENCE_SIZE
19
- letter_index += 1
20
- end
21
- end
22
- dictionary[ '' ][0].delete( "\n" )
23
- p dictionary
24
- end
@@ -1,6 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
3
  require "ipsum/version"
4
+ require "ipsum/languages"
4
5
 
5
6
  Gem::Specification.new do |s|
6
7
  s.name = "ipsum"
@@ -12,6 +13,10 @@ Gem::Specification.new do |s|
12
13
  s.summary = %q{Quickly generate text-like filler ala Lorem Ipsum}
13
14
  s.description = %q{Generate words or sentences for filler text while developing anything which requires text. Most people know this as "Lorem Ipsum". eg: require 'ipsum'; puts 10.sentences}
14
15
 
16
+ Ipsum::LANGUAGES.each do |language|
17
+ s.add_dependency "ipsum-#{language}", ">= 1.1.0"
18
+ end
19
+
15
20
  s.add_development_dependency "bundler", ">= 1.0.0"
16
21
  s.add_development_dependency "rake", ">= 0.8.7"
17
22
 
@@ -1,80 +1,6 @@
1
- # -*- encoding: utf-8 -*-
2
- # :main: README.rdoc
3
- # :title: Ipsum Documentation
4
-
5
1
  require 'ipsum/version'
2
+ require 'ipsum/languages'
6
3
 
7
- class Ipsum # :nodoc: all
8
-
9
- SEQUENCE_SIZE = 3
10
-
11
- @dictionaries = {}
12
-
13
- def self.add_dictionary( language, dictionary )
14
- @default_language ||= language
15
- @dictionaries[ language.to_sym ] = dictionary
16
- end
17
-
18
- def self.default_language
19
- @default_language ||= :latin
20
- end
21
-
22
- def self.default_language=( language )
23
- @default_language = language
24
- end
25
-
26
- def self.dictionary( language = self.default_language )
27
- begin
28
- require "ipsum-#{language}" unless @dictionaries[ language ]
29
- rescue LoadError
30
- raise "Unable to find language \"#{language}\". Try: gem install ipsum-#{language}"
31
- end
32
- @dictionaries[ language ]
33
- end
34
-
35
- def self.letter_following( sequence, position, language = self.default_language )
36
- dict = dictionary( language )
37
- sequence_statistics = dictionary( language )[ sequence ][ position ]
38
- if sequence_statistics
39
- letters = ''
40
- sequence_statistics.each_pair do |character,amount|
41
- letters << character*amount
42
- end
43
- letters[rand(letters.size)]
44
- end
45
- end
46
-
47
- def self.word( language = self.default_language )
48
- letter = nil
49
- word = ''
50
- until letter == "\n"
51
- sequence = ''
52
- SEQUENCE_SIZE.times do |enum|
53
- sequence << word[-(SEQUENCE_SIZE-enum)] if word[-(SEQUENCE_SIZE-enum)]
54
- end
55
- letter = letter_following( sequence, word.size, language )
56
- word += letter
57
- end
58
- word.strip
59
- end
60
-
61
- def self.sentence( words = rand(5) + 3, language = self.default_language )
62
- ( [ nil ] * words ).map{|n|self.word( language )}.join(' ').capitalize + '.'
63
- end
64
-
65
- def self.sentences( amount = rand(5) + 3, language = self.default_language )
66
- ( [ nil ] * amount ).map{|n|self.sentence( rand(5) + 3, language )}.join(' ')
67
- end
68
-
69
- end
70
-
71
- class Fixnum
72
-
73
- # Generate filler text for this amount of sentences. For example:
74
- # 12.sentences
75
- # 5.sentences
76
- def sentences( language = Ipsum.default_language )
77
- Ipsum.sentences( self, language )
78
- end
79
-
4
+ Ipsum::LANGUAGES.each do |language|
5
+ require "ipsum-#{language}"
80
6
  end
@@ -0,0 +1,3 @@
1
+ class Ipsum
2
+ LANGUAGES = %w[latin english french]
3
+ end
@@ -1,3 +1,3 @@
1
1
  class Ipsum
2
- VERSION = "1.2.1"
2
+ VERSION = "2.0.0"
3
3
  end
metadata CHANGED
@@ -3,10 +3,10 @@ name: ipsum
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
- - 1
7
6
  - 2
8
- - 1
9
- version: 1.2.1
7
+ - 0
8
+ - 0
9
+ version: 2.0.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Clive Crous
@@ -14,12 +14,57 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-02-28 00:00:00 +02:00
17
+ date: 2011-03-16 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: bundler
21
+ name: ipsum-latin
22
22
  requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 1
30
+ - 0
31
+ version: 1.1.0
32
+ type: :runtime
33
+ prerelease: false
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: ipsum-english
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 1
44
+ - 1
45
+ - 0
46
+ version: 1.1.0
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: ipsum-french
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ segments:
58
+ - 1
59
+ - 1
60
+ - 0
61
+ version: 1.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: bundler
67
+ requirement: &id004 !ruby/object:Gem::Requirement
23
68
  none: false
24
69
  requirements:
25
70
  - - ">="
@@ -31,10 +76,10 @@ dependencies:
31
76
  version: 1.0.0
32
77
  type: :development
33
78
  prerelease: false
34
- version_requirements: *id001
79
+ version_requirements: *id004
35
80
  - !ruby/object:Gem::Dependency
36
81
  name: rake
37
- requirement: &id002 !ruby/object:Gem::Requirement
82
+ requirement: &id005 !ruby/object:Gem::Requirement
38
83
  none: false
39
84
  requirements:
40
85
  - - ">="
@@ -46,7 +91,7 @@ dependencies:
46
91
  version: 0.8.7
47
92
  type: :development
48
93
  prerelease: false
49
- version_requirements: *id002
94
+ version_requirements: *id005
50
95
  description: "Generate words or sentences for filler text while developing anything which requires text. Most people know this as \"Lorem Ipsum\". eg: require 'ipsum'; puts 10.sentences"
51
96
  email:
52
97
  - clive@crous.co.za
@@ -64,6 +109,7 @@ files:
64
109
  - dictionaries/latin.txt
65
110
  - ipsum.gemspec
66
111
  - lib/ipsum.rb
112
+ - lib/ipsum/languages.rb
67
113
  - lib/ipsum/version.rb
68
114
  has_rdoc: true
69
115
  homepage: http://www.darkarts.co.za/ipsum
@@ -79,7 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
125
  requirements:
80
126
  - - ">="
81
127
  - !ruby/object:Gem::Version
82
- hash: -345108687
128
+ hash: -4449682368167600374
83
129
  segments:
84
130
  - 0
85
131
  version: "0"
@@ -88,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
134
  requirements:
89
135
  - - ">="
90
136
  - !ruby/object:Gem::Version
91
- hash: -345108687
137
+ hash: -4449682368167600374
92
138
  segments:
93
139
  - 0
94
140
  version: "0"