Sha256: 88080ad67dc89624b51668114fa587337265f439bd727ecbb6343c32c5731139

Contents?: true

Size: 1.33 KB

Versions: 45

Compression:

Stored size: 1.33 KB

Contents

module Graphiti
  module GeneratorMixin
    def prompt(header: nil, description: nil, default: nil)
      say(set_color("\n#{header}", :magenta, :bold)) if header
      say("\n#{description}") if description
      answer = ask(set_color("\n(default: #{default}):", :magenta, :bold))
      answer = default if answer.blank? && default != "nil"
      say(set_color("\nGot it!\n", :white, :bold))
      answer
    end

    def api_namespace
      @api_namespace ||= begin
        ns = graphiti_config["namespace"]
        ns.delete_suffix("/")

        if ns.blank?
          ns = prompt \
            header: "What is your API namespace?",
            description: "This will be used as a route prefix, e.g. if you want the route '/books_api/v1/authors' your namespace would be '/books_api/v1'",
            default: "/api/v1"
          update_config!("namespace" => ns)
        end

        ns
      end
    end

    def actions
      @options["actions"] || %w[index show create update destroy]
    end

    def actions?(*methods)
      methods.any? { |m| actions.include?(m) }
    end

    def graphiti_config
      File.exist?(".graphiticfg.yml") ? YAML.load_file(".graphiticfg.yml") : {}
    end

    def update_config!(attrs)
      config = graphiti_config.merge(attrs)
      File.open(".graphiticfg.yml", "w") { |f| f.write(config.to_yaml) }
    end
  end
end

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
graphiti-1.8.1 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.8.0 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.7.9 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.7.8 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.7.7 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.7.6 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.7.5 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.7.4 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.7.3 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.7.2 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.7.1 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.7.0 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.6.4 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.6.3 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.6.2 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.6.1 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.6.0 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.5.3 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.5.2 deprecated_generators/graphiti/generator_mixin.rb
graphiti-1.5.1 deprecated_generators/graphiti/generator_mixin.rb