Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
zuzanky-buttercms-ruby
Advanced tools
For a comprehensive list of examples, check out the API documentation.
To setup your project, follow these steps:
gem install buttercms-ruby
or by adding to your Gemfile
:gem 'buttercms-ruby'
require 'buttercms-ruby'
ButterCMS::api_token = "YourToken"
# Fetch content from test mode (eg. for your staging website)
# ButterCMS::test_mode = true
# Set read timeout (Default is 5.0)
# ButterCMS::read_timeout = 5.0
# Set open timeout (Default is 2.0)
# ButterCMS::open_timeout = 2.0
https://buttercms.com/docs/api/?ruby#pages
params = {page: 1, page_size: 10, locale: 'en', preview: 1, 'fields.headline': 'foo bar', levels: 2} # optional
pages = ButterCMS::Page.list('news', params)
page = ButterCMS::Page.get('news', 'hello-world', params)
pages = ButterCMS::Page.search('query', params)
https://buttercms.com/docs/api/?ruby#retrieve-a-collection
# list each instance of a given collection with meta data for fetching the next page.
params = { page: 1, page_size: 10, locale: 'en', preview: 1, 'fields.headline': 'foo bar', levels: 2 } # optional
ButterCMS::Content.list('collection1', params)
# list instances for multiple collections, this will not return meta data for pagination control.
ButterCMS::Content.fetch(['collection1', 'collection2'], params)
# Test mode can be used to setup a staging website for previewing Collections or for testing content during local development. To fetch content from test mode add the following configuration:
ButterCMS::test_mode = true
https://buttercms.com/docs/api/?ruby#blog-engine
posts = ButterCMS::Post.all({:page => 1, :page_size => 10})
puts posts.first.title
puts posts.meta.next_page
posts = ButterCMS::Post.search("my favorite post", {page: 1, page_size: 10})
puts posts.first.title
post = ButterCMS::Post.find("post-slug")
puts post.title
# Create a Post.
ButterCMS::write_api_token = "YourWriteToken"
ButterCMS::Post.create({
slug: 'blog-slug',
title: 'blog-title'
})
# Update a Post
ButterCMS::Post.update('blog-slug', {
title: 'blog-title-v2'
})
# Create a page
ButterCMS::Page.create({
slug: 'page-slug',
title: 'page-title',
status: 'published',
"page-type": 'page_type',
fields: {
meta_title: 'test meta title'
}
})
# update a Page
ButterCMS::Page.update('page-slug-2', {
status: 'published',
fields: {
meta_title: 'test meta title'
}
})
author = ButterCMS::Author.find("author-slug")
puts author.first_name
category = ButterCMS::Category.find("category-slug")
puts category.name
tags = ButterCMS::Tag.all
p tags
rss_feed = ButterCMS::Feed.find(:rss)
puts rss_feed.data
This client supports automatic fallback to a data store when API requests fail. When a data store is set, on every successful API request the response is written to the data store. When a subsequent API request fails, the client attempts to fallback to the value in the data store. Currently, Redis and YAML Store are supported.
# Use YAMLstore
ButterCMS::data_store = :yaml, "/File/Path/For/buttercms.store"
# Use Redis
ButterCMS::data_store = :redis, ENV['REDIS_URL']
# Use Redis over ssl store
ButterCMS.data_store = :redis_ssl, ENV["REDIS_URL"], { ca_file: "/path/to/ca.crt" }
# Set logger (optional)
ButterCMS::logger = MyLogger.new
View Ruby Blog engine and Full CMS for other examples of using ButterCMS with Ruby.
FAQs
Unknown package
We found that zuzanky-buttercms-ruby demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.