can_has_fixtures 0.1.1 → 0.1.2
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/README +3 -4
- data/lib/can_has_fixtures/random.rb +49 -8
- data/lib/can_has_fixtures/version.rb +1 -1
- metadata +2 -2
data/README
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
Easily create fixtures.
|
4
4
|
|
5
5
|
Author:: Ben Burkert (mailto:ben@benburkert.com)
|
6
|
-
Version:: 0.1.
|
6
|
+
Version:: 0.1.1
|
7
7
|
Copyright:: Copyright (c) 2008 Ben Burkert. All rights reserved.
|
8
8
|
License:: New BSD License (http://opensource.org/licenses/bsd-license.php)
|
9
|
-
Website:: http://canhasgems.rubyforge.org/can_has_fixtures
|
9
|
+
Website:: http://canhasgems.rubyforge.org/can_has_fixtures
|
10
10
|
Repository:: git://github.com/benburkert/can_has_fixtures.git
|
11
11
|
|
12
12
|
== Dependencies
|
@@ -74,5 +74,4 @@ simply call +fixture+ within the body of the spec:
|
|
74
74
|
|
75
75
|
@post.should_not be_valid
|
76
76
|
end
|
77
|
-
end
|
78
|
-
|
77
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
class Random
|
2
2
|
|
3
|
+
@@used ||= []
|
3
4
|
WORDS_PER_SENTENCE = 3..20
|
4
5
|
SENTENCES_PER_PARAGRAPH = 3..8
|
5
6
|
TLDS = %w[com net org biz info gov]
|
@@ -46,20 +47,60 @@ class Random
|
|
46
47
|
[true, false].random
|
47
48
|
end
|
48
49
|
|
49
|
-
def
|
50
|
-
|
50
|
+
def satisfies?(value, options)
|
51
|
+
return false if @@used.include?(value) if options[:unique]
|
52
|
+
return false if value.size > options[:max] if options[:max]
|
53
|
+
return false if value.size < options[:min] if options[:min]
|
54
|
+
true
|
51
55
|
end
|
52
56
|
|
53
|
-
def
|
54
|
-
|
57
|
+
def default_word_options
|
58
|
+
{:used => true}
|
55
59
|
end
|
56
60
|
|
57
|
-
def
|
58
|
-
|
61
|
+
def word(options = default_word_options)
|
62
|
+
word = dictionary.random
|
63
|
+
word = dictionary.random until satisfies?(word, options)
|
64
|
+
|
65
|
+
@@used << word if options[:used]
|
66
|
+
|
67
|
+
word
|
59
68
|
end
|
60
69
|
|
61
|
-
def
|
62
|
-
|
70
|
+
def default_sentence_options
|
71
|
+
default_word_options.merge(:punctuate => true)
|
72
|
+
end
|
73
|
+
|
74
|
+
def sentence(options = default_sentence_options)
|
75
|
+
sentence = WORDS_PER_SENTENCE.random.random.words(options.merge(:used => false)).join(' ')
|
76
|
+
until satisfies?(sentence, options)
|
77
|
+
sentence = WORDS_PER_SENTENCE.random.random.words(options.merge(:used => false)).join(' ')
|
78
|
+
end
|
79
|
+
|
80
|
+
sentence << '.' if options[:punctuate]
|
81
|
+
@@used << sentence if options[:used]
|
82
|
+
|
83
|
+
sentence
|
84
|
+
end
|
85
|
+
|
86
|
+
def default_paragraph_options
|
87
|
+
default_sentence_options.merge(:end_with_line => true)
|
88
|
+
end
|
89
|
+
|
90
|
+
def paragraph(options = default_paragraph_options)
|
91
|
+
paragraph = SENTENCES_PER_PARAGRAPH.random.random.sentences(options).join(' ')
|
92
|
+
until satisfies?(paragraph, options)
|
93
|
+
paragraph = SENTENCES_PER_PARAGRAPH.random.random.sentences(options).join(' ')
|
94
|
+
end
|
95
|
+
|
96
|
+
paragraph << '\n' if options[:end_with_line]
|
97
|
+
@@used << paragraph if options[:end_with_line]
|
98
|
+
|
99
|
+
paragraph
|
100
|
+
end
|
101
|
+
|
102
|
+
def email(options = {})
|
103
|
+
"#{word(options)}@#{word(options)}.#{TLDS.random}"
|
63
104
|
end
|
64
105
|
|
65
106
|
def url
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: can_has_fixtures
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors: []
|
7
7
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-03-
|
12
|
+
date: 2008-03-25 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|