Code Monkey home page Code Monkey logo

flexus's People

Contributors

abinoam avatar alsemyonov avatar artofhuman avatar dkubb avatar indrekj avatar ktdreyer avatar mbj avatar ptico avatar snusnu avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

abinoam

flexus's Issues

Give an option for global state

Global state is evil!

We should give a per instance option for users of Flexus.

I recommend to avoid any API that does global state mutations. Provide a default instance, and all project specific settings create new ones

Source: https://twitter.com/_m_b_j_/status/926476875186278400

Good news. I can’t check soon, but it looks like it uses global state, which is the current problem that we have w/ inflecto.

Source: https://twitter.com/jodosha/status/926535090188021760

What is the lowest ruby version are we going to support?

Note: https://en.wikipedia.org/wiki/Ruby_(programming_language)#Table_of_versions

We already have inflecto supporting old ruby versions. It's working, reliable and it will freeze (not break at near future).
I think we shouldn't loose time trying to keep compatible with old rubies. We should aim for the future. (But I'm open for suggestions).

2.1 has already ended security maintenance phase since 2017-03-31. It means NO SUPPORT at all from Ruby core team.
2.2 ended support phase since 2017-03-28 and it'll end security maintenance phase in 4 months (2018-03-31).
So we should focus on 2.3, 2.4, 2.5.

My suggestion, we should do a release of 1.0.x with all these things that were around inflecto but unreleased. So, most people could just jump into flexus without any problem.

Then, we begin a 2.0.x branch, where the required ruby version will be >= 2.3.

What do you think @Ptico .

Module builder

It's just an idea, but I think it would be cool to add an additional use case, like:

class MyClass
  include Flexus.module(:camelize, :constantize)
#...
  def puts_name
    puts camelize(@name)
  end
end

Version numbering

@Ptico what do you think about beginning version numbers from the last version of the original repo? 0.1.0.

So our first release could be 0.1.1.

Re-enable Rubocop

I saw this on .rubocop.yml

AllCops:
  Exclude:
    - 'lib/**/*'
    - 'spec/**/*'
    - 'Gemfile'
    - 'Guardfile'
    - 'flexus.gemspec'
    - 'vendor/**/*'

This - 'lib/**/*' just makes rubocop useless!

I have been using pronto to help fixing these stylistic thing step by step instead of everything in a row.

Opening this issue to remember fixing this.

Add acronym support

It would be great to add support for acronyms, so HTTP will not become Http for example

Support for lower camel case

inflecto lacks support for lower case camel case conversion like ActiveSupport has, this would useful to have when generating strings for JSON attributes names.

Inflecto.lower_camelize("first_name") # => "firstName"
Inflecto.lower_camelize("name") # => "name"

# Or maybe:

Inflecto.camelize("first_name", lower: true) # => "firstName"
Inflecto.camelize("name", lower: true) # => "name"

Reorganise development tools

To involve more people to the development, we need to simplify the contribution process. Here is a plan:

  • Update rspec syntax to the latest and get rid of rspec-its
  • Change yardstick to inch
  • Move mutant to it's own task
  • Create rake or thor task for ci with only important dependencies (without old dm2 gems)

New internals

Let's move a part of disscussion of #3 here:

The idea is to try a different approach: first parse a string to array of parts and then transform and cache them on request.

Also, I prefer to move this to 3.0 milestone to not turn Flexus 2 to Half-Life 3

Flexus and Dry::Inflector merge

@Ptico,

I think we should:

  • merge #20 as it's backward compatible.
  • Update README.md encouraging people to migrate to Dry::Inflector
  • Release it under 1.1.0, updating the minor version as we're adding a feature (the option to have instances)

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.