ipsum-core 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.
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "ipsum-core/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "ipsum-core"
7
+ s.version = Ipsum::Core::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Clive Crous"]
10
+ s.email = ["clive@crous.co.za"]
11
+ s.homepage = "http://www.darkarts.co.za/ipsum"
12
+ s.summary = %q{This is the core engine of the ipsum gem, install that instead}
13
+ s.description = %q{This is the core engine of the ipsum gem, install that instead}
14
+
15
+ s.add_development_dependency "bundler", ">= 1.0.0"
16
+ s.add_development_dependency "rake", ">= 0.8.7"
17
+
18
+ s.files = `git ls-files`.split("\n")
19
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.require_paths = ["lib"]
22
+ end
@@ -0,0 +1,80 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # :main: README.rdoc
3
+ # :title: Ipsum Documentation
4
+
5
+ require 'ipsum-core/version'
6
+
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
+
80
+ end
@@ -0,0 +1,5 @@
1
+ class Ipsum
2
+ module Core
3
+ VERSION = "2.0.0"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,103 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ipsum-core
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 2
7
+ - 0
8
+ - 0
9
+ version: 2.0.0
10
+ platform: ruby
11
+ authors:
12
+ - Clive Crous
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-03-16 00:00:00 +02:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: bundler
22
+ requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 0
30
+ - 0
31
+ version: 1.0.0
32
+ type: :development
33
+ prerelease: false
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: rake
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 0
44
+ - 8
45
+ - 7
46
+ version: 0.8.7
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: *id002
50
+ description: This is the core engine of the ipsum gem, install that instead
51
+ email:
52
+ - clive@crous.co.za
53
+ executables: []
54
+
55
+ extensions: []
56
+
57
+ extra_rdoc_files: []
58
+
59
+ files:
60
+ - .gitignore
61
+ - Gemfile
62
+ - README.rdoc
63
+ - Rakefile
64
+ - dictionaries/latin.txt
65
+ - ipsum-core.gemspec
66
+ - lib/ipsum-core.rb
67
+ - lib/ipsum-core/version.rb
68
+ has_rdoc: true
69
+ homepage: http://www.darkarts.co.za/ipsum
70
+ licenses: []
71
+
72
+ post_install_message:
73
+ rdoc_options: []
74
+
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ hash: 3915692825670349111
83
+ segments:
84
+ - 0
85
+ version: "0"
86
+ required_rubygems_version: !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ hash: 3915692825670349111
92
+ segments:
93
+ - 0
94
+ version: "0"
95
+ requirements: []
96
+
97
+ rubyforge_project:
98
+ rubygems_version: 1.3.7
99
+ signing_key:
100
+ specification_version: 3
101
+ summary: This is the core engine of the ipsum gem, install that instead
102
+ test_files: []
103
+