fig_magic 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.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.gitignore +17 -0
  4. data/.idea/.name +1 -0
  5. data/.idea/.rakeTasks +7 -0
  6. data/.idea/FigMagic.iml +33 -0
  7. data/.idea/atlassian-ide-plugin.xml +5 -0
  8. data/.idea/encodings.xml +6 -0
  9. data/.idea/misc.xml +14 -0
  10. data/.idea/modules.xml +8 -0
  11. data/.idea/workspace.xml +776 -0
  12. data/.rspec +2 -0
  13. data/.ruby-gemset +1 -0
  14. data/.ruby-version +1 -0
  15. data/ChangeLog +2 -0
  16. data/Gemfile +12 -0
  17. data/Guardfile +16 -0
  18. data/LICENSE +22 -0
  19. data/README.md +145 -0
  20. data/Rakefile +25 -0
  21. data/config/data/default.yml +3 -0
  22. data/config/data/user.yml +3 -0
  23. data/config/environments/default.yml +1 -0
  24. data/config/yaml/sample.yml +1 -0
  25. data/config/yaml/test_config.yml +14 -0
  26. data/cucumber.yml +2 -0
  27. data/features/data_magic.feature +124 -0
  28. data/features/defaults.feature +8 -0
  29. data/features/fig_newton.feature +85 -0
  30. data/features/step_definitions/data_magic_steps.rb +164 -0
  31. data/features/step_definitions/fig_newton_steps.rb +95 -0
  32. data/features/support/env.rb +9 -0
  33. data/features/yaml/another.yml +9 -0
  34. data/features/yaml/example.yml +56 -0
  35. data/fig_magic.gemspec +25 -0
  36. data/lib/fig_magic/core_ext/fixnum.rb +11 -0
  37. data/lib/fig_magic/core_ext/string.rb +5 -0
  38. data/lib/fig_magic/date_translation.rb +73 -0
  39. data/lib/fig_magic/missing.rb +35 -0
  40. data/lib/fig_magic/node.rb +15 -0
  41. data/lib/fig_magic/standard_translation.rb +316 -0
  42. data/lib/fig_magic/translation.rb +14 -0
  43. data/lib/fig_magic/version.rb +3 -0
  44. data/lib/fig_magic.rb +93 -0
  45. data/spec/lib/data_magic_spec.rb +60 -0
  46. data/spec/lib/translation_spec.rb +312 -0
  47. data/spec/spec_helper.rb +30 -0
  48. metadata +158 -0
