data_builder 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ffa6367098c65adf86a4c45a05c9a3cf68d9ea8
4
- data.tar.gz: 6714fbdb50f5342f6706947b1d6e581507bbbb86
3
+ metadata.gz: 38ab44128293206daf0e094a73036fb1317ea971
4
+ data.tar.gz: c9cd869a2144e970290a9833cdabad471bcf814d
5
5
  SHA512:
6
- metadata.gz: dd34e50ba54ad2d37605e66b84529e5f99bdf95141bbdaec8036707c9c0927ec8d848db48311d8011d0fb7d48ec2bdf8802489039666e305c198442b00ad600c
7
- data.tar.gz: 30fa6c54b64e20bfc29fa356e2af558efd812a1bda3564325c61d8218d91153159157367a28b2e5c72c26182f395a53ca66732f5fd9a6035371c17a5d83f7dc4
6
+ metadata.gz: 8b22c0008029a53d113811afffd71ef785ba0af3b9b276fe8cf017c9eaf537145dd83cdc15bbbf739da6ffe11899e5b6e08088eb7f2f24adf9ba23e427c92a30
7
+ data.tar.gz: ff250a2359122a694544c199142fc369c903f6f6a9f81828ae6027d330d7f8b1498a3130782a0d5602902456e6806c201718d54883c8b9b865158368dce34396
data/.gitignore CHANGED
@@ -1,40 +1,49 @@
1
- # Ruby-Specific
1
+ # Ruby Generated
2
2
 
3
+ /Gemfile.lock
3
4
  /.bundle/
4
5
  /.yardoc
5
- /Gemfile.lock
6
6
  /_yardoc/
7
-
8
- # Ouput-Specific
9
-
10
7
  /coverage/
11
8
  /doc/
12
9
  /pkg/
13
10
  /spec/reports/
11
+ /spec/coverage/
14
12
  /tmp/
15
- *.log
16
- *.tmp
17
- *.swp
18
- *.bak
19
13
 
20
- # IDE-Specific
14
+ # Generated Reports
15
+ reports/
21
16
 
22
- .idea
23
- .settings
24
- .project
25
- .classpath
26
- *.iws
17
+ # Rspec Failure Tracking
27
18
 
28
- # Windows-Specific
19
+ .rspec_status
29
20
 
30
- Thumbs.db
21
+ # IDE Files
31
22
 
32
- # Mac OS-Specific
33
-
34
- *.DS_Store
35
- ._*
23
+ .idea/
24
+ *.iml
25
+ *.iws
26
+ *.ipr
27
+ .vscode/
28
+ .settings/
29
+ .metadata
30
+ .classpath
31
+ .loadpath
32
+ .buildpath
33
+ .project
36
34
 
37
- # Linux-Specific
35
+ # OS Files
38
36
 
39
- .directory
40
- .Trash-*
37
+ .DS_Store
38
+ .DS_Store?
39
+ ._*
40
+ .Spotlight-V100
41
+ .Trashes
42
+ ehthumbs.db
43
+ Thumbs.db
44
+ $RECYCLE.BIN/
45
+ Desktop.ini
46
+ *.tmp
47
+ *.bak
48
+ *.swp
49
+ *~.nib
data/.hound.yml CHANGED
@@ -60,3 +60,9 @@ Metrics/MethodLength:
60
60
  # Encourage fewer parameters.
61
61
  Metrics/ParameterLists:
62
62
  Max: 4
63
+
64
+ Metrics/AbcSize:
65
+ Max: 18
66
+
67
+ Metrics/ModuleLength:
68
+ Max: 180
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in data_builder.gemspec
3
+ gem "coveralls", require: false
4
+
4
5
  gemspec
@@ -1,6 +1,6 @@
1
- The MIT License (MIT)
1
+ **The MIT License (MIT)**
2
2
 
