class PodioCrm::ModelGenerator

Public Instance Methods

app_id() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 43
def app_id
        @app_id.name
end
belongs() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 39
def belongs
        @belongs.name.parameterize.underscore.singularize
end
generate_database_models() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 31
def generate_database_models
        generate 'podio_crm:podio_crm', "#{name} #{app_id} #{concat_field_ids} #{belongs}:belongs_to"
end
generate_object_model() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 35
def generate_object_model
        template 'podio_crm_model.rb.erb', "app/models/#{file_name}.rb" 
end
get_fields() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 15
def get_fields
        @fields = []
        authenticate_podio
        items = Podio::Item.find_all(app_id, limit: 1, offset: 1)
        items.all.each do |item|
                item.attributes[:fields].each do |field|
                        @fields << {
                                type: field['type'],
                                field_id: field['field_id'],
                                label: field['label'],
                                values: field['values'],
                        }
                end
        end
end
set_app_id() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 7
def set_app_id
        @app_id ||= attributes.shift
end
set_belongs_to() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 11
def set_belongs_to
        @belongs ||= attributes.shift
end

Private Instance Methods

authenticate_podio() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 53
def authenticate_podio
        error 'Podio not installed, try running `rails g podio_crm:install` first' if Podio.client.nil?
        Podio.client.authenticate_with_credentials(ENV['PODIO_USERNAME'], get_podio_password)
end
class_name() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 67
def class_name
        file_name.camelize
end
concat_field_ids() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 49
def concat_field_ids
        @fields.map  {|f| f[:field_id] }.join(' ')
end
error(message) click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 79
def error message
        $stderr.puts "Error: #{ message }"
        exit(-1)
end
file_name() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 71
def file_name
        name.singularize
end
get_podio_password() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 58
def get_podio_password
        if ENV['PODIO_PASSWORD']
                ENV['PODIO_PASSWORD']
        else
                puts 'Type your password and hit enter:'
                STDIN.noecho(&:gets).strip
        end
end
rails_4?() click to toggle source
# File lib/generators/podio_crm/model_generator.rb, line 75
def rails_4?
        Rails::VERSION::MAJOR == 4
end