data/lib/fig_magic.rb ADDED
@@ -0,0 +1,93 @@
1
+ #DataMagic Requires
2
+ require 'fig_magic/core_ext/string'
3
+ require 'fig_magic/core_ext/fixnum'
4
+ require 'fig_magic/translation'
5
+ require 'fig_magic/date_translation'
6
+ require 'fig_magic/standard_translation'
7
+ require 'faker'
8
+
9
+ #FigNewton Requires
10
+ require 'fig_magic/node'
11
+ require 'fig_magic/missing'
12
+
13
+ #Shared Requires
14
+ require 'yml_reader'
15
+ require 'fig_magic/version'
16
+
17
+
18
+ module FigMagic
19
+ extend YmlReader
20
+ extend StandardTranslation
21
+ extend DateTranslation
22
+ extend FigMagic::Missing
23
+
24
+ attr_reader :parent
25
+
26
+ I18n.enforce_available_locales = false if I18n.respond_to? :enforce_available_locales
27
+
28
+ def self.locale=(value)
29
+ Faker::Config.locale = value
30
+ end
31
+
32
+ def self.included(cls)
33
+ @parent = cls
34
+ translators.each do |translator|
35
+ Translation.send :include, translator
36
+ end
37
+ end
38
+
39
+ def data_for(key, additional={})
40
+ if key.is_a?(String) && key.match(%r{/})
41
+ filename, record = key.split('/')
42
+ FigMagic.load("#{filename}.yml")
43
+ else
44
+ record = key.to_s
45
+ FigMagic.load(the_file) unless FigMagic.yml
46
+ end
47
+ data = FigMagic.yml[record]
48
+ raise ArgumentError, "Undefined key #{key}" unless data
49
+ prep_data data.merge(additional).clone
50
+ end
51
+
52
+ private
53
+
54
+ def the_file
55
+ ENV['DATA_MAGIC_FILE'] ? ENV['DATA_MAGIC_FILE'] : 'default.yml'
56
+ end
57
+
58
+ def prep_data(data)
59
+ data.each do |key, value|
60
+ unless value.nil?
61
+ next if !value.respond_to?('[]') || value.is_a?(Numeric)
62
+ next if value.is_a?(Hash)
63
+ data[key] = translate(value[1..-1]) if value[0,1] == "~"
64
+ end
65
+ end
66
+ data
67
+ end
68
+
69
+ def translate(value)
70
+ translation.send :process, value
71
+ end
72
+
73
+ def translation
74
+ @translation ||= Translation.new parent
75
+ end
76
+
77
+ class << self
78
+ attr_accessor :yml
79
+
80
+ def default_directory
81
+ 'config/'
82
+ end
83
+
84
+ def add_translator(translator)
85
+ translators << translator
86
+ end
87
+
88
+ def translators
89
+ @translators ||= []
90
+ end
91
+ end
92
+
93
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ class UserPage
4
+ include FigMagic
5
+ end
6
+
7
+ describe FigMagic do
8
+ context "when configuring the yml directory" do
9
+ before(:each) do
10
+ FigMagic.yml_directory = nil
11
+ end
12
+
13
+ it "should default to a directory named config" do
14
+ expect(FigMagic.yml_directory).to eql 'config/data'
15
+ end
16
+
17
+ it "should store a yml directory" do
18
+ FigMagic.yml_directory = 'test_dir'
19
+ expect(FigMagic.yml_directory).to eql 'test_dir'
20
+ end
21
+
22
+ it "should accept and use locale" do
23
+ expect(Faker::Config).to receive(:locale=).with('blah')
24
+ FigMagic.locale = 'blah'
25
+ end
26
+
27
+ end
28
+
29
+ context "when reading yml files" do
30
+ it "should read files from the config directory" do
31
+ FigMagic.yml_directory = 'test'
32
+ expect(File).to receive(:read).with("test/fname").and_return('test')
33
+ FigMagic.load("fname")
34
+ end
35
+
36
+ it "should default to reading a file named default.yml" do
37
+ FigMagic.yml_directory = 'config/data'
38
+ FigMagic.yml = nil
39
+ data = UserPage.new.data_for :dm
40
+ expect(data.keys).to include('value1')
41
+ end
42
+
43
+ it "should use the value of DATA_MAGIC_FILE if it exists" do
44
+ FigMagic.yml_directory = 'config/data'
45
+ FigMagic.yml = nil
46
+ ENV['DATA_MAGIC_FILE'] = 'user.yml'
47
+ data = UserPage.new.data_for "valid"
48
+ expect(data.keys.sort).to eq(['job','name'])
49
+ ENV['DATA_MAGIC_FILE'] = nil
50
+ end
51
+ end
52
+
53
+ context "namespaced keys" do
54
+ it "loads correct file and retrieves data" do
55
+ FigMagic.yml_directory = 'config/data'
56
+ data = UserPage.new.data_for "user/valid"
57
+ expect(data.keys.sort).to eq(['job','name'])
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,312 @@
1
+ require 'spec_helper'
2
+
3
+ class TestSubject
4
+ include FigMagic
5
+ end
6
+
7
+ describe "FigMagic translations" do
8
+ context "when delivering data" do
9
+ let(:example) { TestSubject.new }
10
+
11
+ def set_field_value(value)
12
+ expect(FigMagic).to receive(:yml).twice.and_return({'key' => {'field' => value}})
13
+ end
14
+
15
+ it "should deliver the hash from the yaml" do
16
+ set_field_value 'value'
17
+ expect(example.data_for('key')).to have_field_value 'value'
18
+ end
19
+
20
+ it "should allow you to use a symbol for the key" do
21
+ set_field_value 'value'
22
+ expect(example.data_for(:key)).to have_field_value 'value'
23
+ end
24
+
25
+ it "should default to use a file named 'default.yml'" do
26
+ FigMagic.yml_directory = 'test'
27
+ expect(File).to receive(:read).with("test/default.yml").and_return('test')
28
+ expect(FigMagic).to receive(:yml).and_return(nil)
29
+ expect(FigMagic).to receive(:yml).and_return({'key' => {'field' => 'value'}})
30
+ expect(example.data_for('key')).to have_field_value 'value'
31
+ end
32
+
33
+ it "should clone the data returned so it can be resued" do
34
+ yaml = double('yaml')
35
+ expect(yaml).to receive(:merge).and_return(yaml)
36
+ expect(FigMagic).to receive(:yml).twice.and_return(yaml)
37
+ expect(yaml).to receive(:[]).and_return(yaml)
38
+ expect(yaml).to receive(:clone).and_return({'field' => 'value'})
39
+ expect(example.data_for('key')).to have_field_value 'value'
40
+ end
41
+
42
+ it "should merge the provided data with the yaml data" do
43
+ yaml = double('yaml')
44
+ expect(FigMagic).to receive(:yml).twice.and_return(yaml)
45
+ expect(yaml).to receive(:[]).and_return(yaml)
46
+ expect(yaml).to receive(:merge).and_return(yaml)
47
+ expect(yaml).to receive(:clone).and_return({'field' => 'value'})
48
+ expect(example.data_for('key')).to have_field_value 'value'
49
+ end
50
+
51
+ context "translating random names" do
52
+ it "should add a name" do
53
+ expect(Faker::Name).to receive(:name).and_return('Joseph')
54
+ set_field_value '~full_name'
55
+ expect(example.data_for('key')).to have_field_value 'Joseph'
56
+ end
57
+
58
+ it "should add first name" do
59
+ expect(Faker::Name).to receive(:first_name).and_return('Sam')
60
+ set_field_value '~first_name'
61
+ expect(example.data_for('key')).to have_field_value 'Sam'
62
+ end
63
+
64
+ it "should add last name" do
65
+ expect(Faker::Name).to receive(:last_name).and_return('Smith')
66
+ set_field_value '~last_name'
67
+ expect(example.data_for('key')).to have_field_value 'Smith'
68
+ end
69
+
70
+ it "should add name prefix" do
71
+ expect(Faker::Name).to receive(:prefix).and_return("Mr")
72
+ set_field_value '~name_prefix'
73
+ expect(example.data_for('key')).to have_field_value 'Mr'
74
+ end
75
+
76
+ it "should add name suffix" do
77
+ expect(Faker::Name).to receive(:suffix).and_return('Jr')
78
+ set_field_value '~name_suffix'
79
+ expect(example.data_for('key')).to have_field_value 'Jr'
80
+ end
81
+ end
82
+
83
+ context "translating random addresses" do
84
+ it "should add a street address" do
85
+ expect(Faker::Address).to receive(:street_address).and_return("123 Main")
86
+ set_field_value '~street_address'
87
+ expect(example.data_for('key')).to have_field_value '123 Main'
88
+ end
89
+
90
+ it "should add a city" do
91
+ expect(Faker::Address).to receive(:city).and_return('Cleveland')
92
+ set_field_value '~city'
93
+ expect(example.data_for('key')).to have_field_value 'Cleveland'
94
+ end
95
+
96
+ it "should add a state" do
97
+ expect(Faker::Address).to receive(:state).and_return('Ohio')
98
+ set_field_value '~state'
99
+ expect(example.data_for('key')).to have_field_value 'Ohio'
100
+ end
101
+
102
+ it "should add a state abbreviation" do
103
+ expect(Faker::Address).to receive(:state_abbr).and_return('OH')
104
+ set_field_value '~state_abbr'
105
+ expect(example.data_for('key')).to have_field_value 'OH'
106
+ end
107
+
108
+ it "should add a zip code" do
109
+ expect(Faker::Address).to receive(:zip).and_return('11111')
110
+ set_field_value '~zip_code'
111
+ expect(example.data_for('key')).to have_field_value '11111'
112
+ end
113
+
114
+ it "should add a country" do
115
+ expect(Faker::Address).to receive(:country).and_return("United States")
116
+ set_field_value '~country'
117
+ expect(example.data_for('key')).to have_field_value 'United States'
118
+ end
119
+
120
+ it "should add a secondary address" do
121
+ expect(Faker::Address).to receive(:secondary_address).and_return('2nd floor')
122
+ set_field_value '~secondary_address'
123
+ expect(example.data_for('key')).to have_field_value '2nd floor'
124
+ end
125
+ end
126
+
127
+ context "translating company names" do
128
+ it "should add a company name" do
129
+ expect(Faker::Company).to receive(:name).and_return('LeanDog')
130
+ set_field_value '~company_name'
131
+ expect(example.data_for('key')).to have_field_value 'LeanDog'
132
+ end
133
+ end
134
+
135
+ context "translating business" do
136
+ it "should add a credit card number" do
137
+ expect(Faker::Business).to receive(:credit_card_number).and_return('123')
138
+ set_field_value '~credit_card_number'
139
+ expect(example.data_for('key')).to have_field_value '123'
140
+ end
141
+
142
+ it "should add credit card type" do
143
+ expect(Faker::Business).to receive(:credit_card_type).
144
+ and_return('visa')
145
+ set_field_value '~credit_card_type'
146
+ expect(example.data_for('key')).to have_field_value 'visa'
147
+ end
148
+ end
149
+
150
+ context "translating internet names" do
151
+ it "should add an email address" do
152
+ expect(Faker::Internet).to receive(:email).and_return('buddy@example.com')
153
+ set_field_value '~email_address'
154
+ expect(example.data_for('key')).to have_field_value 'buddy@example.com'
155
+ end
156
+
157
+ it "should add a domain name" do
158
+ expect(Faker::Internet).to receive(:domain_name).and_return("google.com")
159
+ set_field_value '~domain_name'
160
+ expect(example.data_for('key')).to have_field_value 'google.com'
161
+ end
162
+
163
+ it "should add a user name" do
164
+ expect(Faker::Internet).to receive(:user_name).and_return('very_cheezy')
165
+ set_field_value '~user_name'
166
+ expect(example.data_for('key')).to have_field_value 'very_cheezy'
167
+ end
168
+ end
169
+
170
+ context "translating phone numbers" do
171
+ it "shold add a phone number" do
172
+ expect(Faker::PhoneNumber).to receive(:phone_number).and_return('555-555-5555')
173
+ set_field_value '~phone_number'
174
+ expect(example.data_for('key')).to have_field_value '555-555-5555'
175
+ end
176
+ end
177
+
178
+ context "translating random phrases" do
179
+ it "should add a catch phrase" do
180
+ expect(Faker::Company).to receive(:catch_phrase).and_return('Ruby is cool')
181
+ set_field_value '~catch_phrase'
182
+ expect(example.data_for('key')).to have_field_value 'Ruby is cool'
183
+ end
184
+
185
+ it "should add random words" do
186
+ expect(Faker::Lorem).to receive(:words).and_return(['random', 'words'])
187
+ set_field_value '~words'
188
+ expect(example.data_for('key')).to have_field_value 'random words'
189
+ end
190
+
191
+ it "should default to returning 3 words" do
192
+ set_field_value '~words'
193
+ expect(example.data_for('key')['field'].split.size).to eql 3
194
+ end
195
+
196
+ it "should allow you to specify the number of words" do
197
+ set_field_value '~words(4)'
198
+ expect(example.data_for('key')['field'].split.size).to eql 4
199
+ end
200
+
201
+ it "should add a random sentence" do
202
+ expect(Faker::Lorem).to receive(:sentence).and_return('a sentence')
203
+ set_field_value '~sentence'
204
+ expect(example.data_for('key')).to have_field_value 'a sentence'
205
+ end
206
+
207
+ it "should default to returning a minimum of 4 words" do
208
+ set_field_value '~sentence'
209
+ expect(example.data_for('key')['field'].split.size).to be >= 4
210
+ end
211
+
212
+ it "should allow you to specify a minimum word count" do
213
+ set_field_value '~sentence(20)'
214
+ expect(example.data_for('key')['field'].split.size).to be >= 20
215
+ end
216
+
217
+ it "should add sentences" do
218
+ expect(Faker::Lorem).to receive(:sentences).and_return(['this is sentences'])
219
+ set_field_value '~sentences'
220
+ expect(example.data_for('key')).to have_field_value 'this is sentences'
221
+ end
222
+
223
+ it "should default to returning a default of 3 sentences" do
224
+ set_field_value '~sentences'
225
+ expect(example.data_for('key')['field'].split('.').size).to be >= 3
226
+ end
227
+
228
+ it "should allow you to specify the number of sentences" do
229
+ set_field_value '~sentences(10)'
230
+ expect(example.data_for('key')['field'].split('.').size).to be >= 10
231
+ end
232
+
233
+ it "should add a paragraphs" do
234
+ expect(Faker::Lorem).to receive(:paragraphs).and_return(['this is a paragraph'])
235
+ set_field_value '~paragraphs'
236
+ expect(example.data_for('key')).to have_field_value 'this is a paragraph'
237
+ end
238
+
239
+ it "should return 3 paragraphs by default" do
240
+ set_field_value '~paragraphs'
241
+ expect(example.data_for('key')['field'].split('\n\n').size).to eql 3
242
+ end
243
+
244
+ it "should allow you to specify the number of paragraphs" do
245
+ set_field_value '~paragraphs(10)'
246
+ expect(example.data_for('key')['field'].split('\n\n').size).to eql 10
247
+ end
248
+
249
+ it "should add characters" do
250
+ expect(Faker::Lorem).to receive(:characters).and_return('abcdefg')
251
+ set_field_value '~characters'
252
+ expect(example.data_for('key')).to have_field_value 'abcdefg'
253
+ end
254
+ end
255
+
256
+ context "translating boolean values" do
257
+ it "should resolve true" do
258
+ set_field_value true
259
+ expect(example.data_for('key')).to have_field_value true
260
+ end
261
+
262
+ it "should resolve false" do
263
+ set_field_value false
264
+ expect(example.data_for('key')).to have_field_value false
265
+ end
266
+ end
267
+
268
+ context "with numeric values" do
269
+ it "doesn't translate values" do
270
+ set_field_value(1)
271
+ expect(example.data_for("key")).to have_field_value 1
272
+ end
273
+ end
274
+
275
+ context "with values not in the yaml" do
276
+ it "throws a ArgumentError" do
277
+ expect { example.data_for("inexistant_key") }.to raise_error ArgumentError
278
+ end
279
+ end
280
+
281
+ context "providing date values" do
282
+ it "should provide today's date" do
283
+ set_field_value '~today'
284
+ expect(example.data_for('key')).to have_field_value Date.today.strftime('%D')
285
+ end
286
+
287
+ it "should provide tomorrow's date" do
288
+ set_field_value '~tomorrow'
289
+ tomorrow = Date.today + 1
290
+ expect(example.data_for('key')).to have_field_value tomorrow.strftime('%D')
291
+ end
292
+
293
+ it "should provide yesterday's date" do
294
+ set_field_value '~yesterday'
295
+ yesterday = Date.today - 1
296
+ expect(example.data_for('key')).to have_field_value yesterday.strftime('%D')
297
+ end
298
+
299
+ it "should provide a date that is some number of days from now" do
300
+ set_field_value '~5.days_from_today'
301
+ the_date = Date.today + 5
302
+ expect(example.data_for('key')).to have_field_value the_date.strftime('%D')
303
+ end
304
+
305
+ it "should provide a date that is some number of days ago" do
306
+ set_field_value '~5.days_ago'
307
+ the_date = Date.today - 5
308
+ expect(example.data_for('key')).to have_field_value the_date.strftime('%D')
309
+ end
310
+ end
311
+ end
312
+ end
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+
5
+ if ENV['coverage']
6
+ raise "simplecov only works on Ruby 1.9" unless RUBY_VERSION =~ /^1\.9/
7
+
8
+ require 'simplecov'
9
+ SimpleCov.start { add_filter "spec/" }
10
+ end
11
+
12
+ require 'rspec'
13
+
14
+ require 'fig_magic'
15
+
16
+ RSpec::Matchers.define :have_field_value do |expected|
17
+ match do |actual|
18
+ actual['field'] == expected
19
+ end
20
+
21
+ failure_message do |actual|
22
+ "expected '#{expected}' to equal the field value '#{actual['field']}'"
23
+ end
24
+
25
+ failure_message_when_negated do |actual|
26
+ "expected '#{expected}' to not equal to field value '#{actual['field']}'"
27
+ end
28
+ end
29
+
30
+
metadata ADDED
@@ -0,0 +1,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fig_magic
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - Justin Commu
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-11-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faker
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: yml_reader
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0.5'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 2.12.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 2.12.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: cucumber
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.2.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 1.2.0
69
+ description: Provides datasets to application stored in YAML files
70
+ email:
71
+ - jcommu@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".DS_Store"
77
+ - ".gitignore"
78
+ - ".idea/.name"
79
+ - ".idea/.rakeTasks"
80
+ - ".idea/FigMagic.iml"
81
+ - ".idea/atlassian-ide-plugin.xml"
82
+ - ".idea/encodings.xml"
83
+ - ".idea/misc.xml"
84
+ - ".idea/modules.xml"
85
+ - ".idea/workspace.xml"
86
+ - ".rspec"
87
+ - ".ruby-gemset"
88
+ - ".ruby-version"
89
+ - ChangeLog
90
+ - Gemfile
91
+ - Guardfile
92
+ - LICENSE
93
+ - README.md
94
+ - Rakefile
95
+ - config/data/default.yml
96
+ - config/data/user.yml
97
+ - config/environments/default.yml
98
+ - config/yaml/sample.yml
99
+ - config/yaml/test_config.yml
100
+ - cucumber.yml
101
+ - features/data_magic.feature
102
+ - features/defaults.feature
103
+ - features/fig_newton.feature
104
+ - features/step_definitions/data_magic_steps.rb
105
+ - features/step_definitions/fig_newton_steps.rb
106
+ - features/support/env.rb
107
+ - features/yaml/another.yml
108
+ - features/yaml/example.yml
109
+ - fig_magic.gemspec
110
+ - lib/fig_magic.rb
111
+ - lib/fig_magic/core_ext/fixnum.rb
112
+ - lib/fig_magic/core_ext/string.rb
113
+ - lib/fig_magic/date_translation.rb
114
+ - lib/fig_magic/missing.rb
115
+ - lib/fig_magic/node.rb
116
+ - lib/fig_magic/standard_translation.rb
117
+ - lib/fig_magic/translation.rb
118
+ - lib/fig_magic/version.rb
119
+ - spec/lib/data_magic_spec.rb
120
+ - spec/lib/translation_spec.rb
121
+ - spec/spec_helper.rb
122
+ homepage: http://github.com/dingokiller/fig_magic
123
+ licenses:
124
+ - MIT
125
+ metadata: {}
126
+ post_install_message:
127
+ rdoc_options: []
128
+ require_paths:
129
+ - lib
130
+ required_ruby_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ required_rubygems_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ requirements: []
141
+ rubyforge_project:
142
+ rubygems_version: 2.2.5
143
+ signing_key:
144
+ specification_version: 4
145
+ summary: Combines FigNewton & DataMagic into a single gem & namespace
146
+ test_files:
147
+ - features/data_magic.feature
148
+ - features/defaults.feature
149
+ - features/fig_newton.feature
150
+ - features/step_definitions/data_magic_steps.rb
151
+ - features/step_definitions/fig_newton_steps.rb
152
+ - features/support/env.rb
153
+ - features/yaml/another.yml
154
+ - features/yaml/example.yml
155
+ - spec/lib/data_magic_spec.rb
156
+ - spec/lib/translation_spec.rb
157
+ - spec/spec_helper.rb
158
+ has_rdoc: