Module: Potter

Defined in:
lib/potter.rb,
lib/potter/ast.rb,
lib/potter/csv.rb,
lib/potter/enum.rb,
lib/potter/flag.rb,
lib/potter/type.rb,
lib/potter/field.rb,
lib/potter/index.rb,
lib/potter/model.rb,
lib/potter/types.rb,
lib/potter/engine.rb,
lib/potter/record.rb,
lib/potter/schema.rb,
lib/potter/ast/dsl.rb,
lib/potter/caching.rb,
lib/potter/request.rb,
lib/potter/version.rb,
lib/potter/ast/node.rb,
lib/potter/response.rb,
lib/potter/ast/proxy.rb,
lib/potter/ast/unary.rb,
lib/potter/ast/value.rb,
lib/potter/endpoints.rb,
lib/potter/ast/binary.rb,
lib/potter/migrations.rb,
lib/potter/collections.rb,
lib/potter/transformer.rb,
lib/potter/ast/variable.rb,
lib/potter/transformers.rb,
lib/potter/option_helpers.rb,
lib/potter/application_record.rb,
lib/potter/information_schema/base.rb,
lib/potter/information_schema/index.rb,
lib/potter/information_schema/table.rb

Defined Under Namespace

Modules: AST, CSV, Collections, Flag, InformationSchema, Migrations, Model, OptionHelpers, Record, Schema, Transformers, Type, Types Classes: ApplicationRecord, Collection, Endpoints, Engine, Error, Field, Index, Request, Response, Transformer

Constant Summary collapse

LOADER =
Zeitwerk::Loader.for_gem.tap do |loader|
  loader.inflector.inflect("ast" => "AST", "dsl" => "DSL", "csv" => "CSV")
  loader.ignore("#{__dir__}/potter/core_ext.rb")
  loader.ignore("#{__dir__}/potter/core_ext")
  loader.setup
end
VERSION =
"0.1.1"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.database(name) ⇒ Object



28
29
30
31
# File 'lib/potter.rb', line 28

def self.database(name)
  require "active_record"
  ENV['DATABASE_URL'] = "sqlite:///#{ENV['HOME']}/.config/#{name}/development.sqlite3"
end

.EnumObject



20
# File 'lib/potter.rb', line 20

def self.Enum(...) = Enum.of(...)

.FieldObject



19
# File 'lib/potter.rb', line 19

def self.Field(...) = Field.of(...)

.migrate!Object



24
25
26
# File 'lib/potter.rb', line 24

def self.migrate!
  ActiveRecord::MigrationContext.new([root / "db/migrate"]).up
end

.rootObject



22
# File 'lib/potter.rb', line 22

def self.root = Pathname.new(__dir__).dirname

Instance Method Details

#Flag(type) ⇒ Object



10
# File 'lib/potter/flag.rb', line 10

def Flag(type) = Flag.of(type)