Giter VIP home page Giter VIP logo

numbered_list's Introduction

Numbered List

This library was built to make it easy to manage value objects/enums.

Example Usage:

class NumberedList::Colors < NumberedList::List
  item({name: "RED",
        formatted: "Red",
        order_value: 1,
        description: "This #FF0000"})
  item({name: "WHITE",
        formatted: "White",
        order_value: 2,
        description: "This is #FFFFFF"})

end

`

Examples of usage

NumberedList::Colors.red.name == "RED"
NumberedList::Colors.red.red? == true
NumberedList::Colors.blue.red? == false
NumberedList::Colors.types == ["RED", "BLUE"]
NumberedList::Colors.find_item("RED") == NumberedList::Colors.red
NumberedList::Colors.as_objs == [NumberedList::Colors.red, NumberedList::Colors.blue]

numbered_list's People

Contributors

delmendo avatar bahodge avatar

Stargazers

 avatar

Watchers

Dirk Elmendorf avatar  avatar Brett Elmendorf avatar James Cloos avatar  avatar

numbered_list's Issues

Unitialized Constant NumberedList

Issue

Tried to run in rails project and cant find the NumberedList constant/namespace in 'item_value.rb'

Situation

  • added gem
  • created NumberedList class
  • rails console
  • ERROR!

Error

~/.asdf/installs/ruby/2.6.3/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:79:in block in load_missing_constant': uninitialized constant NumberedList (NameError)`

----- Error actually happens here ------

  • ~/.asdf/installs/ruby/2.6.3/lib/ruby/gems/2.6.0/gems/numbered_list-0.0.3/lib/numbered_list/item_value.rb:2

It might be in issue on how its being required? I didn't think it would need a bilateral 'require' statement.

Solution

  • Changed all references to "NumberedList::ItemValue" => "ItemValue"
  • Changed all references to "NumberedList::MarshallBase" => "MarshallBase"
  • Moved 'item_value.rb' & 'marshall_base.rb' out of 'numbered_list' dir to top
  • Changed
require 'numbered_list/item_value'

class NumberedList
  attr_reader :item
...
  • to
require 'item_value'
require 'marshall_base'

class NumberedList
  attr_reader :item
...
  • replaced require 'numbered_list/item_value' with require 'item_value' and require 'marshall_base'

now in practice

class Enums::PipeState < NumberedList
  item({name: "RECEIVED",
        formatted: "Received",
        order_value: 1,
        description: "Received"})
end

...
# => #<Enums::PipeState:0x00007fd7a02c46e0 @item=#<ItemValue name="RECEIVED", formatted="Received", order_value=1, description="Received">>

Additional Request

Also, can you add that 'values' gem is a dependency?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.