module Graphiti::GeneratorMixin

Public Instance Methods

actions() click to toggle source
# File lib/generators/graphiti/generator_mixin.rb, line 28
def actions
  @options["actions"] || %w[index show create update destroy]
end
actions?(*methods) click to toggle source
# File lib/generators/graphiti/generator_mixin.rb, line 32
def actions?(*methods)
  methods.any? { |m| actions.include?(m) }
end
api_namespace() click to toggle source
# File lib/generators/graphiti/generator_mixin.rb, line 12
def api_namespace
  @api_namespace ||= begin
    ns = graphiti_config["namespace"]

    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
graphiti_config() click to toggle source
# File lib/generators/graphiti/generator_mixin.rb, line 36
def graphiti_config
  File.exist?(".graphiticfg.yml") ? YAML.load_file(".graphiticfg.yml") : {}
end
id_or_rawid() click to toggle source
# File lib/generators/graphiti/generator_mixin.rb, line 45
def id_or_rawid
  @options["rawid"] ? "rawid" : "id"
end
prompt(header: nil, description: nil, default: nil) click to toggle source
# File lib/generators/graphiti/generator_mixin.rb, line 3
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
sort_raw_ids() click to toggle source
# File lib/generators/graphiti/generator_mixin.rb, line 49
def sort_raw_ids
  return unless @options["rawid"]
  ".sort"
end
sort_raw_ids_descending() click to toggle source
# File lib/generators/graphiti/generator_mixin.rb, line 54
def sort_raw_ids_descending
  return unless @options["rawid"]
  ".sort.reverse"
end
update_config!(attrs) click to toggle source
# File lib/generators/graphiti/generator_mixin.rb, line 40
def update_config!(attrs)
  config = graphiti_config.merge(attrs)
  File.open(".graphiticfg.yml", "w") { |f| f.write(config.to_yaml) }
end