eddy 0.3.0 → 0.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -1
- data/Gemfile.lock +1 -1
- data/README.md +4 -7
- data/eddy.gemspec +2 -1
- data/lib/eddy/{build/build.rb → build.rb} +0 -0
- data/lib/eddy/{cli/cli.rb → cli.rb} +0 -0
- data/lib/eddy/config.rb +18 -4
- data/lib/eddy/data.rb +15 -2
- data/lib/eddy/{write → models}/functional_group.rb +0 -0
- data/lib/eddy/{write → models}/interchange.rb +0 -0
- data/lib/eddy/models/{loop.rb → loop/base.rb} +0 -0
- data/lib/eddy/models/loop/repeat.rb +42 -0
- data/lib/eddy/{write → models}/simple_interchange.rb +0 -0
- data/lib/eddy/models.rb +13 -0
- data/lib/eddy/version.rb +1 -1
- data/lib/eddy.rb +3 -12
- data/todo.txt +2 -1
- metadata +11 -14
- data/lib/eddy/data/persistence/active_record.rb +0 -10
- data/lib/generators/eddy/initializer/initializer_generator.rb +0 -17
- data/lib/generators/eddy/initializer/templates/eddy.rb.erb +0 -6
- data/lib/generators/eddy/migration/migration_generator.rb +0 -53
- data/lib/generators/eddy/migration/templates/migration.rb.erb +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f42340c2240a26ad129493767545915bfa8d6405d79691841fada80cac9ac7ee
|
4
|
+
data.tar.gz: d60b37dc82e5a008e616ee98c902201df6d97808d4e215769e208a0de404bffb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c6ac232571b5cd098770a25c20416cfa7ce4a65be98bf5b001666185010b0d84dbf9af160406bcd1e313c35eda2a463da92b413cceee1a9458f728ab0894e3d
|
7
|
+
data.tar.gz: f41c5e4c6bc496f0354e6046c1d9bec085037f529647d9ea04c4c81706c4bcd3412528413afb5166866894c19484279d098f9b35ebc6de13129a31217c7977f5
|
data/CHANGELOG.md
CHANGED
@@ -7,12 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## master (unreleased)
|
9
9
|
|
10
|
-
Versions 0.x
|
10
|
+
Versions 0.x (0.2, 0.3, 0.4, ...) exist to make it easier for me to test Eddy in other projects and figure out how best to move forward with development.
|
11
11
|
|
12
12
|
All code should be considered Work In Progress.
|
13
13
|
|
14
14
|
While the API is still changing, enough code exists that EDI documents can currently be written with Eddy (though I wouldn't recommend use in production environments yet).
|
15
15
|
|
16
|
+
## 0.4.0 (2020-01-05)
|
17
|
+
|
18
|
+
### Added
|
19
|
+
|
20
|
+
- Support `Eddy::Data::Persistence::ActiveRecord`.
|
21
|
+
|
22
|
+
### Changed
|
23
|
+
|
24
|
+
- Move generators to separate repo, [tcd/eddy-rails](https://github.com/tcd/eddy-rails).
|
25
|
+
- Update `Eddy.data` when `Eddy.config.persistence_method` is changed.
|
26
|
+
|
16
27
|
## 0.3.0 (2020-01-04)
|
17
28
|
|
18
29
|
### Added
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -10,10 +10,12 @@
|
|
10
10
|
[travis-ci]: https://travis-ci.org/tcd/eddy
|
11
11
|
[coveralls]: https://coveralls.io/github/tcd/eddy?branch=master
|
12
12
|
[license]: https://github.com/tcd/eddy/blob/master/LICENSE.txt
|
13
|
-
[docs]: https://www.rubydoc.info/gems/eddy/0.
|
13
|
+
[docs]: https://www.rubydoc.info/gems/eddy/0.4.0
|
14
14
|
|
15
15
|
## Installation
|
16
16
|
|
17
|
+
### Without Rails
|
18
|
+
|
17
19
|
Add this line to your application's Gemfile:
|
18
20
|
|
19
21
|
```ruby
|
@@ -28,12 +30,7 @@ bundle
|
|
28
30
|
|
29
31
|
### With Rails
|
30
32
|
|
31
|
-
|
32
|
-
|
33
|
-
```sh
|
34
|
-
rails g eddy:install eddy:migration
|
35
|
-
rails db:migrate
|
36
|
-
```
|
33
|
+
Use [eddy-rails](https://github.com/tcd/eddy-rails).
|
37
34
|
|
38
35
|
## Validation
|
39
36
|
|
data/eddy.gemspec
CHANGED
@@ -6,13 +6,14 @@ Gem::Specification.new do |spec|
|
|
6
6
|
spec.name = "eddy"
|
7
7
|
spec.version = Eddy::VERSION
|
8
8
|
spec.authors = ["Clay Dunston"]
|
9
|
-
spec.required_ruby_version = ">= 2.5.0"
|
10
9
|
spec.email = ["dunstontc@gmail.com"]
|
11
10
|
spec.summary = "EDI toolkit"
|
12
11
|
spec.description = spec.summary
|
13
12
|
spec.homepage = "https://github.com/tcd/eddy"
|
14
13
|
spec.license = "MIT"
|
15
14
|
|
15
|
+
spec.required_ruby_version = ">= 2.5.0"
|
16
|
+
|
16
17
|
spec.metadata = {
|
17
18
|
"homepage_uri" => spec.homepage,
|
18
19
|
"source_code_uri" => spec.homepage,
|
File without changes
|
File without changes
|
data/lib/eddy/config.rb
CHANGED
@@ -1,12 +1,9 @@
|
|
1
1
|
module Eddy
|
2
|
-
# Configuration for Eddy
|
2
|
+
# Configuration for Eddy.
|
3
3
|
class Config
|
4
4
|
|
5
5
|
# @return [String<"test", "development", "production">] ("development")
|
6
6
|
attr_accessor :env
|
7
|
-
# Method used by Eddy to persist data about EDI control numbers.
|
8
|
-
# @return [Symbol<:memory, :file>] (:memory)
|
9
|
-
attr_accessor :persistence_method
|
10
7
|
# @return [String]
|
11
8
|
attr_accessor :tmp_dir
|
12
9
|
# @return [String]
|
@@ -26,6 +23,23 @@ module Eddy
|
|
26
23
|
self.validate = true
|
27
24
|
end
|
28
25
|
|
26
|
+
# Method used by Eddy to persist data about EDI control numbers.
|
27
|
+
# @return [Symbol<:memory, :file>] (:memory)
|
28
|
+
#
|
29
|
+
# @return [void]
|
30
|
+
def persistence_method()
|
31
|
+
return @persistence_method
|
32
|
+
end
|
33
|
+
|
34
|
+
# Method used by Eddy to persist data about EDI control numbers.
|
35
|
+
#
|
36
|
+
# @param method [Symbol]
|
37
|
+
# @return [void]
|
38
|
+
def persistence_method=(method)
|
39
|
+
Eddy.clear_data()
|
40
|
+
@persistence_method = method
|
41
|
+
end
|
42
|
+
|
29
43
|
end
|
30
44
|
|
31
45
|
# Configuration for Eddy
|
data/lib/eddy/data.rb
CHANGED
@@ -7,16 +7,29 @@ module Eddy
|
|
7
7
|
# Persistent data used by Eddy.
|
8
8
|
# @return [Eddy::Data::Persistence::Base]
|
9
9
|
def self.data
|
10
|
-
return @data if defined?
|
10
|
+
return @data if defined?(@data) && !@data.nil?
|
11
11
|
case Eddy.config.persistence_method
|
12
12
|
when :memory then @data = Eddy::Data::Persistence::Memory.new()
|
13
13
|
when :file then raise NotImplementedError
|
14
|
-
when :
|
14
|
+
when :active_record
|
15
|
+
if defined?(Rails) && defined?(Eddy::Rails)
|
16
|
+
@data = Eddy::Data::Persistence::ActiveRecord.new()
|
17
|
+
else
|
18
|
+
raise Eddy::Errors::Error, "ActiveRecord persistence method can currently only be used with Ruby on Rails"
|
19
|
+
end
|
15
20
|
else raise Eddy::Errors::Error, "Unsupported persistence method: #{Eddy.config.persistence_method}"
|
16
21
|
end
|
17
22
|
return @data
|
18
23
|
end
|
19
24
|
|
25
|
+
# Set `@data` to `nil` so that a new persistence_method can be set up.
|
26
|
+
#
|
27
|
+
# @return [void]
|
28
|
+
def self.clear_data()
|
29
|
+
@data = nil
|
30
|
+
end
|
31
|
+
|
32
|
+
# Code for storing & generating data used by Eddy when generating EDI documents.
|
20
33
|
module Data
|
21
34
|
|
22
35
|
# @return [Integer]
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Eddy
|
2
|
+
module Loop
|
3
|
+
# Data form a single loop iteration.
|
4
|
+
class Repeat
|
5
|
+
|
6
|
+
# An array of Segments and/or other Loops.
|
7
|
+
# This is used as a template to populate `content`.
|
8
|
+
# @return [Array<Eddy::Segment, Eddy::Loop::Base>]
|
9
|
+
attr_reader :components
|
10
|
+
# @return [Eddy::Data::Store] Data passed down from a Transaction Set.
|
11
|
+
attr_reader :store
|
12
|
+
|
13
|
+
# All of a Loop's elements need to be declared in its constructor.
|
14
|
+
#
|
15
|
+
# @param store [Eddy::Data::Store]
|
16
|
+
# @param components [Array<Eddy::Loop, Eddy::Segment>]
|
17
|
+
# @return [void]
|
18
|
+
def initialize(store, *components)
|
19
|
+
@store = store
|
20
|
+
components.flatten!
|
21
|
+
@components = components || []
|
22
|
+
end
|
23
|
+
|
24
|
+
# Return all contained Segments in a single, flattened array.
|
25
|
+
#
|
26
|
+
# @return [Array<Eddy::Segment>]
|
27
|
+
def all_contents()
|
28
|
+
contents = self.content.flatten.map do |c|
|
29
|
+
if c.is_a?(Eddy::Loop::Base)
|
30
|
+
c.all_contents()
|
31
|
+
elsif c.is_a?(Eddy::Segment)
|
32
|
+
c
|
33
|
+
else
|
34
|
+
raise Eddy::Errors::RenderError
|
35
|
+
end
|
36
|
+
end
|
37
|
+
return contents.flatten
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
File without changes
|
data/lib/eddy/models.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require "eddy/models/element"
|
2
|
+
require "eddy/models/segment"
|
3
|
+
require "eddy/models/loop/base"
|
4
|
+
# require "eddy/models/loop/repeat"
|
5
|
+
require "eddy/models/transaction_set"
|
6
|
+
require "eddy/models/functional_group"
|
7
|
+
require "eddy/models/interchange"
|
8
|
+
require "eddy/models/simple_interchange"
|
9
|
+
|
10
|
+
module Eddy
|
11
|
+
# Classes modeling EDI components.
|
12
|
+
module Models; end
|
13
|
+
end
|
data/lib/eddy/version.rb
CHANGED
data/lib/eddy.rb
CHANGED
@@ -9,18 +9,9 @@ require "eddy/data"
|
|
9
9
|
|
10
10
|
Dir.glob(File.join(__dir__, "eddy", "schema", "*.rb")).sort.each { |file| require file }
|
11
11
|
|
12
|
-
require "eddy/models
|
13
|
-
require "eddy/models/segment"
|
14
|
-
require "eddy/models/loop"
|
15
|
-
require "eddy/models/transaction_set"
|
16
|
-
|
17
|
-
require "eddy/write/interchange"
|
18
|
-
require "eddy/write/simple_interchange"
|
19
|
-
require "eddy/write/functional_group"
|
20
|
-
|
12
|
+
require "eddy/models"
|
21
13
|
require "eddy/parse"
|
22
|
-
|
23
|
-
require "eddy/build/build"
|
14
|
+
require "eddy/build"
|
24
15
|
|
25
16
|
# Dir.glob(File.join(__dir__, "definitions", "elements", "manual", "**", "*.rb")).sort.each { |file| require file }
|
26
17
|
# Dir.glob(File.join(__dir__, "definitions", "segments", "manual", "**", "*.rb")).sort.each { |file| require file }
|
@@ -30,4 +21,4 @@ Dir.glob(File.join(__dir__, "definitions", "elements", "**", "*.rb")).sort.each
|
|
30
21
|
Dir.glob(File.join(__dir__, "definitions", "segments", "**", "*.rb")).sort.each { |file| require file }
|
31
22
|
Dir.glob(File.join(__dir__, "definitions", "transaction_sets", "**", "*.rb")).sort.each { |file| require file }
|
32
23
|
|
33
|
-
require "eddy/cli
|
24
|
+
require "eddy/cli"
|
data/todo.txt
CHANGED
@@ -3,10 +3,10 @@ x 2019-12-20 2019-12-20 Write code to check what element files already exist.
|
|
3
3
|
x 2019-12-20 Write code to build all segments.
|
4
4
|
x 2020-01-02 2019-12-20 Figure out how to deal with loops.
|
5
5
|
x 2020-01-03 2019-12-20 Finish TransactionSetBuilder.
|
6
|
+
x 2020-01-05 2019-12-20 Reset `Eddy.data` when `Eddy.config.persistence_method` changes.
|
6
7
|
|
7
8
|
2019-12-28 If a loop can only repeat once, dont treat it as a loop.
|
8
9
|
2019-12-20 Add a DB persistence_method.
|
9
|
-
2019-12-20 Reset `Eddy.data` when `Eddy.config.persistence_method` changes.
|
10
10
|
2019-12-20 Check for conflicts in Rails generators.
|
11
11
|
2019-12-20 Write a Rails model generator.
|
12
12
|
2019-12-27 Generate "ref map" files.
|
@@ -14,3 +14,4 @@ x 2020-01-03 2019-12-20 Finish TransactionSetBuilder.
|
|
14
14
|
2019-12-30 JSON schema validation errors.
|
15
15
|
2020-01-02 Ensure loops dont go over repeat limit.
|
16
16
|
2020-01-02 Implement `Segment.max_use` & `Segment.min_use`.
|
17
|
+
2020-01-05 Move `Build` to `eddy-build`
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eddy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clay Dunston
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -1491,7 +1491,7 @@ files:
|
|
1491
1491
|
- lib/definitions/transaction_sets/manual/856/856.rb
|
1492
1492
|
- lib/definitions/transaction_sets/manual/856/loops.rb
|
1493
1493
|
- lib/eddy.rb
|
1494
|
-
- lib/eddy/build
|
1494
|
+
- lib/eddy/build.rb
|
1495
1495
|
- lib/eddy/build/elements/element.rb
|
1496
1496
|
- lib/eddy/build/elements/elements.rb
|
1497
1497
|
- lib/eddy/build/elements/id.rb
|
@@ -1499,15 +1499,15 @@ files:
|
|
1499
1499
|
- lib/eddy/build/loop_builder.rb
|
1500
1500
|
- lib/eddy/build/segment_builder.rb
|
1501
1501
|
- lib/eddy/build/transaction_set_builder.rb
|
1502
|
-
- lib/eddy/cli
|
1502
|
+
- lib/eddy/cli.rb
|
1503
1503
|
- lib/eddy/config.rb
|
1504
1504
|
- lib/eddy/data.rb
|
1505
|
-
- lib/eddy/data/persistence/active_record.rb
|
1506
1505
|
- lib/eddy/data/persistence/base.rb
|
1507
1506
|
- lib/eddy/data/persistence/file.rb
|
1508
1507
|
- lib/eddy/data/persistence/memory.rb
|
1509
1508
|
- lib/eddy/data/store.rb
|
1510
1509
|
- lib/eddy/errors.rb
|
1510
|
+
- lib/eddy/models.rb
|
1511
1511
|
- lib/eddy/models/element.rb
|
1512
1512
|
- lib/eddy/models/element/an.rb
|
1513
1513
|
- lib/eddy/models/element/b.rb
|
@@ -1518,8 +1518,12 @@ files:
|
|
1518
1518
|
- lib/eddy/models/element/n.rb
|
1519
1519
|
- lib/eddy/models/element/r.rb
|
1520
1520
|
- lib/eddy/models/element/tm.rb
|
1521
|
-
- lib/eddy/models/
|
1521
|
+
- lib/eddy/models/functional_group.rb
|
1522
|
+
- lib/eddy/models/interchange.rb
|
1523
|
+
- lib/eddy/models/loop/base.rb
|
1524
|
+
- lib/eddy/models/loop/repeat.rb
|
1522
1525
|
- lib/eddy/models/segment.rb
|
1526
|
+
- lib/eddy/models/simple_interchange.rb
|
1523
1527
|
- lib/eddy/models/transaction_set.rb
|
1524
1528
|
- lib/eddy/parse.rb
|
1525
1529
|
- lib/eddy/schema/element_summary.rb
|
@@ -1538,13 +1542,6 @@ files:
|
|
1538
1542
|
- lib/eddy/util/timestamp.rb
|
1539
1543
|
- lib/eddy/util/trim.rb
|
1540
1544
|
- lib/eddy/version.rb
|
1541
|
-
- lib/eddy/write/functional_group.rb
|
1542
|
-
- lib/eddy/write/interchange.rb
|
1543
|
-
- lib/eddy/write/simple_interchange.rb
|
1544
|
-
- lib/generators/eddy/initializer/initializer_generator.rb
|
1545
|
-
- lib/generators/eddy/initializer/templates/eddy.rb.erb
|
1546
|
-
- lib/generators/eddy/migration/migration_generator.rb
|
1547
|
-
- lib/generators/eddy/migration/templates/migration.rb.erb
|
1548
1545
|
- tasks/build.rake
|
1549
1546
|
- tasks/misc/gemspec.rake
|
1550
1547
|
- tasks/misc/missing_lists.rake
|
@@ -1557,7 +1554,7 @@ metadata:
|
|
1557
1554
|
homepage_uri: https://github.com/tcd/eddy
|
1558
1555
|
source_code_uri: https://github.com/tcd/eddy
|
1559
1556
|
changelog_uri: https://github.com/tcd/eddy/blob/master/CHANGELOG.md
|
1560
|
-
documentation_uri: https://www.rubydoc.info/gems/eddy/0.
|
1557
|
+
documentation_uri: https://www.rubydoc.info/gems/eddy/0.4.0
|
1561
1558
|
yard.run: yri
|
1562
1559
|
post_install_message:
|
1563
1560
|
rdoc_options: []
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require "rails/generators"
|
2
|
-
|
3
|
-
module Eddy
|
4
|
-
module Generators
|
5
|
-
# Generate an initializer file for Eddy.
|
6
|
-
class InitializersGenerator < Rails::Generators::Base
|
7
|
-
desc "This generator creates an initializer file at config/initializers/eddy.rb for Eddy"
|
8
|
-
source_root File.expand_path("templates", __dir__)
|
9
|
-
|
10
|
-
# @return [void]
|
11
|
-
def copy_initializer
|
12
|
-
template "eddy.rb.erb", "config/initializers/eddy.rb"
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
require "rails/generators"
|
2
|
-
require "rails/generators/active_record"
|
3
|
-
|
4
|
-
module Eddy
|
5
|
-
module Generators
|
6
|
-
# Generate migrations to set up database tables for use by Eddy.
|
7
|
-
#
|
8
|
-
# See:
|
9
|
-
#
|
10
|
-
# - [Rails Guides - Generators](https://edgeguides.rubyonrails.org/generators.html)
|
11
|
-
# - [`Rails::Generators::Migration`](https://api.rubyonrails.org/classes/Rails/Generators/Migration.html)
|
12
|
-
# - [StackOverflow Question](https://stackoverflow.com/questions/53212961/how-to-make-a-custom-generator-which-also-generates-a-migration-in-rails)
|
13
|
-
# - ["index: true" in Rails migrations does not work as you'd expect](https://makandracards.com/makandra/32353-psa-index-true-in-rails-migrations-does-not-work-as-you-d-expect)
|
14
|
-
class MigrationGenerator < Rails::Generators::Base
|
15
|
-
|
16
|
-
include Rails::Generators::Migration
|
17
|
-
desc "This generator creates a migration file in db/migrate that will set up database tables for use by Eddy"
|
18
|
-
source_root File.expand_path("templates", __dir__)
|
19
|
-
|
20
|
-
# @return [void]
|
21
|
-
def generate_migration
|
22
|
-
migration_template(
|
23
|
-
"migration.rb.erb",
|
24
|
-
"db/migrate/#{self.migration_file_name()}",
|
25
|
-
migration_version: self.migration_version(),
|
26
|
-
)
|
27
|
-
end
|
28
|
-
|
29
|
-
# @return [String]
|
30
|
-
def migration_file_name()
|
31
|
-
return "create_eddy_tables.rb"
|
32
|
-
# return "#{self.timestamp()}_create_eddy_tables.rb"
|
33
|
-
end
|
34
|
-
|
35
|
-
# @return [String]
|
36
|
-
def timestamp()
|
37
|
-
return Time.now.utc.strftime("%Y%m%d%H%M%S")
|
38
|
-
end
|
39
|
-
|
40
|
-
# @return [String]
|
41
|
-
def migration_version()
|
42
|
-
return "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
|
43
|
-
end
|
44
|
-
|
45
|
-
# for generating a timestamp when using `create_migration`
|
46
|
-
# Sole from - https://github.com/thoughtbot/clearance/blob/master/lib/generators/clearance/install/install_generator.rb#L116
|
47
|
-
def self.next_migration_number(dir)
|
48
|
-
ActiveRecord::Generators::Base.next_migration_number(dir)
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
class EddyCreateTables < ActiveRecord::Migration<%= migration_version %>
|
2
|
-
|
3
|
-
def self.up
|
4
|
-
create_table :eddy_interchange_control_numbers do |t|
|
5
|
-
t.integer :control_number, null: false
|
6
|
-
t.boolean :received
|
7
|
-
t.boolean :sent
|
8
|
-
t.timestamps null: false
|
9
|
-
end
|
10
|
-
create_table :eddy_functional_group_control_numbers do |t|
|
11
|
-
t.integer :control_number, null: false
|
12
|
-
t.string :functional_group, null: false
|
13
|
-
t.boolean :received
|
14
|
-
t.boolean :sent
|
15
|
-
t.timestamps null: false
|
16
|
-
end
|
17
|
-
create_table :eddy_transaction_set_control_numbers do |t|
|
18
|
-
t.integer :control_number, null: false
|
19
|
-
t.string :transaction_set, null: false
|
20
|
-
t.boolean :received
|
21
|
-
t.boolean :sent
|
22
|
-
t.timestamps null: false
|
23
|
-
end
|
24
|
-
add_index :eddy_interchange_control_numbers, :control_number, unique: true
|
25
|
-
add_index :eddy_functional_group_control_numbers, :control_number, unique: true
|
26
|
-
add_index :eddy_transaction_set_control_numbers, :control_number, unique: true
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.down
|
30
|
-
drop_table :eddy_interchange_control_numbers
|
31
|
-
drop_table :eddy_functional_group_control_numbers
|
32
|
-
drop_table :eddy_transaction_set_control_numbers
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|