ddb_ruby 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/ddb_ruby/fifth_edition/structs.rb +142 -142
- data/lib/ddb_ruby/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db69d51dc81dfc34084b4e79aabf09ef8e2f16693cd7ecbd0a71c2aa88c25608
|
4
|
+
data.tar.gz: a223580cc95afc1a2c40f39503dd8663df4ef1177e5e1c925f0bf6e11b817d75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: febcf9f7742dda5c546e43aa488b4cfc301685483de310642c2946b1622d91cbfc616cc8f7042a257d2e64999018b9e45581469bcefa6408d60a2b56a50630d5
|
7
|
+
data.tar.gz: 03cbd21c17721bdeccd83ebb406db5676e3e47f9d4201c362990ecf99546b75271db04460a059a24ae64365541774ece72db30c010933f6ecabbe935286cec63
|
data/Gemfile.lock
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# To parse this JSON, add 'dry-struct' and 'dry-types' gems, then do:
|
5
5
|
#
|
6
|
-
#
|
7
|
-
# puts
|
6
|
+
# character = Character.from_json! "{…}"
|
7
|
+
# puts character.optional_class_features.first
|
8
8
|
#
|
9
9
|
# If from_json! succeeds, the value returned matches the schema.
|
10
10
|
|
@@ -18,7 +18,7 @@ module DdbRuby
|
|
18
18
|
include Dry.Types(default: :nominal)
|
19
19
|
|
20
20
|
Integer = Coercible::Integer
|
21
|
-
Bool =
|
21
|
+
Bool = Coercible::Bool
|
22
22
|
Hash = Coercible::Hash
|
23
23
|
String = Coercible::String
|
24
24
|
Double = Coercible::Float | Coercible::Integer
|
@@ -662,7 +662,7 @@ module DdbRuby
|
|
662
662
|
end
|
663
663
|
end
|
664
664
|
|
665
|
-
class
|
665
|
+
class CharacterBackground < Dry::Struct
|
666
666
|
attribute :has_custom_background, Types::Bool
|
667
667
|
attribute :definition, CharacteristicsBackgroundClass.optional
|
668
668
|
attribute :definition_id, Types::Nil
|
@@ -727,7 +727,7 @@ module DdbRuby
|
|
727
727
|
end
|
728
728
|
end
|
729
729
|
|
730
|
-
class
|
730
|
+
class CharacterElement < Dry::Struct
|
731
731
|
attribute :user_id, Types::Integer
|
732
732
|
attribute :username, Types::String
|
733
733
|
attribute :character_id, Types::Integer
|
@@ -790,7 +790,7 @@ module DdbRuby
|
|
790
790
|
attribute :public_notes, Types::String
|
791
791
|
attribute :dm_user_id, Types::Integer
|
792
792
|
attribute :dm_username, Types::Username
|
793
|
-
attribute :characters, Types.Array(
|
793
|
+
attribute :characters, Types.Array(CharacterElement)
|
794
794
|
|
795
795
|
def self.from_dynamic!(d)
|
796
796
|
d = Types::Hash[d]
|
@@ -802,7 +802,7 @@ module DdbRuby
|
|
802
802
|
public_notes: d.fetch("publicNotes"),
|
803
803
|
dm_user_id: d.fetch("dmUserId"),
|
804
804
|
dm_username: d.fetch("dmUsername"),
|
805
|
-
characters: d.fetch("characters").map { |x|
|
805
|
+
characters: d.fetch("characters").map { |x| CharacterElement.from_dynamic!(x) },
|
806
806
|
)
|
807
807
|
end
|
808
808
|
|
@@ -828,6 +828,126 @@ module DdbRuby
|
|
828
828
|
end
|
829
829
|
end
|
830
830
|
|
831
|
+
class Definition2 < Dry::Struct
|
832
|
+
attribute :id, Types::Integer
|
833
|
+
attribute :entity_type_id, Types::Integer
|
834
|
+
attribute :definition_name, Types::String
|
835
|
+
attribute :description, Types::String
|
836
|
+
attribute :snippet, Types::String
|
837
|
+
attribute :activation, Types::Nil
|
838
|
+
attribute :source_id, Types::Integer.optional
|
839
|
+
attribute :source_page_number, Types::Integer.optional
|
840
|
+
attribute :creature_rules, Types.Array(Types::Any)
|
841
|
+
attribute :spell_list_ids, Types.Array(Types::Any)
|
842
|
+
|
843
|
+
def self.from_dynamic!(d)
|
844
|
+
d = Types::Hash[d]
|
845
|
+
new(
|
846
|
+
id: d.fetch("id"),
|
847
|
+
entity_type_id: d.fetch("entityTypeId"),
|
848
|
+
definition_name: d.fetch("name"),
|
849
|
+
description: d.fetch("description"),
|
850
|
+
snippet: d.fetch("snippet"),
|
851
|
+
activation: d.fetch("activation"),
|
852
|
+
source_id: d.fetch("sourceId"),
|
853
|
+
source_page_number: d.fetch("sourcePageNumber"),
|
854
|
+
creature_rules: d.fetch("creatureRules"),
|
855
|
+
spell_list_ids: d.fetch("spellListIds"),
|
856
|
+
)
|
857
|
+
end
|
858
|
+
|
859
|
+
def self.from_json!(json)
|
860
|
+
from_dynamic!(JSON.parse(json))
|
861
|
+
end
|
862
|
+
|
863
|
+
def to_dynamic
|
864
|
+
{
|
865
|
+
"id" => id,
|
866
|
+
"entityTypeId" => entity_type_id,
|
867
|
+
"name" => definition_name,
|
868
|
+
"description" => description,
|
869
|
+
"snippet" => snippet,
|
870
|
+
"activation" => activation,
|
871
|
+
"sourceId" => source_id,
|
872
|
+
"sourcePageNumber" => source_page_number,
|
873
|
+
"creatureRules" => creature_rules,
|
874
|
+
"spellListIds" => spell_list_ids,
|
875
|
+
}
|
876
|
+
end
|
877
|
+
|
878
|
+
def to_json(options = nil)
|
879
|
+
JSON.generate(to_dynamic, options)
|
880
|
+
end
|
881
|
+
end
|
882
|
+
|
883
|
+
class OptionsClass < Dry::Struct
|
884
|
+
attribute :component_id, Types::Integer
|
885
|
+
attribute :component_type_id, Types::Integer
|
886
|
+
attribute :definition, Definition2
|
887
|
+
|
888
|
+
def self.from_dynamic!(d)
|
889
|
+
d = Types::Hash[d]
|
890
|
+
new(
|
891
|
+
component_id: d.fetch("componentId"),
|
892
|
+
component_type_id: d.fetch("componentTypeId"),
|
893
|
+
definition: Definition2.from_dynamic!(d.fetch("definition")),
|
894
|
+
)
|
895
|
+
end
|
896
|
+
|
897
|
+
def self.from_json!(json)
|
898
|
+
from_dynamic!(JSON.parse(json))
|
899
|
+
end
|
900
|
+
|
901
|
+
def to_dynamic
|
902
|
+
{
|
903
|
+
"componentId" => component_id,
|
904
|
+
"componentTypeId" => component_type_id,
|
905
|
+
"definition" => definition.to_dynamic,
|
906
|
+
}
|
907
|
+
end
|
908
|
+
|
909
|
+
def to_json(options = nil)
|
910
|
+
JSON.generate(to_dynamic, options)
|
911
|
+
end
|
912
|
+
end
|
913
|
+
|
914
|
+
class Options < Dry::Struct
|
915
|
+
attribute :race, Types.Array(OptionsClass)
|
916
|
+
attribute :options_class, Types.Array(OptionsClass)
|
917
|
+
attribute :background, Types::Nil
|
918
|
+
attribute :item, Types::Nil
|
919
|
+
attribute :feat, Types.Array(OptionsClass)
|
920
|
+
|
921
|
+
def self.from_dynamic!(d)
|
922
|
+
d = Types::Hash[d]
|
923
|
+
new(
|
924
|
+
race: d.fetch("race").map { |x| OptionsClass.from_dynamic!(x) },
|
925
|
+
options_class: d.fetch("class").map { |x| OptionsClass.from_dynamic!(x) },
|
926
|
+
background: d.fetch("background"),
|
927
|
+
item: d.fetch("item"),
|
928
|
+
feat: d.fetch("feat").map { |x| OptionsClass.from_dynamic!(x) },
|
929
|
+
)
|
930
|
+
end
|
931
|
+
|
932
|
+
def self.from_json!(json)
|
933
|
+
from_dynamic!(JSON.parse(json))
|
934
|
+
end
|
935
|
+
|
936
|
+
def to_dynamic
|
937
|
+
{
|
938
|
+
"race" => race.map { |x| x.to_dynamic },
|
939
|
+
"class" => options_class.map { |x| x.to_dynamic },
|
940
|
+
"background" => background,
|
941
|
+
"item" => item,
|
942
|
+
"feat" => feat.map { |x| x.to_dynamic },
|
943
|
+
}
|
944
|
+
end
|
945
|
+
|
946
|
+
def to_json(options = nil)
|
947
|
+
JSON.generate(to_dynamic, options)
|
948
|
+
end
|
949
|
+
end
|
950
|
+
|
831
951
|
class CharacterValue < Dry::Struct
|
832
952
|
attribute :type_id, Types::Integer
|
833
953
|
attribute :value, Types::Integer
|
@@ -2312,7 +2432,7 @@ module DdbRuby
|
|
2312
2432
|
end
|
2313
2433
|
end
|
2314
2434
|
|
2315
|
-
class
|
2435
|
+
class CharacterClass < Dry::Struct
|
2316
2436
|
attribute :id, Types::Integer
|
2317
2437
|
attribute :entity_type_id, Types::Integer
|
2318
2438
|
attribute :level, Types::Integer
|
@@ -2364,7 +2484,7 @@ module DdbRuby
|
|
2364
2484
|
end
|
2365
2485
|
end
|
2366
2486
|
|
2367
|
-
class
|
2487
|
+
class CharacterCondition < Dry::Struct
|
2368
2488
|
attribute :id, Types::Integer
|
2369
2489
|
attribute :level, Types::Integer
|
2370
2490
|
|
@@ -3855,126 +3975,6 @@ module DdbRuby
|
|
3855
3975
|
Active = "active"
|
3856
3976
|
end
|
3857
3977
|
|
3858
|
-
class Definition2 < Dry::Struct
|
3859
|
-
attribute :id, Types::Integer
|
3860
|
-
attribute :entity_type_id, Types::Integer
|
3861
|
-
attribute :definition_name, Types::String
|
3862
|
-
attribute :description, Types::String
|
3863
|
-
attribute :snippet, Types::String
|
3864
|
-
attribute :activation, Types::Nil
|
3865
|
-
attribute :source_id, Types::Integer.optional
|
3866
|
-
attribute :source_page_number, Types::Integer.optional
|
3867
|
-
attribute :creature_rules, Types.Array(Types::Any)
|
3868
|
-
attribute :spell_list_ids, Types.Array(Types::Any)
|
3869
|
-
|
3870
|
-
def self.from_dynamic!(d)
|
3871
|
-
d = Types::Hash[d]
|
3872
|
-
new(
|
3873
|
-
id: d.fetch("id"),
|
3874
|
-
entity_type_id: d.fetch("entityTypeId"),
|
3875
|
-
definition_name: d.fetch("name"),
|
3876
|
-
description: d.fetch("description"),
|
3877
|
-
snippet: d.fetch("snippet"),
|
3878
|
-
activation: d.fetch("activation"),
|
3879
|
-
source_id: d.fetch("sourceId"),
|
3880
|
-
source_page_number: d.fetch("sourcePageNumber"),
|
3881
|
-
creature_rules: d.fetch("creatureRules"),
|
3882
|
-
spell_list_ids: d.fetch("spellListIds"),
|
3883
|
-
)
|
3884
|
-
end
|
3885
|
-
|
3886
|
-
def self.from_json!(json)
|
3887
|
-
from_dynamic!(JSON.parse(json))
|
3888
|
-
end
|
3889
|
-
|
3890
|
-
def to_dynamic
|
3891
|
-
{
|
3892
|
-
"id" => id,
|
3893
|
-
"entityTypeId" => entity_type_id,
|
3894
|
-
"name" => definition_name,
|
3895
|
-
"description" => description,
|
3896
|
-
"snippet" => snippet,
|
3897
|
-
"activation" => activation,
|
3898
|
-
"sourceId" => source_id,
|
3899
|
-
"sourcePageNumber" => source_page_number,
|
3900
|
-
"creatureRules" => creature_rules,
|
3901
|
-
"spellListIds" => spell_list_ids,
|
3902
|
-
}
|
3903
|
-
end
|
3904
|
-
|
3905
|
-
def to_json(options = nil)
|
3906
|
-
JSON.generate(to_dynamic, options)
|
3907
|
-
end
|
3908
|
-
end
|
3909
|
-
|
3910
|
-
class OptionsClass < Dry::Struct
|
3911
|
-
attribute :component_id, Types::Integer
|
3912
|
-
attribute :component_type_id, Types::Integer
|
3913
|
-
attribute :definition, Definition2
|
3914
|
-
|
3915
|
-
def self.from_dynamic!(d)
|
3916
|
-
d = Types::Hash[d]
|
3917
|
-
new(
|
3918
|
-
component_id: d.fetch("componentId"),
|
3919
|
-
component_type_id: d.fetch("componentTypeId"),
|
3920
|
-
definition: Definition2.from_dynamic!(d.fetch("definition")),
|
3921
|
-
)
|
3922
|
-
end
|
3923
|
-
|
3924
|
-
def self.from_json!(json)
|
3925
|
-
from_dynamic!(JSON.parse(json))
|
3926
|
-
end
|
3927
|
-
|
3928
|
-
def to_dynamic
|
3929
|
-
{
|
3930
|
-
"componentId" => component_id,
|
3931
|
-
"componentTypeId" => component_type_id,
|
3932
|
-
"definition" => definition.to_dynamic,
|
3933
|
-
}
|
3934
|
-
end
|
3935
|
-
|
3936
|
-
def to_json(options = nil)
|
3937
|
-
JSON.generate(to_dynamic, options)
|
3938
|
-
end
|
3939
|
-
end
|
3940
|
-
|
3941
|
-
class Options < Dry::Struct
|
3942
|
-
attribute :race, Types.Array(OptionsClass)
|
3943
|
-
attribute :options_class, Types.Array(OptionsClass)
|
3944
|
-
attribute :background, Types::Nil
|
3945
|
-
attribute :item, Types::Nil
|
3946
|
-
attribute :feat, Types.Array(OptionsClass)
|
3947
|
-
|
3948
|
-
def self.from_dynamic!(d)
|
3949
|
-
d = Types::Hash[d]
|
3950
|
-
new(
|
3951
|
-
race: d.fetch("race").map { |x| OptionsClass.from_dynamic!(x) },
|
3952
|
-
options_class: d.fetch("class").map { |x| OptionsClass.from_dynamic!(x) },
|
3953
|
-
background: d.fetch("background"),
|
3954
|
-
item: d.fetch("item"),
|
3955
|
-
feat: d.fetch("feat").map { |x| OptionsClass.from_dynamic!(x) },
|
3956
|
-
)
|
3957
|
-
end
|
3958
|
-
|
3959
|
-
def self.from_json!(json)
|
3960
|
-
from_dynamic!(JSON.parse(json))
|
3961
|
-
end
|
3962
|
-
|
3963
|
-
def to_dynamic
|
3964
|
-
{
|
3965
|
-
"race" => race.map { |x| x.to_dynamic },
|
3966
|
-
"class" => options_class.map { |x| x.to_dynamic },
|
3967
|
-
"background" => background,
|
3968
|
-
"item" => item,
|
3969
|
-
"feat" => feat.map { |x| x.to_dynamic },
|
3970
|
-
}
|
3971
|
-
end
|
3972
|
-
|
3973
|
-
def to_json(options = nil)
|
3974
|
-
JSON.generate(to_dynamic, options)
|
3975
|
-
end
|
3976
|
-
end
|
3977
|
-
|
3978
3978
|
class Traits < Dry::Struct
|
3979
3979
|
attribute :personality_traits, Types::String.optional
|
3980
3980
|
attribute :ideals, Types::String.optional
|
@@ -4012,14 +4012,14 @@ module DdbRuby
|
|
4012
4012
|
end
|
4013
4013
|
end
|
4014
4014
|
|
4015
|
-
class
|
4015
|
+
class Character < Dry::Struct
|
4016
4016
|
attribute :id, Types::Integer
|
4017
4017
|
attribute :user_id, Types::Integer
|
4018
4018
|
attribute :username, Types::Username
|
4019
4019
|
attribute :is_assigned_to_player, Types::Bool
|
4020
4020
|
attribute :readonly_url, Types::String
|
4021
4021
|
attribute :decorations, Decorations
|
4022
|
-
attribute :
|
4022
|
+
attribute :character_name, Types::String
|
4023
4023
|
attribute :social_name, Types::Nil
|
4024
4024
|
attribute :gender, Types::String.optional
|
4025
4025
|
attribute :faith, Types::String.optional
|
@@ -4041,7 +4041,7 @@ module DdbRuby
|
|
4041
4041
|
attribute :stats, Types.Array(Stat)
|
4042
4042
|
attribute :bonus_stats, Types.Array(Stat)
|
4043
4043
|
attribute :override_stats, Types.Array(Stat)
|
4044
|
-
attribute :background,
|
4044
|
+
attribute :background, CharacterBackground
|
4045
4045
|
attribute :race, Race.optional
|
4046
4046
|
attribute :race_definition_id, Types::Nil
|
4047
4047
|
attribute :race_definition_type_id, Types::Nil
|
@@ -4052,7 +4052,7 @@ module DdbRuby
|
|
4052
4052
|
attribute :lifestyle, Types::Nil
|
4053
4053
|
attribute :inventory, Types.Array(Inventory)
|
4054
4054
|
attribute :currencies, Currencies
|
4055
|
-
attribute :classes, Types.Array(
|
4055
|
+
attribute :classes, Types.Array(CharacterClass)
|
4056
4056
|
attribute :feats, Types.Array(Feat)
|
4057
4057
|
attribute :features, Types.Array(Types::Any)
|
4058
4058
|
attribute :custom_defense_adjustments, Types.Array(Types::Any)
|
@@ -4061,14 +4061,14 @@ module DdbRuby
|
|
4061
4061
|
attribute :custom_proficiencies, Types.Array(Types::Any)
|
4062
4062
|
attribute :custom_actions, Types.Array(Types::Any)
|
4063
4063
|
attribute :character_values, Types.Array(CharacterValue)
|
4064
|
-
attribute :conditions, Types.Array(
|
4064
|
+
attribute :conditions, Types.Array(CharacterCondition)
|
4065
4065
|
attribute :death_saves, DeathSaves
|
4066
4066
|
attribute :adjustment_xp, Types::Integer.optional
|
4067
4067
|
attribute :spell_slots, Types.Array(PactMagic)
|
4068
4068
|
attribute :pact_magic, Types.Array(PactMagic)
|
4069
4069
|
attribute :active_source_categories, Types.Array(Types::Integer)
|
4070
4070
|
attribute :spells, Spells
|
4071
|
-
attribute :
|
4071
|
+
attribute :character_options, Options
|
4072
4072
|
attribute :choices, Choices
|
4073
4073
|
attribute :actions, Actions
|
4074
4074
|
attribute :modifiers, Modifiers
|
@@ -4094,7 +4094,7 @@ module DdbRuby
|
|
4094
4094
|
is_assigned_to_player: d.fetch("isAssignedToPlayer"),
|
4095
4095
|
readonly_url: d.fetch("readonlyUrl"),
|
4096
4096
|
decorations: Decorations.from_dynamic!(d.fetch("decorations")),
|
4097
|
-
|
4097
|
+
character_name: d.fetch("name"),
|
4098
4098
|
social_name: d.fetch("socialName"),
|
4099
4099
|
gender: d.fetch("gender"),
|
4100
4100
|
faith: d.fetch("faith"),
|
@@ -4116,7 +4116,7 @@ module DdbRuby
|
|
4116
4116
|
stats: d.fetch("stats").map { |x| Stat.from_dynamic!(x) },
|
4117
4117
|
bonus_stats: d.fetch("bonusStats").map { |x| Stat.from_dynamic!(x) },
|
4118
4118
|
override_stats: d.fetch("overrideStats").map { |x| Stat.from_dynamic!(x) },
|
4119
|
-
background:
|
4119
|
+
background: CharacterBackground.from_dynamic!(d.fetch("background")),
|
4120
4120
|
race: d.fetch("race") ? Race.from_dynamic!(d.fetch("race")) : nil,
|
4121
4121
|
race_definition_id: d.fetch("raceDefinitionId"),
|
4122
4122
|
race_definition_type_id: d.fetch("raceDefinitionTypeId"),
|
@@ -4127,7 +4127,7 @@ module DdbRuby
|
|
4127
4127
|
lifestyle: d.fetch("lifestyle"),
|
4128
4128
|
inventory: d.fetch("inventory").map { |x| Inventory.from_dynamic!(x) },
|
4129
4129
|
currencies: Currencies.from_dynamic!(d.fetch("currencies")),
|
4130
|
-
classes: d.fetch("classes").map { |x|
|
4130
|
+
classes: d.fetch("classes").map { |x| CharacterClass.from_dynamic!(x) },
|
4131
4131
|
feats: d.fetch("feats").map { |x| Feat.from_dynamic!(x) },
|
4132
4132
|
features: d.fetch("features"),
|
4133
4133
|
custom_defense_adjustments: d.fetch("customDefenseAdjustments"),
|
@@ -4136,14 +4136,14 @@ module DdbRuby
|
|
4136
4136
|
custom_proficiencies: d.fetch("customProficiencies"),
|
4137
4137
|
custom_actions: d.fetch("customActions"),
|
4138
4138
|
character_values: d.fetch("characterValues").map { |x| CharacterValue.from_dynamic!(x) },
|
4139
|
-
conditions: d.fetch("conditions").map { |x|
|
4139
|
+
conditions: d.fetch("conditions").map { |x| CharacterCondition.from_dynamic!(x) },
|
4140
4140
|
death_saves: DeathSaves.from_dynamic!(d.fetch("deathSaves")),
|
4141
4141
|
adjustment_xp: d.fetch("adjustmentXp"),
|
4142
4142
|
spell_slots: d.fetch("spellSlots").map { |x| PactMagic.from_dynamic!(x) },
|
4143
4143
|
pact_magic: d.fetch("pactMagic").map { |x| PactMagic.from_dynamic!(x) },
|
4144
4144
|
active_source_categories: d.fetch("activeSourceCategories"),
|
4145
4145
|
spells: Spells.from_dynamic!(d.fetch("spells")),
|
4146
|
-
|
4146
|
+
character_options: Options.from_dynamic!(d.fetch("options")),
|
4147
4147
|
choices: Choices.from_dynamic!(d.fetch("choices")),
|
4148
4148
|
actions: Actions.from_dynamic!(d.fetch("actions")),
|
4149
4149
|
modifiers: Modifiers.from_dynamic!(d.fetch("modifiers")),
|
@@ -4174,7 +4174,7 @@ module DdbRuby
|
|
4174
4174
|
"isAssignedToPlayer" => is_assigned_to_player,
|
4175
4175
|
"readonlyUrl" => readonly_url,
|
4176
4176
|
"decorations" => decorations.to_dynamic,
|
4177
|
-
"name" =>
|
4177
|
+
"name" => character_name,
|
4178
4178
|
"socialName" => social_name,
|
4179
4179
|
"gender" => gender,
|
4180
4180
|
"faith" => faith,
|
@@ -4223,7 +4223,7 @@ module DdbRuby
|
|
4223
4223
|
"pactMagic" => pact_magic.map { |x| x.to_dynamic },
|
4224
4224
|
"activeSourceCategories" => active_source_categories,
|
4225
4225
|
"spells" => spells.to_dynamic,
|
4226
|
-
"options" =>
|
4226
|
+
"options" => character_options.to_dynamic,
|
4227
4227
|
"choices" => choices.to_dynamic,
|
4228
4228
|
"actions" => actions.to_dynamic,
|
4229
4229
|
"modifiers" => modifiers.to_dynamic,
|
data/lib/ddb_ruby/version.rb
CHANGED