3
- Copyright (c) 2016 Jeff Nyman
3
+ Copyright © 2016-2019 Jeff Nyman
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,9 +1,7 @@
1
1
  # DataBuilder
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/data_builder.svg)](http://badge.fury.io/rb/data_builder)
4
- [![License](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/jeffnyman/data_builder/blob/master/LICENSE.txt)
5
-
6
- [![Dependency Status](https://gemnasium.com/jeffnyman/data_builder.png)](https://gemnasium.com/jeffnyman/data_builder)
4
+ [![License](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/jeffnyman/data_builder/blob/master/LICENSE.md)
7
5
 
8
6
  The goal of DataBuilder is to apply an expressive means of constructing a data set based on information stored in YAML files.
9
7
 
@@ -15,13 +13,23 @@ To get the latest stable release, add this line to your application's Gemfile:
15
13
  gem 'data_builder'
16
14
  ```
17
15
 
18
- And then include it in your bundle:
16
+ To get the latest code:
17
+
18
+ ```ruby
19
+ gem 'data_builder', git: 'https://github.com/jeffnyman/data_builder'
20
+ ```
21
+
22
+ After doing one of the above, execute the following command:
19
23
 
20
- $ bundle
24
+ ```
25
+ $ bundle
26
+ ```
21
27
 
22
28
  You can also install DataBuilder just as you would any other gem:
23
29
 
24
- $ gem install data_builder
30
+ ```
31
+ $ gem install data_builder
32
+ ```
25
33
 
26
34
  ## Usage
27
35
 
@@ -137,7 +145,7 @@ data = testing.data_about(:alpha_centauri)
137
145
  ### Default Files
138
146
 
139
147
  You might wonder how DataBuilder knew to look for `default.yml` since I didn't use a `load` method in these examples. If you do not specify a filename the logic will attempt to use a file named `default.yml` in the specific data path you have specified or in the default path of `data`.
140
-
148
+
141
149
  Another option is that you can set an environment variable called `DATA_BUILDER_SOURCE`. When this variable exists and is set, the value it is set to will be used instead of the `default.yml` file. Keep in mind that the "data source" here refers to the file, not the keys within a file.
142
150
 
143
151
  ### Namespaced Data
@@ -167,9 +175,27 @@ Given the examples, you can see that `data_about` was chosen as the method name
167
175
 
168
176
  The reason for these aliases is, again, to make the logic expressive about its intent. This is particularly nice if you fit DataBuilder in with the context of a fluent API.
169
177
 
178
+ ### Scenarios in Cucumber
179
+
180
+ If you are using Cucumber, there is another to specify the data file to load. You can apply a _tag_ to a given scenario. The tag should take the form of `@databuilder_NAME` where `NAME` is replaced with the name of the data file you want to be loaded for the scenario.
181
+
182
+ As an example, if you add the tag `@databuilder_stars` then the file `stars.yml` will be loaded. If you want to use the tags you have to add the following code in a hook:
183
+
184
+ ```ruby
185
+ Before do |scenario|
186
+ DataBuilder.data_files_for(scenario)
187
+ end
188
+ ```
189
+
190
+ You can use `data_for_scenario` in place of `data_files_for` if you feel that reads better.
191
+
170
192
  ## Development
171
193
 
172
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec:all` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`.
194
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec:all` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
195
+
196
+ The default `rake` command will run all tests as well as a RuboCop analysis.
197
+
198
+ To install this gem onto your local machine, run `bundle exec rake install`.
173
199
 
174
200
  ## Contributing
175
201
 
@@ -194,4 +220,4 @@ This code is loosely based upon the [DataMagic](https://github.com/cheezy/data_m
194
220
  ## License
195
221
 
196
222
  DataBuilder is distributed under the [MIT](http://www.opensource.org/licenses/MIT) license.
197
- See the [LICENSE](https://github.com/jeffnyman/data_builder/blob/master/LICENSE.txt) file for details.
223
+ See the [LICENSE](https://github.com/jeffnyman/data_builder/blob/master/LICENSE.md) file for details.
data/Rakefile CHANGED
@@ -10,6 +10,7 @@ namespace :spec do
10
10
  desc 'Clean all generated reports'
11
11
  task :clean do
12
12
  system('rm -rf spec/reports')
13
+ system('rm -rf spec/coverage')
13
14
  end
14
15
 
15
16
  RSpec::Core::RakeTask.new(all: :clean) do |config|
@@ -21,13 +21,14 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.13"
24
+ spec.add_development_dependency "bundler", "~> 2.0"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
26
  spec.add_development_dependency "rspec", "~> 3.0"
27
27
  spec.add_development_dependency "rubocop"
28
28
  spec.add_development_dependency "pry"
29
29
 
30
30
  spec.add_runtime_dependency "data_reader"
31
+ spec.add_runtime_dependency "faker"
31
32
 
32
33
  spec.post_install_message = %{
33
34
  (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)
@@ -1,12 +1,34 @@
1
+ require "data_builder/core_ext/hash"
2
+ require "data_builder/core_ext/integer"
3
+ require "data_builder/core_ext/string"
1
4
  require "data_builder/version"
5
+ require "data_builder/generation"
6
+ require "data_builder/generation_date"
7
+ require "data_builder/generation_standard"
2
8
 
3
9
  require "data_reader"
10
+ require "faker"
4
11
 
5
12
  module DataBuilder
6
13
  extend DataReader
14
+ extend DateGeneration
15
+ extend StandardGeneration
16
+
17
+ attr_reader :parent
18
+
19
+ if I18n.respond_to? :enforce_available_locales
20
+ I18n.enforce_available_locales = false
21
+ end
22
+
23
+ def self.included(caller)
24
+ @parent = caller
25
+ generators.each do |generator|
26
+ Generation.send :include, generator
27
+ end
28
+ end
7
29
 
8
30
  class << self
9
- attr_accessor :data_source
31
+ attr_accessor :data_contents
10
32
 
11
33
  def default_data_path
12
34
  'data'
@@ -18,6 +40,16 @@ module DataBuilder
18
40
  t.gsub('@databuilder_', '').to_sym
19
41
  end
20
42
  end
43
+
44
+ alias data_for_scenario data_files_for
45
+
46
+ def locale=(value)
47
+ Faker::Config.locale = value
48
+ end
49
+
50
+ def generators
51
+ @generators || []
52
+ end
21
53
  end
22
54
 
23
55
  def data_about(key, specified = {})
@@ -26,13 +58,15 @@ module DataBuilder
26
58
  DataBuilder.load("#{file}.yml")
27
59
  else
28
60
  record = key.to_s
29
- DataBuilder.load(builder_source) unless DataBuilder.data_source
61
+ DataBuilder.load(builder_source) unless DataBuilder.data_contents
30
62
  end
31
63
 
32
- data = DataBuilder.data_source[record]
64
+ data = DataBuilder.data_contents[record]
33
65
  raise ArgumentError, "Undefined key for data: #{key}" unless data
34
66
 
35
- data.merge(specified).clone
67
+ # rubocop:disable Metrics/LineLength
68
+ process_data(data.merge(specified.key?(record) ? specified[record] : specified).deep_copy)
69
+ # rubocop:enable Metrics/LineLength
36
70
  end
37
71
 
38
72
  alias data_from data_about
@@ -44,13 +78,35 @@ module DataBuilder
44
78
  original_data_path = DataBuilder.data_path
45
79
  DataBuilder.data_path = data_location
46
80
  data_files = data_files_for(scenario)
47
- DataBuilder.load("#{data_files.last}.yml") if data_files.count > 0
81
+ DataBuilder.load("#{data_files.last}.yml") if data_files.count.positive?
48
82
  DataBuilder.data_path = original_data_path
49
83
  end
50
84
 
51
85
  private
52
86
 
87
+ def process_data(data)
88
+ case data
89
+ when Hash
90
+ data.each { |key, value| data[key] = process_data(value) }
91
+ when Array
92
+ data.each_with_index { |value, i| data[i] = process_data(value) }
93
+ when String
94
+ return generate(data[1..-1]) if data[0, 1] == "~"
95
+ end
96
+ data
97
+ end
98
+
99
+ def generate(value)
100
+ generation.send :process, value
101
+ rescue StandardError => e
102
+ fail "Failed to generate: #{value}\n Reason: #{e.message}\n"
103
+ end
104
+
105
+ def generation
106
+ @generation ||= Generation.new parent
107
+ end
108
+
53
109
  def builder_source
54
- ENV['DATA_BUILDER_SOURCE'] ? ENV['DATA_BUILDER_SOURCE'] : 'default.yml'
110
+ ENV['DATA_BUILDER_SOURCE'] || 'default.yml'
55
111
  end
56
112
  end
@@ -0,0 +1,5 @@
1
+ class Hash
2
+ def deep_copy
3
+ Marshal.load(Marshal.dump(self))
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class Integer
2
+ def days_from_today(format = '%D')
3
+ the_day = Date.today + self
4
+ the_day.strftime(format)
5
+ end
6
+
7
+ def days_ago(format = '%D')
8
+ the_day = Date.today - self
9
+ the_day.strftime(format)
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ class String
2
+ def integer?
3
+ true if Integer(self)
4
+ rescue StandardError
5
+ false
6
+ end
7
+ end
@@ -0,0 +1,13 @@
1
+ require "data_builder/generation_date"
2
+ require "data_builder/generation_standard"
3
+
4
+ module DataBuilder
5
+ class Generation
6
+ include DateGeneration
7
+ include StandardGeneration
8
+
9
+ def initialize(parent)
10
+ @parent = parent
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,41 @@
1
+ module DataBuilder
2
+ module DateGeneration
3
+ def today(format = '%D')
4
+ Date.today.strftime(format)
5
+ end
6
+
7
+ def tomorrow(format = '%D')
8
+ tomorrow = Date.today + 1
9
+ tomorrow.strftime(format)
10
+ end
11
+
12
+ def yesterday(format = '%D')
13
+ yesterday = Date.today - 1
14
+ yesterday.strftime(format)
15
+ end
16
+
17
+ def month
18
+ randomize(Date::MONTHNAMES[1..-1])
19
+ end
20
+
21
+ def month_abbr
22
+ randomize(Date::ABBR_MONTHNAMES[1..-1])
23
+ end
24
+
25
+ def day_of_week
26
+ randomize(Date::DAYNAMES)
27
+ end
28
+
29
+ def day_of_week_abbr
30
+ randomize(Date::ABBR_DAYNAMES)
31
+ end
32
+
33
+ alias db_today today
34
+ alias dn_tomorrow tomorrow
35
+ alias db_yesterday yesterday
36
+ alias db_month month
37
+ alias db_month_abbr month_abbr
38
+ alias db_day_of_week day_of_week
39
+ alias db_day_of_week_abbr day_of_week_abbr
40
+ end
41
+ end
@@ -0,0 +1,223 @@
1
+ module DataBuilder
2
+ module StandardGeneration
3
+ attr_reader :parent
4
+
5
+ def full_name
6
+ Faker::Name.name
7
+ end
8
+
9
+ def first_name
10
+ Faker::Name.first_name
11
+ end
12
+
13
+ def last_name
14
+ Faker::Name.last_name
15
+ end
16
+
17
+ def name_prefix
18
+ Faker::Name.prefix
19
+ end
20
+
21
+ def name_suffix
22
+ Faker::Name.suffix
23
+ end
24
+
25
+ def title
26
+ Faker::Name.title
27
+ end
28
+
29
+ def street_address(include_secondary = false)
30
+ Faker::Address.street_address(include_secondary: include_secondary)
31
+ end
32
+
33
+ def secondary_address
34
+ Faker::Address.secondary_address
35
+ end
36
+
37
+ def city
38
+ Faker::Address.city
39
+ end
40
+
41
+ def state
42
+ Faker::Address.state
43
+ end
44
+
45
+ def state_abbr
46
+ Faker::Address.state_abbr
47
+ end
48
+
49
+ def zip_code
50
+ Faker::Address.zip
51
+ end
52
+
53
+ def country
54
+ Faker::Address.country
55
+ end
56
+
57
+ def credit_card_number
58
+ Faker::Business.credit_card_number
59
+ end
60
+
61
+ def credit_card_type
62
+ Faker::Business.credit_card_type
63
+ end
64
+
65
+ def phone_number
66
+ value = Faker::PhoneNumber.phone_number
67
+ remove_extension(value)
68
+ end
69
+
70
+ def cell_phone
71
+ value = Faker::PhoneNumber.cell_phone
72
+ remove_extension(value)
73
+ end
74
+
75
+ def company_name
76
+ Faker::Company.name
77
+ end
78
+
79
+ def catch_phrase
80
+ Faker::Company.catch_phrase
81
+ end
82
+
83
+ def words(number = 3)
84
+ Faker::Lorem.words(number: number).join(' ')
85
+ end
86
+
87
+ def sentence(min_word_count = 4)
88
+ Faker::Lorem.sentence(word_count: min_word_count)
89
+ end
90
+
91
+ def sentences(sentence_count = 3)
92
+ Faker::Lorem.sentences(number: sentence_count).join(' ')
93
+ end
94
+
95
+ def paragraphs(paragraph_count = 3)
96
+ Faker::Lorem.paragraphs(number: paragraph_count).join('\n\n')
97
+ end
98
+
99
+ def characters(character_count = 255)
100
+ Faker::Lorem.characters(number: character_count)
101
+ end
102
+
103
+ def email_address(name = nil)
104
+ Faker::Internet.email(name: name)
105
+ end
106
+
107
+ def domain_name
108
+ Faker::Internet.domain_name
109
+ end
110
+
111
+ def user_name
112
+ Faker::Internet.user_name
113
+ end
114
+
115
+ def url
116
+ Faker::Internet.url
117
+ end
118
+
119
+ alias db_first_name first_name
120
+ alias db_full_name full_name
121
+ alias db_last_name last_name
122
+ alias db_name_prefix name_prefix
123
+ alias db_name_suffix name_suffix
124
+ alias db_title title
125
+ alias db_street_address street_address
126
+ alias db_secondary_address secondary_address
127
+ alias db_city city
128
+ alias db_state state
129
+ alias db_state_abbr state_abbr
130
+ alias db_zip_code zip_code
131
+ alias db_country country
132
+ alias db_credit_card_number credit_card_number
133
+ alias db_credit_card_type credit_card_type
134
+ alias db_phone_number phone_number
135
+ alias db_cell_phone cell_phone
136
+ alias db_company_name company_name
137
+ alias db_catch_phrase catch_phrase
138
+ alias db_words words
139
+ alias db_sentence sentence
140
+ alias db_sentences sentences
141
+ alias db_paragraphs paragraphs
142
+ alias db_characters characters
143
+ alias db_email_address email_address
144
+ alias db_domain_name domain_name
145
+ alias db_user_name user_name
146
+ alias db_url url
147
+
148
+ def randomize(value)
149
+ case value
150
+ when Array then value[rand(value.size)]
151
+ when Range then rand((value.last + 1) - value.first) + value.first
152
+ else value
153
+ end
154
+ end
155
+
156
+ def sequence(value)
157
+ index = index_variable_for(value)
158
+ index = (index ? index + 1 : 0)
159
+ index = 0 if index == value.length
160
+ set_index_variable(value, index)
161
+ value[index]
162
+ end
163
+
164
+ def mask(value)
165
+ result = ''
166
+
167
+ value.each_char do |ch|
168
+ result += case ch
169
+ when '#' then randomize(0..9).to_s
170
+ when 'A' then ('A'..'Z').to_a[rand(26)]
171
+ when 'a' then ('a'..'z').to_a[rand(26)]
172
+ else ch
173
+ end
174
+ end
175
+
176
+ result
177
+ end
178
+
179
+ alias db_randomize randomize
180
+ alias db_sequence sequence
181
+ alias db_mask mask
182
+
183
+ private
184
+
185
+ def process(value)
186
+ # rubocop:disable Security/Eval
187
+ eval value
188
+ # rubocop:enable Security/Eval
189
+ end
190
+
191
+ def remove_extension(phone)
192
+ index = phone.index('x')
193
+ phone = phone[0, (index - 1)] if index
194
+ phone
195
+ end
196
+
197
+ def set_index_variable(ary, value)
198
+ index_hash[index_name(ary)] = value
199
+ end
200
+
201
+ def index_variable_for(ary)
202
+ value = index_hash[index_name(ary)]
203
+ index_hash[index_name(ary)] = -1 unless value
204
+ index_hash[index_name(ary)]
205
+ end
206
+
207
+ def index_hash
208
+ dh = data_hash[parent]
209
+ data_hash[parent] = {} unless dh
210
+ data_hash[parent]
211
+ end
212
+
213
+ def index_name(ary)
214
+ "#{ary[0]}#{ary[1]}_index".gsub(' ', '_').downcase
215
+ end
216
+
217
+ def data_hash
218
+ # rubocop:disable Style/GlobalVars
219
+ $data_builder_data_hash ||= {}
220
+ # rubocop:enable Style/GlobalVars
221
+ end
222
+ end
223
+ end
@@ -1,3 +1,3 @@
1
1
  module DataBuilder
2
- VERSION = "1.0.0".freeze
2
+ VERSION = "2.0.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Nyman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-06 00:00:00.000000000 Z
11
+ date: 2019-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.13'
19
+ version: '2.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.13'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: faker
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  description: Provides expressive data set handling from YAML files.
98
112
  email:
99
113
  - jeffnyman@gmail.com
@@ -105,10 +119,9 @@ files:
105
119
  - ".hound.yml"
106
120
  - ".rspec"
107
121
  - ".rubocop.yml"
108
- - ".travis.yml"
109
122
  - CODE_OF_CONDUCT.md
110
123
  - Gemfile
111
- - LICENSE.txt
124
+ - LICENSE.md
112
125
  - README.md
113
126
  - Rakefile
114
127
  - bin/console
@@ -117,13 +130,19 @@ files:
117
130
  - data/default.yml
118
131
  - data_builder.gemspec
119
132
  - lib/data_builder.rb
133
+ - lib/data_builder/core_ext/hash.rb
134
+ - lib/data_builder/core_ext/integer.rb
135
+ - lib/data_builder/core_ext/string.rb
136
+ - lib/data_builder/generation.rb
137
+ - lib/data_builder/generation_date.rb
138
+ - lib/data_builder/generation_standard.rb
120
139
  - lib/data_builder/version.rb
121
140
  homepage: https://github.com/jeffnyman/data_builder
122
141
  licenses:
123
142
  - MIT
124
143
  metadata: {}
125
144
  post_install_message: "\n(::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)\n
126
- \ DataBuilder 1.0.0 has been installed.\n(::) (::) (::) (::) (::) (::) (::) (::)
145
+ \ DataBuilder 2.0.0 has been installed.\n(::) (::) (::) (::) (::) (::) (::) (::)
127
146
  (::) (::) (::) (::)\n "
128
147
  rdoc_options: []
129
148
  require_paths:
@@ -140,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
159
  version: '0'
141
160
  requirements: []
142
161
  rubyforge_project:
143
- rubygems_version: 2.6.13
162
+ rubygems_version: 2.5.2
144
163
  signing_key:
145
164
  specification_version: 4
146
165
  summary: Provides expressive data set handling from YAML files.
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.3.1
5
- before_install: gem install bundler -v 1.13.3